在这期 Blender 基础教程中,我们将学习如何为虚拟相机设置景深,从而让场景中只有某一个特定点保持清晰,而距离该点更近或更远的区域则会变得模糊。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!在这期 Blender 基础教程中,我们将学习如何为虚拟相机设置景深,从而让场景中只有某一个特定点保持清晰,而距离该点更近或更远的区域则会变得模糊。
我们还会学习如何直接在 3D Viewport 中预览相机的焦点位置,以及景深所产生的模糊效果。
本教程基于 Blender 4.3 制作,内容仅涉及 Camera 对象的属性,不包括 Compositing 中的 Defocus 选项,我可能会在之后的视频中讲解它。如果你对 Blender、Substance Painter 或 Unity 的更多教程感兴趣,现在正是订阅频道并开启通知的好时机!
在本教程所使用的场景中,当然有一个虚拟相机,它负责构图并拍摄场景中的多个元素。

在 3D 视图中,所有元素目前都完全清晰,对场景进行渲染时也会得到相同的结果。
Blender 提供了两种实现景深的方法,它们都可以在虚拟相机的 Object Data Properties 标签页中的 Depth of Field 部分找到。

第一种方法是在距离虚拟相机某个特定距离的位置保持场景元素清晰。这种方法通过调整 Focus Distance 参数来实现。
不过现在直接调整这个值会遇到两个问题。第一个问题是,我们并不知道场景中的哪个点对应当前设置的距离。第二个问题是,我们无法在 3D Viewport 中实时预览该效果。
为了解决第一个问题,我们可以在相机 Object Data Properties 标签页中的 Viewport Display 部分启用 Limits 选项。启用后,系统会使用一条线段显示相机的 Clip Distances,并用一组交叉线显示焦点位置,就像视频中展示的那样。

现在设置焦点位置就容易多了,因为在调整 Focus Distance 参数时,我们可以实时看到该点在场景中的位置。
若想在 Camera View 中预览景深产生的模糊效果,我们需要打开 3D View 中的 Viewport Shading 菜单,并启用 Depth of Field 选项。在 Render 模式下,即使在 Viewport Shading 菜单中关闭了 Depth of Field,效果依然可见,因为该选项实际上作用于 Solid 模式。
在分析相机对象的 Depth of Field 参数之前,我们先来看看设置焦距的第二种方法:Focus on Object。

顾名思义,这个选项可以让某个对象始终保持清晰,即使它是一个不可见对象,比如场景中添加的 Empty,作为一个容易识别的参考点。焦点会位于该对象的 Origin,因此必须正确设置 Origin,才能获得想要的效果,我会在视频中进行演示。

这个选项在静态场景中非常实用,因为它可以快速设置焦点位置;在动画中同样很有用,因为无论相机还是对象如何移动,相机都会始终对焦于指定的对象或位置。

Focus Distance 方法的一大优势是,它的参数值可以制作动画,因此我们能够创建焦点从一个对象切换到另一个对象的动画效果,就像屏幕上的示例那样。

这个效果同样可以通过使用 Empty 作为 Focus Object,并移动 Empty 来实现。归根结底,选择哪种方法主要取决于你的个人习惯!
接下来,我们来看看用于定义虚拟相机景深效果的各项参数。
第一个参数叫做 F-Stop,它用于调整场景中失焦区域的模糊强度。这个值越低,景深效果就越明显。和 Blender 中的大多数参数一样,这个值也可以制作动画,因此你可以在动画过程中将观众的注意力集中到场景中的某个元素上,或者反过来操作。

另外三个参数用于实现 Bokeh 效果。这种效果来源于现实相机镜头中光圈叶片的形状、方向以及结构。
在传统摄影中,失焦元素的形状会受到这些特性的强烈影响,而 Blender 则通过 Blades、Rotation 和 Ratio 参数来模拟这些效果。
该效果会在最终渲染的所有对象上体现出来。为了让这些示例更加明显,我将使用一个带有自发光材质的球体,并将其放置在黑色背景中的失焦区域。

Blades 参数对应现实相机镜头中的光圈叶片数量,它会影响模糊对象形状的变化。只有当该值为 3 或更高时,效果才会可见,此时会生成具有 3 个或更多边的多边形。

在视频中,我展示了通过调整该参数得到的渲染结果。你可以看到,当 Blades 设置为 0 时,球体的发光效果呈圆形;而当值为 3 或更高时,结果则会变成对应边数的多边形。这些渲染使用了较低的 Samples 数量,并启用了 Denoise,因此初始渲染会显得噪点很多,但最终图像会更加平滑,并且模糊效果十分清晰。

随着 Blades 数值增加,多边形会越来越接近圆形,不过在这种情况下,直接将值设置为 0 来获得完美圆形效果可能会更合适。事实上,现实中的相机镜头通常拥有 6 个或更多光圈叶片,以便更好地接近圆形,并避免出现多边形形状的 Bokeh。
Rotation 参数允许你在 Blades 设置为 3 或更高时,旋转由 Bokeh 效果生成的形状。根据数值的增减方向,包括使用负值,旋转既可以是逆时针,也可以是顺时针。
在视频中,我展示了一个动画示例:Blades 设置为 3,并在 250 帧内将 Rotation 的值从 0 动画到 180。

最后,Ratio 参数允许你对 Bokeh 效果生成的多边形进行拉伸变形。当该值小于 1 时,图形会水平拉长;当该值大于 1 时,则会垂直拉长。因此,默认值 1 不会对形状产生任何变形。

关于 Blender 相机景深设置的介绍就到这里了,包括 3D Viewport 和最终渲染中的效果。希望本教程对你有所帮助。下次见!