在本教程中,我们将看看如何使用 View Layers 来获取一些对象的遮罩。实际上,这些对象并不需要真正被渲染,但它们的形状和位置对我们实现其他效果来说非常重要。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!这是我几天前发布的关于 View Layers 和 Z-Combine 视频教程的补充内容。
在那个教程中,我向大家展示了如何在 Blender 4.1 中定义 View Layers,以便分别渲染场景中的对象,以及如何之后使用 Z-Combine 节点将它们混合,从而根据像素与摄像机之间的距离来显示这些像素。
在本教程中,我们将看看如何使用 View Layers 来获取一些对象的遮罩。实际上,这些对象并不需要真正被渲染,但它们的形状和位置对我们实现其他效果来说非常重要。
在我使用的这个场景中,特别包含了三个 View Layers,每个都包含一个对象。具体来说,我们有一架飞机、一个代表尾气的圆锥体,以及一个由多个圆柱体构成的网格对象,用来表示 shock diamonds。
如果我们只渲染包含飞机的 View Layer,我们会发现飞机会以虚拟宇宙背景作为背景进行渲染,而这个背景是通过 Nishita Sky 创建的,并且不会显示尾气和 shock diamonds。

表示 shock diamonds 的网格被设为了尾气圆锥体的父对象,而尾气圆锥体又被设为了飞机的父对象,因此这两个元素会跟随飞机的所有运动。

如果我们渲染所有的 View Layers,我们会得到三个独立的渲染结果,然后在 Compositing 中将它们混合在一起。下面我们来看看具体方法。

由于我们并不关心这两个元素的实际渲染结果,而只需要表示它们的黑白遮罩,因此我们需要在包含这些对象的两个 View Layers 中启用 Object Index Render Pass,并且在 Object Data 选项卡的 Relations 部分为这两个对象设置数值索引。值得注意的是,我们甚至可以给它们设置相同的索引,因为它们位于不同的 View Layers 中,所以仍然能够轻松区分。

在这两个 View Layers 的 View Layer 选项卡中,我们还需要启用 Z Render Pass,这样才能在 Compositing 中获取深度信息。
深度信息对于使用 Z-Combine 节点混合多个 View Layers 是必不可少的。
现在我们来看一下我为了实现本教程开头展示的最终渲染效果而创建的 Compositing 设置。

在设置的左侧,我们有输入部分。
如你所见,我们有三个 Render Layers 节点,每个节点都对应自己的 View Layer。在专门用于尾气和 shock diamonds 的两个 Render Layers 中,还包含了 IndexOB 输出。

在设置的右侧,我们有两个 Z-Combine 节点,你应该已经比较熟悉了。具体来说,尾气和 shock diamonds 会先按照这个顺序进行混合,然后该混合结果会作为 Foreground 输入到另一个 Z-Combine 节点中,而 Background 则是飞机的渲染结果。

正如我在关于 View Layers 和 Z-Combine 的基础教程中提到的,Z-Combine 节点的两个输入实际上分别对应 Background 和 Foreground,因为如果 Foreground 中的信息具有半透明效果,那么 Background 中的信息也会部分显示出来。
为了只获取这两个附加对象的遮罩而不真正渲染它们,我们只需要从它们各自的 Render Layers 节点中提取 IndexOB 信息,并将这些信息输入到 ID Mask 节点中,同时在节点中指定与对象 Object Data 选项卡中相同的编号。

输入的遮罩会是黑色背景上的白色图像。
为了获得透明背景上的遮罩,我们可以将 ID Mask 的输出连接到一个 Set Alpha 节点,并把遮罩同时连接到两个输入。这样一来,遮罩中的黑色部分就会被渲染为透明。

接下来还有一些节点,用于根据需要实现 glow 效果。不过在这里,就需要你自己使用 Compositing 节点和参数来实现想要的效果了。我只能提供一些关于我所使用设置的参考,但这些设置绝不是固定不变的。

shock diamonds 的节点设置是最简单的,因为遮罩只是通过 Blur 节点进行了模糊处理,并通过 RGB Curves 节点调整了亮度。
在 RGB Curves 节点中,我还调整了 B 曲线,从而给最终图像增加了一点偏蓝色的色调。

尾气的节点设置稍微复杂一些,因为我希望只得到表示尾气圆锥体的轮廓。

为了得到这个轮廓,我从原始遮罩中减去了它的一个收缩版本,而这个收缩版本是通过设置负值的 Dilate Erode 节点获得的。
关于如何使用 Dilate Erode 节点只获取遮罩轮廓,我之前做过一个视频教程,名为 “Glowing Edges”。如果你还没看过,我推荐你去看看,因为里面包含了一些你可能会感兴趣的技巧。

之后,我对遮罩进行了模糊处理,并通过 RGB Curves 节点调整了亮度和颜色。在这个例子中,我修改的是 R 曲线,不过这只是个人选择。然后我又通过处于 Fog Glow 模式的 Glare 节点添加了额外的 glow 效果。

由于尾气和 shock diamonds 都是 3D 对象,因此它们会始终跟随飞机运动。在 Compositing 中,你可以随意调整它们的强度和外观。最后,通过这样设置 Z-Combine 节点,它们在每一帧中都会被正确渲染,也就是说,不会错误地叠加到飞机之上。


好了,本教程就到这里!希望它能对你有所帮助!下次见!