在这个简短的教程中,我们将了解如何根据物体表面相对于相机的朝向,使其面变为透明,从而实现你现在在屏幕上看到的渲染效果。
本教程的视频版本目前尚未提供该语言版本,但可在页面顶部选择英文查看。
视频文字稿
大家好!在这个简短的教程中,我们将了解如何根据物体表面相对于相机的朝向,使其面变为透明,从而实现你现在在屏幕上看到的渲染效果。

这是一种仅突出物体轮廓的效果,使我们能够看到其整体形状,同时也能看到其内部的其他对象。
这是一个基础教程,使用的是 Blender 3.6,并且采用 Cycles 渲染引擎。不过,本教程中使用的节点在多个版本中都已存在,并且很可能在未来版本中仍然可用。
在我用于本示例的场景中,有两个对象被放置在一个容器内部,作为这些对象的背景。
场景中还包含一个相机和一个 Bezier Circle,我用它来让相机产生运动,使其围绕对象旋转。

照明完全由 World Background 提供。
本示例使用的两个对象是一个脚部模型及其骨骼,其中骨骼被合并为一个单独的对象。
对于骨骼,我使用了一个非常简单的材质,仅包含一个 Principled 节点,颜色为红色,Emission 强度设为 1,并在 Emission Color 字段中设置为非常深的红色。

不过,本教程的核心当然是脚部的材质,也就是包裹骨骼的部分。
在这里我们同样从一个简单的 Principled 节点开始,将其颜色设置为我们希望用于轮廓的颜色,例如纯白。
为了实现透明部分,我们显然需要一个 Transparent 节点,同样设置为纯白,因此将该节点添加到节点结构中。
为了进行混合,我们添加一个 Mix Shader 节点,并确保将 Transparent 节点连接到该节点的第一个 Image 输入端口。
然后将 Principled 节点连接到 Mix 节点的第二个 Image 输入端口。

这样一来,当 Factor 的值为 0 时,将使用 Transparent;而当该值为 1 时,则使用 Principled。
能够按我们需要提供这些数值的节点(即当面朝向相机时输出 0,而在其他朝向时输出不同数值)是 Input 下的 Layer Weight 节点,我们将其添加到节点结构中。我们特别关注该节点的 Facing 输出,并将其连接到 Mix Shader 节点的 Factor 输入。

完成连接后,可以调整 Layer Weight 节点的 Blend 参数值,它会略微偏移输出数值,因此建议使用较小的数值,例如 0.1;不过,这种方法在不同面之间产生的过渡过于平滑,这一点可以在 3D Viewport 的渲染预览中观察到。

为了更清楚地观察问题和解决方法,我添加一个 Emission Shader 节点,设置为绿色,并将 Layer Weight 节点的 Facing 输出连接到它的输入,同时将其输出直接连接到 Material Output 的 Surface 输入。

我们希望绿色区域与黑色区域之间的分界更加清晰,而不是这种过于平滑的渐变。
这种操作可以通过对比度控制来实现,因此我们在 Layer Weight 和 Emission 节点之间添加一个 Color Bright Contrast 节点,然后根据需要调整 Contrast 参数的值,直到获得满意的结果。

获得理想效果后,删除 Emission 节点,并将 Bright Contrast 的 Color 输出连接到 Mix Shader 的 Factor 输入。
最后,将 Mix Shader 的 Shader 输出连接到 Material Output 节点的 Surface 输入,进行其他必要的调整,然后开始渲染。

希望这个简短的教程对你有所帮助!我们下次再见!