这是两期教程中的第二期,也是最后一期,使用 Blender 3.6 制作。在本教程中,我们将研究 Sun Beams 节点,模拟空气中的光散射效果,并且是在渲染完成后的后期制作阶段实现,而不需要使用 Volume Shader 或场景中的其他元素。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!这是两期教程中的第二期,也是最后一期,使用 Blender 3.6 制作。在本教程中,我们将研究 Sun Beams 节点,模拟空气中的光散射效果,并且是在渲染完成后的后期制作阶段实现,而不需要使用 Volume Shader 或场景中的其他元素。
正如我在上一期教程中提到的,我们不应该称它为体积光,因为这只是一个 Compositing 特效。
在本教程中,我们尤其会看到如何将该效果应用到穿过窗户的光线,也就是穿过半透明材质的光线;如何柔化光线边缘;如何排除渲染中我们不感兴趣的区域;以及如何使用 Color Balance 和其他效果进一步修改光线。
如果你觉得我在本教程中使用的场景有些熟悉,也许是因为我曾在频道之前发布的一期教程中使用过它。当时我展示了如何通过 World Output 上的 Volume Scatter 节点实现真正的体积光效果,并且仅限于摄像机拍摄到的区域。
那个结果相当不错。那么,为什么还要使用 Compositing 去尝试重现它呢?答案很简单:完整的体积光计算开销很大,而且每一帧都需要重新计算,因此在某些情况下,使用后期特效会更合适。
因此,在这个场景中,我没有在 World Shader 的 Volume 输入中添加任何内容,而你现在屏幕上看到的,就是未添加任何 Compositing 效果时得到的渲染结果。

我们希望将 Sun Beams 效果限制为仅作用于穿过窗户进入的光线。不过在这种情况下,我们不能像上一期教程那样使用 Environment Render Pass,因为穿过窗户的光线会被视为 Transmission Indirect。

因此,让我们在 Properties 编辑器的 View Layer 标签中启用 Transmission Indirect 复选框,然后重新开始渲染,这样我们就可以在后期制作中使用这些信息。现在来看看通过 Transmission Indirect 信息得到的遮罩。

为了让感兴趣区域得到统一的白色遮罩,我们将 Transmission Indirect 连接到一个设置为 Ceil 模式的 Math 节点。这样会把所有大于 0 的值向上取整为 1,从而将这些像素变成白色,这正是我们想要的效果。

我们立刻会发现,窗户部分没有问题,但还有其他元素也参与了 Sun Beams 的发光,例如柜门、挂钟的玻璃,以及天花板灯罩。
为了将这些元素从通过 Transmission Indirect 得到的遮罩中排除,我们在编辑器中插入两个 Box Mask 节点,并将它们设置为 Add 模式,然后调整大小和位置,覆盖我们不感兴趣的区域。

为了将这两个节点串联连接,除了设置为 Add 模式之外,我们还需要将第一个节点的 Mask 输出连接到第二个节点的 Mask 输入。
通过这种方式得到的遮罩是白色的,但我们希望把这些区域从 Ceil 节点输出的结果中排除。
因此,我们需要在第二个 Mask 节点的输出后连接一个 Color Invert 节点。
接着,我们需要将 Color Invert 节点的输出与 Ceil 节点的输出相乘。可以使用设置为 Multiply 模式的 Color Mix 节点,也可以使用设置为 Multiply 模式的 Math 节点。
这样一来,我们就会把不感兴趣的区域变成黑色,从而让遮罩只保留窗户部分。

现在,我们可以在 Multiply 节点的输出后插入一个 Sun Beams 节点,并根据需要放置和调整光线。
为了将这些光线叠加到原始图像上,我们像上一期教程那样,使用一个设置为 Add 模式的 Color Mix 节点。

不过现在,光线顶部的边缘过于清晰,而且光线完全是白色的。
为了稍微模糊这些边缘,我们在 Sun Beams 与 Color Mix Add 节点之间插入一个 Filter Blur 节点,并根据需要调整设置。

为了改变光线的颜色,我们可以使用各种 Compositing 节点或技巧。
最简单的方法是在 Blur 节点与最终的 Color Mix Add 节点之间连接一个 Color Balance 节点,然后调整颜色,直到得到想要的效果。

为了分析添加和未添加该效果时的渲染差异,选择最终的 Color Mix Add 节点,然后多次按下 M 键,以启用或禁用该效果。
正如我之前多次提到的,包括上一期教程中也是如此,通过这种方式得到的光线只是后期制作的小技巧,并不是真正的体积光。
与使用 Volume Scatter 得到的渲染相比,两者的差异非常明显,尤其是在光线传播过程中被物体阻挡后形成的阴影方面。因此,这种技术并不一定适用于所有类型的场景。
相比于 Volume Scatter,使用 Sun Beams 的优势在于渲染时间明显更短,而且更容易调节参数。
在 Compositing 流程中,修改节点参数并几乎实时地查看变化会更加方便。
此外,在 Compositing 中,你还可以尝试各种不同的混合模式。

好了,这就是关于 Sun Beams 节点基础知识的第二期,也是最后一期教程!希望这对你有所帮助!下次见!