【Blender】如何创建一个蓝色冰块?

Dec 21,2022

材质或者说着色器是三维软件的核心内容之一,配上合适的渲染器一起工作总能给人带来意想不到的惊喜。和其他模块一样,材质编辑中也有不少专业名词,比如漫射、焦散、法向、菲涅尔、次表面散射等。只有理解了这些词的具体含义,才能在调节材质时有章法可循,而不是盲目照搬别人的参数设置。
今天我们就通过一个冰块的制作来认识下Blender中的着色器编辑器案例参考文件:冰块.blend
模型的创建很简单,就是一个立方体,依次添加倒角表面细分修改器。目标是得到一个边角圆滑的立方体形状。

进入Shading布局,多出的窗口即着色器编辑器窗口。将视图的着色方式改为显示渲染预览
删除原有的原理化BSDF节点,添加玻璃BSDF着色器节点。可以在窗口的添加菜单中添加,也可以在着色器编辑器窗口按【Shift+A】。
选中玻璃BSDF节点,按住【Ctrl+Shift】点击鼠标左键可以直接连接到材质输出,并在视图中进行效果预览。
此时视图中看不到玻璃材质是因为没有添加环境纹理,在世界属性的颜色选项中添加环境纹理,并打开一张hdr或exr贴图。
初步可将玻璃BSDF的颜色改为淡蓝色,IOR折射率改为1.333,如下图所示。
新建光泽BSDF节点与玻璃BSDF进行混合,使用的是混合着色器节点。按照接入的端口顺序,系数为0.000时100%为第一个着色器的效果,系数为1.000时100%为第二个着色器的效果。
这里我们创建一个菲涅尔节点来控制混合着色器的系数,并将IOR折射率改为0.200。
菲涅尔效应可以理解为基于入射角的不同对表面反射和折射系数的影响,IOR全称就是Index of Refraction(折射指数)。用下面的动图来解释,给猴头红蓝两色的材质,并用菲涅尔作为系数来混合。可以看到菲涅尔IOR的值从0~1变化时,并不是两种材质简单的百分比加和,而是和猴头表面的形状有关。确切地说,是模型表面法线和观察视线的夹角有关。当IOR值为0时,无论哪个角度观察都是第2个着色器的材质(红色),可以理解为所有观察角度和法线夹角肯定都是大于等于0度的。反之,当IOR值为1时,无论哪个角度观察都是第1个着色器的材质(蓝色),即所有观察角度和法线夹角肯定都是小于等于180度的
如果IOR值为0.5,我们可以做出这样的理解:观察角度和法线夹角在0~90度时是蓝色,在90~180度时则是红色。用在其他着色器中也是同样的道理。
接下来我们可以再和一个透明BSDF节点混合,来调节整体的透明度,这里的系数就直接用数字来调节即可。比如透明节点连在混合着色器的第一个端口,系数0.85就表示15%的透明度。
现在冰块的基础材质有了,但表面缺少细节。回到玻璃BSDF节点,发现还有一个法向的输入端口可以设置。法向影响的是表面对光线的感知,可以制作出复杂的光影效果。
这里可以用噪波纹理来影响模型表面的凹凸效果,依次用到的是噪波纹理节点和凹凸节点。在连接节点时,有个基本的准则就是端口和连线的颜色。相同颜色表示端口的数据类型一致,连接通常不会出错。有时候不同颜色的端口也能相连,但连接线出现了颜色的渐变,说明传输时发生了数据类型的转化。还有些类型无法转化的连接线会显示红色,表明当前的连接方式是错误或无效的。
这里还有一个小技巧是,对于纹理节点,可以选中后按【Ctrl+T】调出纹理坐标和映射,改变矢量的赋予方式和坐标参数,比如移动、旋转、缩放等。如果按【Ctrl+T】没反应,请在偏好设置中检查是否启用了Node Wrangler(NW)和Node Arrange(NA)插件。包括前面说的按【Ctrl+Shift】点击鼠标左键预览输出也要开启NW插件。然后将映射的矢量赋予方式改为物体
为了让凹凸效果更真实,我们将噪波纹理的系数通过置换节点连接到材质输出的置换端口。
现在视图中看不到效果,需要在材质属性中的设置一栏将表面置换的显示方式改为置换与凹凸。然后就可以在视图中预览渲染结果了。
如果需要渲染出来的图片没有环境背景,又能体现出透明的材质效果,可以在渲染属性的胶片一栏勾选透明透明玻璃选项。
设置采样数进行渲染(我这里设的是32),完成后保存为png格式的图片即可。图片的色彩和明暗对比可以在PS中调节,也可以在Blender的合成模块中进行,此处不做过多讲解。