在这个简短的教程中,我将向大家展示一种获取渲染图像中某个点距离数值的方法。这对于实现基于精确数值的 Compositing 效果非常有用,例如创建只在某个距离之外生效的遮罩。


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


视频文字稿

大家好!大家可能已经知道,在 Compositing 中使用 Depth Render Pass 可以获取物体到虚拟摄像机的距离信息,并以 32 位灰度图像的形式输出。

不久前,我发布过一个教程,讲解了这些数据以及如何在归一化或不归一化的情况下使用它们来实现雾效或其他基于距离的效果。

在这个简短的教程中,我将向大家展示一种获取渲染图像中某个点距离数值的方法。这对于实现基于精确数值的 Compositing 效果非常有用,例如创建只在某个距离之外生效的遮罩。

关键点如下:如果你在 Image Editor 中加载了一张图像,并在图像中的某个位置点击右键,Blender 会在底部栏中显示该像素的 RGBA 数值。其中 Alpha 通道在这个用途中特别有帮助。这样,你就可以查看原始渲染图像,定位你感兴趣的点,然后点击这些点,并在 Alpha 字段中读取对应的距离值。下面我来演示具体操作。

在开始渲染之前,我会在 Properties Editor 的 View Layer 选项卡中启用 Depth Pass。在这个选项卡中,Depth 信息标记为 Z。

开始渲染后,在 Compositor Editor 中,我将 Render Layers 节点的 Depth 输出连接到 Viewer 节点的 Alpha 输入。

接着,我打开一个 Image Editor,并在这个编辑器中打开 Viewer 图像。

现在,通过在图像上点击右键,我就可以在 Alpha 字段中获取图像中每个点到摄像机的距离值,单位为 Blender 单位。如果在 World Background 上点击右键,则会返回一个 100 亿的数值,这是一个极大的值,用来表示虚拟宇宙几乎无限远的距离。

这种方法既适用于原始的 Depth Pass,也适用于归一化后的 Depth Pass。区别在于,不归一化的数值表示物体与虚拟摄像机之间的实际 Blender 单位距离,而归一化后的数值范围在 0 到 1 之间,其中 0 表示距离摄像机最近的点,1 表示最远的点。我在开头提到的教程中已经讨论过这些内容。

当 Depth Pass 未归一化时,点击其中一个墓碑会得到大约 3585 的数值。要创建一个遮罩,使得位于虚拟摄像机到该距离之间的所有物体显示为白色,而其他情况显示为黑色,我只需要回到 Compositor Editor,在节点设置中添加一个 Math Less Than 节点,将 Depth 输出连接到新节点第一个 Value 输入,并将第二个输入值设置为 3585 左右即可。

好了,这个简短的教程就到这里!与我大多数视频教程不同,本教程目前没有提供可下载的 PDF 版本。不过,你可以在视频描述中的链接页面找到我许多其他视频教程的 PDF 版本。无论如何,现在正是订阅频道并开启通知的好时机!我们下次见!

搜索教程

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

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


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