打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Unity3D 5 官方教程:标准着色器之材质参数(一)
userphoto

2016.10.31

关注

材质参数

标准着色器展示了材质参数的列表。取决于你是否已经选择在金属工作流模式或者镜面工作流模式,这些参数会有轻微地变化。大部分参数在两种模式下是一样的,材质参数系列将覆盖两种模式的所有参数。
这些参数可以被一起使用来创建几乎任何真实世界中的表面。

渲染模式


标准着色器中的第一个材质参数,是“渲染模式”。这允许选择物体是否使用透明度;如果是,那么继续选择哪种混合模式。
Opaque - 这是默认选项,适合没有透明区域的普通固态物体。
Cutout - 允许创建一个透明效果,在不透明区域和透明区域之间有鲜明界线。在这个模式下,没有半透明区域,纹理要么是100%不透明,要么不可见。当使用透明来创建像树叶,或者带洞、碎布的衣服这种材质的形状时,这很有用。
Transparent - 适合渲染真实的透明材质如透明塑料或者玻璃。在此模式中,材质自身会带有透明值(基于纹理和色彩的alpha通道),而反射和光照高光将仍然以完整清晰度可见,如真实的透明材质那样。
Fade - 允许透明度数值彻底地使一个物体淡出,包括任何它可能带有的镜面高光或者反射。如果希望让物体动态淡入淡出,可用此模式。不适合渲染如透明塑料袋或玻璃的真实透明材质,因为反射和高光液会被淡出。

这幅图中的头盔面罩使用了Transparent模式渲染,因为它应该表现一个有透明属性的真实物理对象。这里面罩反射了场景中的天空盒。

使用Transparent模式的窗户,但有些在纹理中定义的完全不透明区域(窗框)。来自光源镜面反射在透明区域和不透明区域反射。

图中的全息图像使用Fade模式渲染,因为它应该表现一个部分淡出的不透明物体。

图中的草用Cutout模式渲染。这赋予了物体清晰锋利的,被指定的切断阈值所定义的边缘。图片中所有alpha值大于阈值的,100%不透明;小于阈值的,都不可见。在图片右边可以看到材质设置和纹理的alpha通道。

反射率和透明度


Albedo参数控制了表面的基本色。
为Albedo值指定单个颜色有时候很有用,但相当通常的情形是为Albedo参数分配一个纹理贴图。这应当代表了物体表面的颜色。知道Albedo纹理不应包含任何光照很重要,因为光照将会基于物体被看到时的环境而添加。

透明度

Albedo color的alpha值控制了材质的透明级别。如果材质的渲染模式被设置为透明模式之一、非不透明模式时,这个选项才起作用。如前文所提到的,选择正确的透明度模式很重要,因为它决定了能否仍以完整值看到反射和镜面高光,或者它们是否根据透明度值而淡出。


当使用分配给Albedo参数的纹理时,可以通过保证albedo纹理图有一个alpha通道来控制材质的透明度。alpha通道的值映射到透明级别的对应方式是:白色是完全不透明,黑色为完全透明。这使得材质可以在不同区域有不同的透明度。

一个用RGB通道和一个Alpha通道导入的纹理。可以点击如图所示的RGB/A按钮来选择要预览的图片通道。

最终结果,从破损的窗户向建筑内看;玻璃上的裂缝是完全透明的,而玻璃碎片部分透明,窗框完全不透明。

镜面模式的镜面参数

镜面参数

仅当使用上图所示的镜面工作流时,才可以看到镜面参数。镜面效果本质上是场景中光源——通常为明亮的高光或物体表面的光泽——的直接反射(尽管镜面高光也可以是微妙的或分散的)。


镜面和金属工作流都会产生镜面高光,所以选择哪一个使用,是由工作流以及艺术上的偏好而决定。在镜面工作流,对光亮和镜面高光颜色有直接的控制;在金属国内工作流里,控制的是其它参数,镜面高光的强度和色调作为其它参数设置的自然结果而出现。
在镜面模式下工作时,在镜面参数中的RGB颜色控制镜面反射的强度和色调。这包括来自光源的光泽以及来自环境的反射。Smooth参数控制镜面效果的清晰度。低的Smoothness值低时,就算是强烈的镜面反射也会模糊、分散;Smoothness值高时,镜面反射更清晰更鲜明。
svg

用户经常会希望改变自己材质表面的镜面值——例如材质里角色带有一些闪亮纽扣的衣服。用户希望纽扣有比衣服的布料更高的镜面值。为了达成这一目标,不适用单一一个滑动的值,可以分配一个纹理贴图。这允许了更大的控制——用户可以通过镜面贴图上像素的颜色,来改变材质表面的镜面光反射的强度和颜色。
一个纹理分配给镜面参数时,Specular和Smoothness的滑块都会消失。取而代之的,是用纹理的红色、绿色、蓝色通道来控制材质的Specular级别,材质的平滑度用相同纹理的Alpha通道控制。这意味着拥有了可以定义多个粗糙或平滑区域、拥有不同等级及颜色的镜面的单个纹理。当使用覆盖了有不同要求的一个模型的许多区域的纹理贴图时,这非常有用:例如一个角色的纹理贴图经常包括多种表面要求——皮鞋,衣服布料,脸及手的皮肤还有金属纽扣。


一个例子:带有从直线光源形成强镜面反射的1000kg砝码。镜面反射和平滑值被一个颜色及滑块所定义,没有分配纹理图——所以镜面和平滑程度在整个表面上是一致的。这不总是令人满意的,特别是在albedo纹理映射到在模型上的大量不同区域的情形下(称为纹理地图集)。

这里,一个纹理贴图控制了镜面度和平滑度。这允许模型表面的镜面度可以变化。注意到边缘处有比中间更高的镜面效果,对应光有一些微妙的颜色,带字的部分不再有镜面高光。右边的图是控制了镜面颜色和强度的RGB通道,alpha通道控制平滑度。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C4D自带的物理渲染器输出透明物体
如何将照片做成水彩效果
如何利用Vray调节微晶石材质参数
【浅墨Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
结合外挂滤镜打造非常精细的质感肤色
数字人C4D材质灯光渲染课堂之六:初探C4D16反射(1)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服