Blender 3D:菜鸟到专业/Cycles中的玻璃材质
适用 Blender 版本:2.68。 |
本教程将使用 Cycles 渲染重新制作之前的 光线追踪 课,这次我们将使用 Cycles 渲染。从您上次创建的相同文档的副本开始;我们将保留相同的几何体,但重新制作所有材质,然后您可以比较最终结果,看看不同的渲染器如何执行。
打开光线追踪文档。将渲染器 切换到 Cycles。之前我们定义了两种材质:世界背景使用“神奇”纹理,以及用于立方体的玻璃。所以我们需要重新制作它们。
对于除最基本的纯漫反射材质之外的所有材质,Cycles 要求您使用节点编辑器。您应该已经完成了 先前的介绍;如果您没有,请复习一下。Cycles 材质节点与 Blender 内部 材质节点 不同;但节点编辑的基本机制是一样的。
让我们先尝试修复背景材质。转到属性 窗口中的世界 上下文。它应该看起来像右侧的样子。所有世界设置都去哪里了?几乎所有设置都消失了!
但是看到那个大大的“使用节点”按钮了吗?它很大,这样你就很难错过它。点击它。
好了!现在有一些更多的设置,但仍然不多。对于所有有趣的东西,我们必须进入节点编辑器。
您可能在 Blender 屏幕布局的底部有一个时间线 窗口。将窗口类型更改为节点编辑器 ,并增加其高度。(或者,如果您还没有,可以添加一个新窗口,并将其设置为节点编辑器。)在其标题中,菜单标题旁边,您应该看到一组 3 个图标 表示您要编辑的节点类型:如果您将鼠标悬停在它们上面,从左到右,您应该看到工具提示,分别将它们标识为“着色器节点”(即 Cycles 材质)、“合成节点”和“纹理节点”。我们想要的是“着色器节点”。
Cycles 不使用纹理节点编辑器。当 Cycles 被选为渲染器时,您可能会发现节点编辑器的这种模式仍然可用,但这没关系,不要费心使用它。在 Cycles 中,所有纹理设置都在着色器/材质节点编辑器中完成。 |
选择着色器节点后,您将看到另外一对图标 紧挨着这三个图标出现:它们指示是否要编辑选定对象的着色器节点,还是世界节点。我们想要的是世界节点。
只要您选择世界着色器,以下内容就会出现在节点编辑器窗口中。注意特殊的“背景”和“世界输出”节点:您必须在世界着色器中包含它们,但注意“背景”节点上的“颜色”输入端子吗?它迫切需要一些东西连接到它。
使用 SHIFT + A 弹出添加节点的菜单。查找纹理子菜单,它应该看起来像右侧的样子。选择“神奇纹理”项。
这将添加一个代表纹理的新节点;将其“颜色”输出连接到“背景”节点上的“颜色”输入,就像右侧的样子。
现在,如果您按下 F12 进行渲染,您应该会看到新的神奇世界背景。
确保在 3D 视图中选择了立方体。转到属性窗口中的材质 上下文。与之前一样,您将看到很少的设置,以及一个大大的“使用节点”按钮。点击它。
在节点编辑器中,记住有两个图标用于选择要编辑的着色器/材质节点类型,一个是对象图标,一个是世界图标?这次点击对象图标。
与之前一样,您将看到一个初始的默认节点设置,就像右侧的样子。
这次,只有一个节点需要存在才能使节点设置正常工作,那就是材质输出节点。使用 RMB 点击名为“漫反射 BSDF”的节点,然后按 DEL 将其删除。
现在弹出来添加 SHIFT + A 菜单,这次查找着色器子菜单。我们将需要其中的三个项目,所以一次添加一个
- 一个光滑 BSDF,使表面有光泽(注意该节点的默认粗糙度设置为 0.2,将其设置为零)
- 一个折射 BSDF,使光线穿过透明材质折射的效果,以及
- 一个混合着色器,将两者结合在一起。
啊,但是我们如何将两者结合在一起?还记得我们在 Blender 内部教程中谈到的菲涅耳系数吗?好吧,在 Cycles 中,有一个用于此的节点!
在添加 SHIFT + A 菜单中,弹出来输入子菜单。在其中,您将看到一种菲涅耳节点类型。添加一个这样的节点。您会看到它从默认的 IOR(折射率)值为 1.45 开始,这大约是玻璃的折射率。
最后,将您的小型节点集合连接在一起,就像这样。看到菲涅耳系数如何控制光滑着色器和折射着色器的混合比例吗?输入到混合着色器的较大的输入因子意味着其第二个(较低)着色器输入的比例更大,而较小的输入因子意味着其第一个(较高)着色器输入的比例更大。较高的菲涅耳系数输出对应于更靠近物体边缘的区域,您希望在那里有更多的反射,而较低的输出值对应于内部区域,您希望在那里有更多的透明度。
最后,最后,按 F12 看看结果是什么样子。
它看起来很粗糙,没有像这样清晰吗?在渲染 上下文的采样面板中增加样本数,正如您在 上一教程 中所学到的那样。此处的图片是用 500 个样本完成的。 |
.
为什么不直接使用玻璃 BSDF 呢? 你可能在上面的添加着色器菜单中看到过它。然而,它似乎没有产生正确的效果:它看起来与折射 BSDF 没什么不同,没有提供多少光泽反射。 |
可调节折射
[edit | edit source]你可能已经注意到,上面的一组节点包含两个不同的名为“IOR”的字段:一个是菲涅耳节点上的,另一个是折射 BSDF 节点上的。前者控制着透明度和反射率之间的过渡,而后者控制着光线穿过材料的实际折射。在现实世界中,两者总是相同的,因为它们是相同的物理量。
使用正确的 IOR,相同的节点设置可以用来表示其他透明材料。为什么不只在一个地方设置值,而要设置两次呢?
要做到这一点,添加 SHIFT + A 另一个节点,从输入子菜单中,类型为值。这将提供一个你指定的固定值到任意数量的输出终端。将它的值输出连接到菲涅耳和折射 BSDF 节点上的两个 IOR 输入。这里我将它的值设置为 1.45,这对于玻璃来说是一个合适的值。
可重用的自定义着色器
[edit | edit source]如果你想在一个文档中有多种透明材料怎么办?你需要每次都重复上面的设置吗?
当然不会。相反,你可以定义一个自定义的节点组,并将它插入到你想要的任何节点编辑器设置中,你想要多少次就多少次。
从上一个屏幕截图中的节点设置开始。选择 RMB 提供 IOR 值的值节点,并 DEL 除它。现在看看剩下的四个节点,菲涅耳输入和三个着色器节点(除了材质输出)?以任何通常的方式选择这些,仅选择这些:按 A 一次或两次来取消选择所有内容,然后 RMB 第一个节点和 SHIFT + RMB 其余节点,或将一个 B 框选择到想要的节点周围。
现在,在这些节点被选中后,从“节点”菜单中选择“创建组”,或使用键盘快捷键 CTRL + G 。也按 N 在节点编辑器窗口的右侧调出属性架。结果应该像右边一样。注意以下几点
- 绿色的背景表明你正在编辑一个节点组,而不是整个节点设置
- 用黄色标题标记的块,分别标记为“组输入”和“组输出”:这些定义了整个节点组的输入和输出终端:组的输入显示为组输入块上的输出,组的输出显示为组输出块上的输入。组中任何未连接到这些终端的终端在组外部将不可见。
你可以按 TAB 从编辑节点组切换到编辑整个节点设置,在那里你会看到你的组显示为一个名为“节点组”的单个块。如果你想看看,可以试试这个,然后按 TAB 返回到编辑组,因为我们还没有完成设置。
首先,我们需要一个输入来指定 IOR 值。点击菲涅耳节点上的 IOR 输入终端,并拖到组输入节点的右侧边缘。Blender 应该会自动在组输入节点上创建一个名为“IOR”的输出终端,并有一根线连接到菲涅耳 IOR 输入。
现在点击这个组输入 IOR 终端,并将另一根线拖到折射 BSDF 节点上的 IOR 输入。
玻璃通常是有颜色的。这种颜色会影响光线穿过材料,而光泽反射则保持无色。
要为我们的节点组创建一个颜色输入终端,只需从折射 BSDF 节点上的“颜色”输入终端拖到组输入节点的右侧边缘即可;和以前一样,Blender 会自动添加一个新的组输入终端和连接。
现在按 TAB 完成自定义节点组的编辑。这将带你回到整体节点设置,你的自定义节点仍然被选中。它的名称将在右侧的属性架上的属性面板中显示出来;将其从默认的“节点组”更改为更有意义的名称,例如“自定义玻璃”。
现在,你可以添加回之前删除的输入值节点,为 IOR 终端提供一个值。同样,你也可以添加一个 RGB 节点,将其馈送到玻璃颜色中。或者,由于每个值只需要馈送到一个输入终端,你可以在自定义玻璃节点上未连接的输入中直接键入它们。
此外,你的自定义节点现在出现在添加组菜单中,随时可以插入到其他地方,在当前节点设置或其他节点设置中。
请注意,当你插入另一个自定义节点的实例时,节点定义本身不会被复制。每个实例都在其自己的独立输入值上运行,并产生其自己的独立输出值,但你随后可能对节点组的内部定义所做的任何更改都会自动生效,无论你之前在哪里使用过它。