【Maya】Arnold渲染器的学习(5): 标准曲面着色器(上)


Maya版本:Maya 2020.2

Arnold版本:MtoA 4.0.3


【aiStandardSurface着色器】

在Maya中,arnold的内置着色器都会添加“ai”的前缀。虽然HyperShade编辑器的列表中有18个ai着色器,但使用最为广泛的是aiStandardSurface(标准曲面)着色器。

mentalRay渲染器的material_X着色器类似,standardSurface着色器使用了基本的物理参数来定义物体材质的特征,可以制作例如塑料、木材、石头、黄金、铁器、玻璃、气泡、蜂蜜、清水、车漆等材料的材质效果。着色器属性面板的Presets(默认)按钮中有丰富的材料可选。

*渲染前要保证模型表面的法线是统一且正面朝外的。


接下来重点讲解aiStandardSurface着色器的各项属性。


【Base(基础)】

控制物体的表面色彩和质地。

Weight(权重):默认值是0.8,范围0到1。控制Color值占物体表面色彩的比重。如果物体表面有涂层或者混杂了其他物质,可以适当降低这个权值。例如用于车漆材质通常会选择0.5至0.8,而纯塑料、纯金属的权重值则为1。

*这里说的涂层不同于Coat(涂层)属性,Coat是独立于物体表面的可见涂层;而Base的权重表示“混合度”,用于超薄不易发觉的涂料薄层。

Color(颜色):默认值是白色。物体的基本色彩通道,赋予贴图可以使几何体具有纹理,对于反射和透明度低的物体来说,这决定了物体的表面色彩。

*当赋予贴图到Color通道,Weight的值多数情况下应设置为1。

Diffuse Roughness(漫反射粗糙度):默认值是0,范围0到1。Metalness值小于1才可用。当Metalness值和Diffuse Roughness值都为0,效果类似传统的Lambert(兰伯特)着色器。Diffuse Roughness值越高物体表面就会越粗糙,光泽会越暗淡,例如混凝土、沙子、粉尘等。

Metalness(金属度):默认值是0,范围0到1。赋予不用阶梯灰度的贴图到金属度,可以表现出生锈金属的效果。值越大,金属特征越明显,Specular栏下的Weight和Color属性对材质效果的影响程度就越小。

*当值为1,物体会表现出纯金属特征,具有完全镜面反射和复杂的菲涅尔反射效果。此时Specular的Weight值“仅控制边染色”,而不影响反射效果。

*遵循能量守恒原则,金属度的增强会增加镜面反射光的强度,从而减少漫反射的间接照明效果。


【Specular(镜面反射)】

控制物体上的高光强度。

Weight(权重):默认值是 1,范围0到1。决定镜面反射高光的亮度,值越大高光的效果越强烈。当Metalness值为1,Specular 的Weight值将不影响物体的反射效果,而只具有边染色的效果。

*边染色,是在物体的轮廓边缘形成“高光和颜色混合”的效果,见Base属性内容中的示例图。

Color(颜色):默认值是白色。镜面反射的色彩。金属通常会有近似于基本颜色的镜面反射颜色(SpecularColor比BaseColor稍亮些),而非金属材料采用白色或灰色的单色作为反射颜色。

以下是官方提供的各种金属对应的基础颜色和镜面反射颜色的推荐值。

*Base的weight和metalness值为1,Specular下的Roughness值为0,将得到清晰的镜面反射效果。

Roughness(粗糙度):默认值是0.2,范围0到1。即使Specular的Weight值为0,这个属性也能影响到物体表面的漫反射亮度。值越大物体表面越粗糙,反射程度和光泽越低。设置一定的粗糙度来制作具有反射模糊的材料,例如磨砂玻璃、哑光金属。将贴图应用于这个属性,可以得到不同物体相互融合的效果,例如留在光滑塑料上的指纹。

*因为Roughness属性会同时影响透明物体的反射和折射效果,如果不想改变透明物体的折射效果,只需要粗糙的反射,应启用Coat(涂层)功能;当需要单独控制折射模糊,则使用Transmission(透射)栏下的ExtraRoughness(透射附加粗糙度)这个属性。

IOR(折射率): 默认值是1.5(普通玻璃的折射率)。该属性定义了材质的菲涅尔反射率,并且默认情况下使用角函数。IOR不仅仅是透明物体对光线的扭曲作用,同时还会影响反射强度。当Metalness为1的时候,这个属性将被禁用。

*当IOR值很大(可以手动输入超过3的数值,比如100),Metalness值为0,将BaseColor设置为黑色,然后将SpecularColor设置为镜面反射的颜色,反射效果和Metalness相似。区别在于Metalness启用时,Specular属性的Color可以制作出染边效果。根据现实效果,塑料、玻璃或皮肤材质使用IOR,而金属使用Metalness来表现会更真实。

Anisotropy(各向异性):默认值是0,范围0到1。越接近1,曲面上的高光越向U轴向拉伸。在段数不多的弧面上,应设置Anisotropy为0或者对弧面进行细分圆滑,否则会看到断断续续的高光分段面。连接贴图到这个属性可用于制作带有加工切割痕迹的拂刷金属或者光盘。

Rotation(旋转):默认值是0。在Anisotropy大于0的时候,这个属性可以控制高光的方向。对于拂刷金属,各向异性高光应在与拂刷方向垂直的方向上拉伸。

*当给这个属性使用贴图纹理时,应禁用纹理过滤(禁用Mipmap和放大过滤器)。将图像节点的mipmap_bias设置为较大的负值,如-8,表示“使用分辨率比常用的分辨率高8个MIP级别”。


【Transmission(透射)】

控制物体的透明度。

*当Base栏的Metalness属性值为1的的时候,这个功能是关闭的,因为完全的金属是不会透明的。

Weight(权重):默认值是0,范围0到1。值越大,物体越透明,相当于传统着色器的透明度(Transparency)属性。Metalness和Transmission 的Weight是呈反比的关系:Weight为1时,Metalness值趋向1增大,透明度则逐渐降低。

*使用透明通道裁剪几何体外观的时候(例如面片树叶),应使用材质Geometry栏下的不透明度Opacity。如果使用Transmission,依然会在被贴图裁剪掉的区域看到高光和反射效果,而且使用Transmission的计算时间会比使用Opaque要长,计算结果也不会加入到渲染图片的Alpha通道中。尽量避免一个着色器中同时使用透射和不透明度。

以下是使用不透明度和穿透属性的区别:

Color(颜色):默认值是白色。光线穿过物体时所呈现的色彩,一般使用浅色。当Transmission 的Weight值大于0,通常需要将模型形节点下的Arnold栏的Opaque(不透明)关闭,才可以得到更真实的折射和阴影着色效果。如果物体只有单面,还需要启用Geometry(几何体)栏下的ThinWalled(薄壁)功能。

Depth(深度):默认值是0。控制光线透入体积中达到的深度,和场景比例相关。值越大,物体的体积感会越薄,它对光线的吸收和散射能力越弱。

Scatter(散射):默认值是黑色。适用于各类相当稠密的液体或者大量水体发生散射的情况,如蜂蜜或者深海,而一杯水的散射并不明显。外观上看,强散射效果会模糊掉折射的背景。同样的,要得到正确的散射效果,需要关闭几何体形节点下的Opaque(不透明)

ScatterAnisotropy(散射各向异性):默认值是0,范围-1到1。类似Specular的Anisotropy属性。0表示等向散射,正值会在灯光方向上向前偏差散射(物体受灯光影响增大),负值时朝灯光向后偏差散射(物体受灯光影响减小)。

DispersionAbbe(色散系数):默认值是0。值为0表示禁用色散。色散是光经过多次折射后呈现的多种色彩,此属性描述了折射率随波长变化的程度。值越小,色散越多,相当于抗色散的强度。色散时会产生色度噪波,提高全局摄像机AA采样或折射率采样可以减少画面噪点。

*玻璃和钻石的色散系数通常在10-70之间。

ExtraRoughness(附加粗糙度):默认值是0。和散射类似,对折射效果进行模糊,所不同的是不会计算光在物体内的反弹效果。

TransmitAOVs(透射AOVs):默认禁用。启用后透射会穿过AOV,用于背景是透明的分层渲染。


【透射效果的应用:海面案例】

为了加深对透射效果的认识,这里使用Arnold官方示例中的海洋表面:一个带置换贴图的平面。

当场景中只存在天穹光和海平面,海面离海底无限远,光线很难在起伏的波浪上产生具有深度的透射效果。从画面对比可以看出,深度启用前后的渲染效果差不多。

在海平面下放置一个宽广的平面,作为海底的反射地面,地面距离海面5米左右。

在透射属性中调节光线传播的深度值,并设置散射颜色为亮蓝色。

适当降低散射颜色的亮度,然后在Arnold的渲染设置中启用雾环境,并开启摄像机的景深功能。最终得到一个艺术般的海洋效果。

你也可能喜欢阅读这些文章:

5 评论
Inline Feedbacks
View all comments

太感谢了!!

请问站长还有在其他平台更新吗

站长加油 坐等更新

大哥,该更新了 :mrgreen:

Copyright© VIVICG 版权所有 粤ICP备 17111516号 粤公网安备 44011102000879