在这个简短的教程中,我们将介绍两种创建动画 Streaks 发光效果的方法。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!在这个简短的教程中,我们将介绍两种创建动画 Streaks 发光效果的方法。本教程使用 Blender 4.2 版本录制,面向已经对 Compositing 有一定了解的用户。
本教程涉及的内容包括 Glare 节点、遮罩以及 View Layers,这些内容我之前已经在频道中的其他教程里讲解过。如果你还没有订阅频道,现在正是订阅并开启通知的好机会!
第一种方法会生成你现在屏幕上看到的效果。从技术角度来看,它更加准确,因为它将 Streaks 发光应用到了物体的 Glossy 反射上。不过,对于某些物体来说,例如本例中的钻石,这种方法制作出的动画在视觉上可能不够理想,因为镜面反射会随着摄像机角度和灯光变化而产生很大的差异。

现在我在屏幕上展示第二种结果。第二种方法是在希望出现发光的位置放置一个不可见物体。这个物体会在与主场景不同的 View Layer 中渲染,然后再在 Compositing 中重新添加回来。

在这两种方法中,节点设置的思路都很简单:将需要发光的物体单独提取出来,并应用 Filter Streaks 节点,同时为 Fade 和 Angle Offset 参数制作动画。这样就可以在旋转光线的同时增强或减弱发光强度。
Fade 参数控制光线根据与原点距离产生的强度衰减,因此实际上可以用来调整光线长度。
而 Angle Offset 参数则会直观地旋转 Streaks 效果生成的光线。
在本教程介绍的两种方案中,Glare 效果的结果都会经过额外节点处理,以增强发光效果。这些技巧我也在频道之前的视频教程中讲解过。通过使用 RGB Curve 和 Exposure 节点,你可以微调光线强度,而 Blur 节点则可以稍微柔化光线,从而获得更好的视觉效果。
最终,发光效果会通过设置为 Addition 模式的 Mix 节点与原始渲染合成。
在本视频展示的两种方案中,使用关键帧制作动画的三个参数分别是 Angle Offset、Fade 和 Addition Factor。具体来说,Fade 和 Addition Factor 会从第一帧逐渐增加到动画中间位置,然后在后半段逐渐减小。这样会使光线在动画中段变得更长,同时效果更加明显。
而 Angle Offset 参数则会在整个动画过程中旋转 180 度,因此不需要在中间位置设置关键帧。

这一部分节点设置在两种方案中基本完全相同。现在我们先来看一下视频开头第一个渲染结果所使用的节点设置。
在 Compositing 中隔离物体是一个相对简单的操作,并且有多种实现方式。在第一种方案中,我将钻石材质的 Material Index 设置为 1。然后启用 Material Index Render Pass 和 Glossy Direct Render Pass,接着进行渲染并进入 Compositing 阶段。


在 Compositing 节点编辑器中,我通过连接 Material Index 信息,并使用设置为 1 的 Index Object 节点来获取钻石的遮罩。然后我将该遮罩与 Glossy Direct 信息相乘,只保留钻石的 Glossy 反射。


这个设置的问题在于,渲染对象是一个钻石,而由于钻石具有大量切面以及较高的折射率,它的镜面反射在动画过程中会发生很大变化。因此不同帧之间的高光反射差异会非常明显。
所以,虽然这种效果在技术上是准确的,但视觉表现可能并不理想。
现在我们来看本教程介绍的第二种配置。这种方法使用了一个并不符合物理真实的技巧,但能够在最终动画中得到更加稳定的发光效果。
首先,我在项目中添加一个新的 View Layer。这个 View Layer 将用于渲染一个辅助物体,它会被放置在我希望钻石上出现发光的位置。

接下来,我将 3D Cursor 移动到钻石上的某个位置,也就是我希望新物体居中的地方,然后向场景中添加这个物体。我这里使用的是一个简单的立方体,并且将它缩小很多,因为它必须非常小,才能生成一个紧凑的遮罩,方便之后在 Compositing 中进一步处理。

在这个项目中,钻石保持静止不动。但如果物体本身会移动,你可以将辅助物体,也就是这里的立方体,作为子对象绑定到被渲染的物体上。
我为这个立方体分配了一个使用 Emission Shader 的材质,并将它的 Material Index 设置为 1。这样它就会以无明暗的方式显示,并且能够在后期处理中轻松被隔离出来。


为了在当前 View Layer 中只显示这个物体,我首先在 Outliner Editor 中将它移动到一个不同于默认 Collection 的新 Collection 中。
接着,我取消默认 Collection 对应的勾选框,只保留包含立方体的 Collection 的勾选状态。

然后我切换回原始的 View Layer,并执行相反的操作,禁用新 Collection 中物体的渲染。

现在在 Compositing Editor 中,我需要添加一个新的 Render Layers 节点,并将新的 View Layer 指定为渲染来源。

我从这个节点中提取 Index Material 信息,用来生成立方体的遮罩,并将其连接到一个 Index 设置为 1 的 ID Mask 节点,从而将立方体从其余渲染内容中分离出来。


通过这种方式获得的遮罩随后会输入到 Glare 效果的节点设置中,而这些操作的结果会再与第一个 View Layer 的渲染进行合成。在那个 View Layer 中,立方体本身是不可见的。

本次教程就到这里!希望这对你有所帮助!我们下次再见!
