在本教程中,我们将学习如何在 Blender 的渲染后期处理中,通过强调对象的边缘并添加 Glare 类型的发光效果来增强画面表现。


本教程的视频版本目前尚未提供该语言版本,但可在页面顶部选择英文查看。


视频文字稿

大家好!在本教程中,我们将学习如何在 Blender 的渲染后期处理中,通过强调对象的边缘并添加 Glare 类型的发光效果来增强画面表现。

本教程使用 Blender 3.6 制作,但所使用的 Compositing 节点自至少 2.49 版本起就已经存在,并且很可能在未来版本中仍会保留。

要强调 Blender 场景中某个对象的边缘,我们首先需要将该对象从渲染中分离出来。这可以通过 Cryptomatte 实现,或者像我这样使用 ID Mask 节点,它会为我们提供一个与目标对象对应的白色遮罩。

在本次演示使用的 3D 模型中,与胸腔相关的对象分为四个独立部分:vertebrae、cartilage、ribs 和 sternum。

在本例中,我们选择突出显示 cartilage 部分的边缘。

在开始渲染之前,需要为要分离的对象分配一个唯一的数值标识。在 Object Properties 面板的 Relations 部分中,将 Pass Index 字段设置为一个非 0 的值。因此我将其设置为 1。

为了在后期处理中获取该信息,需要打开 View Layer 面板,并在 Passes 部分勾选 Object Index。

现在可以打开 Compositor Editor,并勾选 Use Nodes 以启用节点。

为了预览 Compositing 效果,还需要勾选 Backdrop。

接下来,添加一个 Layout Reroute 节点和一个 Output Viewer 节点。

这样我们就可以将合成结果发送到 Reroute,然后从那里同时输出到 Composite 和 Viewer。

现在可以执行一次初始渲染,即使只使用少量采样也可以,以获取初步的 Compositing 数据。

在这些数据中,我们尤其会得到对象的遮罩,可以通过 Render Layers 节点的 IndexOB 输出获取。

如果渲染预览过大,可以按 V 键缩小;如果太小,可以使用 ALT + V 进行放大。

现在我们来查看仅隔离 cartilage 对象的遮罩:在 Render Layer 和 Reroute 节点之间插入一个 Convertor ID Mask 节点,并使用 IndexOB 输出而不是 Image 输出。

在 ID Mask 节点的 Index 字段中,输入与 cartilage 对象的 Pass Index 对应的数值,也就是 1。

如你所见,我们得到了一个对应 cartilage 对象的白色遮罩。

如果我们想只对这些部分进行高亮或其他修改,这个遮罩就是一个很好的起点。

不过我们现在只想强调遮罩的边缘,因此需要想办法将这些边缘单独提取出来。

在这种情况下,Dilate/Erode Filter 节点可以帮助我们,它可以放大或缩小遮罩。将其放在 ID Mask 和 Reroute 之间,并调整 Distance 数值即可观察效果。

特别是,当设置为负值时,可以得到原始遮罩的缩小版本。

这就为我们提供了解决方案,因为我们可以用原始遮罩减去缩小后的遮罩,从而只保留边缘部分。

我们将使用 Convertor Math 节点并设置为 Subtract 模式。该节点处理数值输入,这些数值来自 ID Mask 的 Alpha 输出以及 Dilate/Erode 的 Mask 输出,可以通过观察插口颜色来确认。

因此,将 ID Mask 的 Alpha 输出连接到 Math Subtract 节点的第一个 Value 输入,同时也连接到 Dilate/Erode 节点的 Mask 输入。

在 Dilate/Erode 节点中,将 Distance 设置为负值,例如 -1 或 -2。

然后,将其 Mask 输出连接到 Math Subtract 节点的第二个 Value 输入,再将 Math Subtract 的输出连接到 Reroute 节点,以预览当前结果。

现在我们已经可以对这个遮罩进行一些处理,比如应用带颜色的 Glare 滤镜。

首先,使用一个 Color Mix 节点,将 Math Subtract 的输出与蓝色相乘,并将模式设置为 Multiply,从而为遮罩上色。

用白色相乘时结果就是乘的颜色,而与黑色相乘始终得到黑色,因为相当于乘以 0。由于我们的图像只有在 cartilage 边缘是白色,其余为黑色,因此与蓝色相乘后,边缘会变成蓝色,其余仍为黑色。

接下来,将一个 Filter Glare 节点连接到 Color Mix Multiply 的输出。在我的设置中使用 Streaks 模式,并设置为 6 条光线。同时注意将 Threshold 设置为 0,否则该节点不会产生效果。

如果效果看起来太弱,可以尝试减小 Dilate/Erode 节点中的 Distance 数值。这个调整也可以在之后叠加到原始渲染时再进行。

接下来只需将该结果叠加到原始渲染上。有多种方法可以实现,但最简单的方式可能是在 Reroute 节点之前插入一个 Color Mix 节点,并设置为 Screen 模式,同时将 Factor 设为 1。

注意 Screen 节点的连接顺序:来自 Render Layers 的图像应连接到第一个 Image 输入,而来自 Glare 或其他遮罩效果节点的图像应连接到第二个 Image 输入。

如果 Screen 节点的 Factor 为 0,则输出只显示原始渲染。为了实现视频开头那种发光逐渐增强的动画效果,可以在第一帧将 Factor 设为 0 并插入关键帧,然后在时间轴向后移动,将 Factor 设为 1 并再次插入关键帧。

最终效果就是这样,我们选择的对象边缘被清晰地突出显示,并带有颜色和柔和的发光效果。

希望这个教程对你有所帮助!下次再见!

本网站仅用于展示我的部分作品,不具有任何推广或商业目的。请注意,目前我不接受,也不会回复任何定制项目、咨询服务或其他形式的合作请求。


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