这是两个教程中的第一个,使用 Blender 3.6 制作。在本教程中,我们将研究 Sun Beams 节点,用它在 Compositing 中模拟空气中的光线散射,也就是说:在渲染完成之后进行处理,而不需要使用 Volume 着色器或场景中的其他元素。
本教程的视频版本目前尚未提供该语言版本。您可以在下方观看带字幕的英文版视频;视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!这是两个教程中的第一个,使用 Blender 3.6 制作。在本教程中,我们将研究 Sun Beams 节点,用它在 Compositing 中模拟空气中的光线散射,也就是说:在渲染完成之后进行处理,而不需要使用 Volume 着色器或场景中的其他元素。
这种效果有很多叫法:Crepuscular Rays、God Rays,或者因为我们将使用的 Compositing 节点,也可以称为 Sun Beams;在这个特定情况下,我会避免把它称为 Volumetric Light,因为它属于后期制作效果,而不是真正的体积光照。
在这个第一部分教程中,我们只会在一个非常简单的场景中研究 Sun Beams 节点;所以,如果你已经了解这个节点及其参数,那么你可以停止观看本教程,等待下一部分!
在下一部分教程中,我们将研究一个稍微复杂一些的场景,在那里我们需要使用遮罩以及其他合成技术。
在我现在屏幕上展示的场景中,虚拟摄像机位于一个非常风格化的房间内部。光线只从顶部的开口进入,而这个光源实际上是 World 光照,在 Compositing 中被称为 Environment。

当我们开始渲染时,会得到一个非常简单的结果:通过开口看到的背景被很好地照亮,而环境中的其他部分则由反弹光照亮。

现在让我们打开 Compositing 编辑器,并在节点设置中添加一个 Sun Beams 节点,把它放在 Render Layers 的 Image 输出和 Reroute 节点之间,这样我们就可以在 Backdrop 中预览效果。
立刻我们会注意到两件事:这个节点只有三个参数,而且……什么都看不到:不仅没有任何效果,整个渲染结果甚至都消失了!

Sun Beams 节点实际上已经作用于整个渲染图像,但由于 Ray Length 参数中的光线长度被设置为 0,因此没有产生任何效果。所以,让我们提高 Ray Length 参数的值,并观察另外三个新现象。

我们首先注意到的是,这些光线具有自己的方向,但这个方向并不与进入场景中的光线方向一致。实际上,这个方向由编辑器中那个 X 形元素的位置决定,当我们选中 Sun Beams 节点时就能看到它。
这个符号代表效果的起始位置,可以通过点击并拖动来重新定位,也可以在节点剩余的两个参数中输入 X 和 Y 坐标来设置。

我们注意到的第二件事是,Sun Beams 节点只返回效果本身,这意味着渲染中的其他部分已经不可见了。
要将这个效果添加回原始渲染中,我们只需要在场景里添加一个处于 Add 模式的 Color Mix 节点,并确保将 Render Layer 的 Image 输出连接到 Color Mix 节点的第一个 Image 输入,再将 Sun Beams 的 Image 输出连接到第二个 Image 输入。

不过,我们之前还注意到了第三件事,那就是光线会从效果原点向所有方向发射。
这并不适合我们的场景,因为我们希望将光线的来源限制在墙壁开口中可见的虚拟背景区域。
由于那个开口框住的是虚拟世界的背景,因此我们可以通过在 Properties 编辑器的 View Layers 标签页中启用 Environment Render Pass 来获取它的遮罩。


不方便的是,由于这项信息现在才刚刚启用,为了可视化它并查看最终效果,我们必须重新渲染一次……所以,当你需要在自己的场景中应用这种效果时,请记得提前启用它!
然后,Environment 信息就可以作为 Sun Beams 效果的来源。与直接使用 Render Image 相比,差异非常明显。

现在,我们可以使用 Factor 参数来调整效果强度。像其他节点参数一样,它也可以通过插入 Keyframes 来让数值随时间变化,因此你甚至可以制作动画效果。
不过,在结束第一部分之前,我必须说明一点:并不是所有看起来很漂亮的东西都完美无缺。这些光线实际上只是应用在图像上的后期特效,因此它们并不知道场景中有哪些物体,所以也无法被障碍物阻挡。

因此,这种效果只适用于某些特定情况,而在其他情况下,则必须使用体积效果或者其他技巧。
本教程到这里结束;在下一部分中,我们将学习如何把这种效果应用到穿过窗户的光线中,也就是通过半透明材质的光线,还会学习如何柔化边缘、排除渲染中不需要处理的区域,以及如何使用 Color Balance 和其他效果进一步修改它。下次见!