在几周前发布的一期教程中,我演示了如何在 Blender 中启用 Depth of Field,无论是在 3D Viewport 还是在渲染过程中,都可以让一个物体保持对焦,同时让场景中的其他部分产生模糊效果。。。


本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。


视频文字稿

大家好!在几周前发布的一期教程中,我演示了如何在 Blender 中启用 Depth of Field,无论是在 3D Viewport 还是在渲染过程中,都可以让一个物体保持对焦,同时让场景中的其他部分产生模糊效果。

Depth of Field 产生的模糊效果可以带来很有趣的结果。不过,它并不会只对选中的物体保持清晰,因为所有与虚拟摄像机距离相同的元素也会同时保持对焦。

画面中我正在展示一段动画,其中 White Queen 被设置为对焦物体。正如你所看到的,在动画过程中,其他棋子以及棋盘的一部分也同样保持清晰。此外,White Queen 本身也并不总是完全清晰,因为它的高度较高,根据摄像机角度的不同,它的某些部分可能会与对焦点存在不同的距离。

现在我向大家展示的是本教程结束时将要实现的渲染效果。可以看到,位于 White Queen 不同距离位置的棋子都通过 Depth of Field 效果产生了模糊。这并不是一种简单的整体均匀模糊,而是除了 White Queen 之外,所有其他物体都会被模糊处理,而 White Queen 始终保持完美清晰。

和我许多其他视频教程一样,本教程的 PDF 版本也可以通过简介中的链接免费下载。现在也是一个订阅频道并开启通知的好时机,这样你就不会错过之后的教程了!

下面我们来看看如何实现第二段动画中的效果。首先,我们需要为 Camera 对象启用 Depth of Field,并设置对焦对象,在这里我们的对焦对象是 White Queen。

不过在这个阶段,我们先禁用虚拟摄像机的 Depth of Field 效果。

现在开始渲染时,我们会得到一张整体都保持清晰的图像。之所以关闭摄像机的 Depth of Field,是因为在这个案例中,我们不希望在渲染阶段直接对场景进行模糊处理。相反,我们只需要提取 White Queen 的距离信息,以便在 Compositing 阶段使用 Defocus 效果。

在继续之前,我们需要在 View Layers 面板中启用 Z Render Pass,这样才能在 Compositing 阶段获取这些距离信息。

为了在 Compositing 中将 White Queen 的遮罩从其他渲染内容中分离出来,首先需要在 Object Data Properties 标签页中的 Relations 部分,为该对象设置一个不为 0 的 Pass Index 值,例如设置为 1。

只有 White Queen 应该使用这个 Pass Index 值。否则,其他对象也会被包含进 Compositing 遮罩中。

为了在 Compositing 中使用这些信息,我们还需要在开始渲染之前,在 View Layer Properties 面板中启用 Object Index Render Pass。

现在让我们使用这些信息开始一次渲染,然后进入 Compositing,搭建最终效果所需的节点结构。

我们先将 Object Index 信息连接到一个 ID Mask 节点,并把 Index 设置为 1,这样就可以分离出 White Queen 的遮罩。

接下来,使用一个处于 Multiply 模式的 Color Mix 节点,将这个遮罩与原始图像相乘,同时将 Factor 设置为 1,并启用 Clamp。这样我们就能得到一张只有 White Queen 的渲染图像,背景为黑色。

为了将这张图像叠加到原始渲染上,我们需要让图像中的所有黑色区域变为透明。为此,Set Alpha 节点非常适合。不过这里会有一个问题:如果直接使用 Alpha,White Queen 本身会变成半透明,因为在最终图像中,它的颜色继承自渲染结果。

幸运的是,我们已经通过 ID Mask 节点的输出,获得了一张 White Queen 的黑白遮罩图!将 Multiply 节点的输出连接到 Set Alpha 节点的 Image 输入端。然后,再将 ID Mask 节点的 Alpha 输出连接到 Set Alpha 节点的 Alpha 输入端。

现在,我们已经得到了一张带透明背景的 White Queen 渲染图,可以通过 Alpha Over 节点叠加到模糊后的场景上。

让我们在节点结构中添加一个 Alpha Over 节点,并将 Factor 设置为 1。把 Render Layers 的渲染输出连接到 Alpha Over 节点的第一个 Image 输入端。然后,再把 Set Alpha 节点的输出图像连接到第二个 Image 输入端。

目前,所有物体都保持完全清晰,因为最初的渲染并没有经过模糊处理。

现在在 Render Layers 和 Alpha Over 之间添加一个 Defocus 节点,启用 Z Buffer,并将 Render Layers 的 Depth 输出连接到 Defocus 节点的 Z 输入端。

降低 F-Stop 数值,直到产生所需的 Depth of Field 模糊效果。

此时,White Queen 会保持完全清晰,同时与摄像机距离正确的其他物体也会保持清晰。不过,当 F-Stop 数值设置得非常低时,我想请大家注意一个比较明显的问题。

实际上,我们当前节点结构实现的结果,与直接使用 Camera 对象的 Depth of Field 效果有所不同。由于 White Queen 是一个非常高的物体,当 F-Stop 数值很低时,它的所有部分其实并不会全部保持清晰。

在我们的节点结构中,我们实际上是将 White Queen 的清晰渲染结果单独分离出来,然后叠加到经过模糊处理的原始渲染版本之上。

接下来,我们还需要对所有与虚拟摄像机距离正确的其他元素额外增加模糊效果,当然 White Queen 本身除外。

这可以通过在 Defocus 节点输出之后,再添加一个 Blur 节点,并设置合适的模糊数值来轻松实现。

Defocus 节点首先会根据景深效果产生初始模糊,因此距离 White Queen 越远的物体会变得越模糊。随后,Blur 节点会为整个图像再增加一层额外模糊,从而影响所有剩余元素。

最后,将完全清晰的 White Queen 渲染结果叠加到模糊后的图像上,就得到了最终效果。

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

搜索教程

输入短语,或输入多个用逗号分隔的关键词进行搜索。

本站提供 Francesco Milanese 制作的 3D 模型、教程及计算机图形相关资源。3D 模型的使用许可可通过各模型页面上的链接前往第三方商店购买,并须遵守适用的许可条款。 Francesco Milanese — 意大利增值税号:06321250877。 联系方式:info@francescomilanese.com


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