这是两期教程中的第一期。在这期教程中,我将分析当前屏幕上显示的渲染图像中的两个方面:当场景光源使用 Nishita Sky 时,如何创建体积光,以及为了获得最终效果需要使用哪些 Compositing 节点。


本教程的视频版本目前尚未提供该语言版本。您可以在下方观看带字幕的英文版视频;视频下方提供了翻译成中文的文字稿。


视频文字稿

大家好!这是两期教程中的第一期。在这期教程中,我将分析当前屏幕上显示的渲染图像中的两个方面:当场景光源使用 Nishita Sky 时,如何创建体积光,以及为了获得最终效果需要使用哪些 Compositing 节点。

本教程使用 Blender 3.6 制作。和我大多数教程一样,文本版本可以通过简介中的链接免费下载。

用于渲染的场景是一个简单的教室。我使用自己的一些资产搭建了这个房间。照明完全来自虚拟天空环境,具体来说使用的是 Nishita Sky,因此场景中没有其他光源。

在 Cycles 中开始渲染并启用 Denoise 后,我们得到的是这样的结果:已经不错了,但如果加入体积光和一些 Compositing 处理,整体氛围肯定会更加有趣。

要为场景添加体积光效果,可以使用 Shader 分类中的 Volume Scatter 节点。它会提供一个 Volume 类型输出,可以连接到 World Output 节点的 Volume 输入,或者连接到其他 Shader 节点。

直接将 Volume Scatter 连接到 World Output 的 Volume 输入时,会出现一个问题:最终图像会完全变黑。

这是因为该节点会计算整个 World 体积中的光散射,而 World 的体积在理论上是无限大的,因此光线无法穿透。即使我们大幅降低节点中的 Density 参数,也依然如此。

因此,通常的做法是在场景中放入一个立方体或其他实体对象,并将 Volume Scatter 应用于这个体积。不过我不想采用这种方案,因为我希望找到一种能够直接将 Volume Scatter 应用于 World Output 的方法。

为了解决这个问题,我在编辑器中加入了一个 Light Path 节点,具体来说,我使用其中的 is Camera Ray 输出,并将它作为 Mix Shader 节点中的混合因子,用来决定是否使用 Volume Scatter 节点。

其思路如下:只对摄像机直接拍摄到的场景区域应用 Volume Scatter,而忽略其余部分。

这样就可以消除虚拟环境其余区域中的光吸收效果,使光线能够穿过环境,并只在最后一部分发生衰减。

最终结果就是你现在看到的效果。我稍微降低了 Density 的数值,并使用 World 的光照颜色作为 Volume Scatter 节点的颜色输入。

如果想实现我在教程开头展示的最终渲染效果,还需要在 Post-Production 中设置一些节点,不过我会在下一期视频中讲解!我们下次见!

搜索教程

输入短语,或输入多个用逗号分隔的关键词进行搜索。

这是一个个人网站,并非销售渠道。3D 模型相关页面仅用于记录我的部分作品,不包含任何销售要约、价格、购买方式或商业链接。目前,我不接受定制项目、咨询或其他任何形式的专业合作请求。


高级隐私策略信息和cookie文件的使用