在本教程中,我想向你展示我在 Blender 中应用来自 Substance Painter 的一些 Textures 时遇到的异常渲染伪影,以及如何解决它们。本教程使用的渲染引擎是 Cycles。
本教程的视频版本目前尚未提供该语言版本。英文版视频可通过以下链接观看:
视频文字稿
大家好!
在本教程中,我想向你展示我在 Blender 中应用来自 Substance Painter 的一些 Textures 时遇到的异常渲染伪影,以及如何解决它们。本教程使用的渲染引擎是 Cycles。
让我们先来看一下这个物体。正如你所看到的,它只是一个带钩子的简单滑轮。几何体本身没有问题,没有翻转的 Normals,没有重复的顶点或几何体,拓扑结构是正常的,着色模式设置为 Smooth,并且 Auto Smooth 已启用。

关于 UV、Material 和 Textures。UV 没有重叠,并且我只使用了一个 PBR Material,其中包含三张 Textures。Albedo、Normal,以及一张名为 ORMA 的特殊颜色贴图。顾名思义,我在这张贴图的 RGBA 通道中分别存储了 Occlusion、Roughness、Metallic 和 Alpha 数据。
我从 Substance Painter 中导出这张贴图是为了节省磁盘空间,因为这些通道本质上都是灰度图像,所以我可以把它们合并到一张 PNG 贴图中,然后在 Cycles 中再将各个通道分离出来。

然而,当我切换到 Rendered 模式时,我可以在表面上看到一些奇怪的渲染伪影。面片看起来像是被三角化了,或者呈现出锯齿状的效果。

在大多数情况下,这类问题可能与 Normals 或平滑设置有关。但在这里,Auto Smooth 的设置是正确的,Edge Split modifier 并不起作用,而 Subdivision Surface modifier 反而会让情况变得更糟。

因此,我们可以确定问题并不是由几何体引起的,同时也不是渲染设置的问题。即使修改 Object 的 Shading 面板中的 Shadow Terminator 参数,或者调整 Render Properties 面板中的其他参数,也无法解决这个问题。
我几乎可以确定这和 Normals 有关,但 Normals 本身看起来是正确的。

实际上,问题出在 Normal Map 应用到材质的方式上。在加载 Normal Map 的 Image Texture 节点中,有一个名为 Color Space 的参数。它被设置为 sRGB,这对于 Base Color 贴图来说是正确的,但这里使用的是 Normal Map,所以我将它切换为 Non-Color Data,然后……
这些奇怪的渲染伪影就消失了。
所以,如果你在自己的模型上看到类似的异常伪影,也请务必检查一下这个参数。

但等等,还有更多内容。
如果我们查看 Substance Painter 中的模型预览,会发现 Roughness 的效果与在 Cycles 中看到的不一样。现在我们已经知道,这可能与 ORMA Texture 的 Color Space 有关,也就是存储 Roughness 数据的那张贴图。因此,我们同样将它切换为 Non-Color Data,然后……

问题就解决了。

好了,这就是全部内容了。下次再见。