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

来源:互联网 发布:json decode null 编辑:程序博客网 时间:2024/05/16 02:01

材质参数

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

渲染模式

一个用默认参数,没有分配任何值或纹理的标准着色器材质。渲染模式那儿被高亮了
标准着色器中的第一个材质参数,是“渲染模式”。这允许选择物体是否使用透明度;如果是,那么继续选择哪种混合模式。
Opaque - 这是默认选项,适合没有透明区域的普通固态物体。
Cutout - 允许创建一个透明效果,在不透明区域和透明区域之间有鲜明界线。在这个模式下,没有半透明区域,纹理要么是100%不透明,要么不可见。当使用透明来创建像树叶,或者带洞、碎布的衣服这种材质的形状时,这很有用。
Transparent - 适合渲染真实的透明材质如透明塑料或者玻璃。在此模式中,材质自身会带有透明值(基于纹理和色彩的alpha通道),而反射和光照高光将仍然以完整清晰度可见,如真实的透明材质那样。
Fade - 允许透明度数值彻底地使一个物体淡出,包括任何它可能带有的镜面高光或者反射。如果希望让物体动态淡入淡出,可用此模式。不适合渲染如透明塑料袋或玻璃的真实透明材质,因为反射和高光液会被淡出。
The helmet visor in this image is rendered using the Transparent mode, because it is supposed to represent a real physical object that has transparent properties. Here the visor is reflecting the skybox in the scene
这幅图中的头盔面罩使用了Transparent模式渲染,因为它应该表现一个有透明属性的真实物理对象。这里面罩反射了场景中的天空盒。
These windows use Transparent mode, but have some fully opaque areas defined in the texture (the window frames). The Specular reflection from the light sources reflects off the transparent areas and the opaque areas.
使用Transparent模式的窗户,但有些在纹理中定义的完全不透明区域(窗框)。来自光源镜面反射在透明区域和不透明区域反射。
The hologram in this image is rendered using the Fade mode, because it is supposed to represent an opaque object that is partially faded out.
图中的全息图像使用Fade模式渲染,因为它应该表现一个部分淡出的不透明物体。
The grass in this image is rendered using the Cutout mode. This gives clear sharp edges to objects which is defined by specifying a cut-off threshold. All parts of the image with the alpha value above this threshold are 100% opaque, and all parts below the threshold are invisible. To the right in the image you can see the material settings and the alpha channel of the texture used.
图中的草用Cutout模式渲染。这赋予了物体清晰锋利的,被指定的切断阈值所定义的边缘。图片中所有alpha值大于阈值的,100%不透明;小于阈值的,都不可见。在图片右边可以看到材质设置和纹理的alpha通道。

反射率和透明度

A Standard Shader material with default parameters and no values or textures assigned. The Albedo Color parameter is highlighted.
Albedo参数控制了表面的基本色。
为Albedo值指定单个颜色有时候很有用,但相当通常的情形是为Albedo参数分配一个纹理贴图。这应当代表了物体表面的颜色。知道Albedo纹理不应包含任何光照很重要,因为光照将会基于物体被看到时的环境而添加。
Two examples of typical Albedo texture maps. On the left is a texture map for a character model, and on the right is a wooden crate. Notice there are no shadows or lighting highlights.

透明度

Albedo color的alpha值控制了材质的透明级别。如果材质的渲染模式被设置为透明模式之一、非不透明模式时,这个选项才起作用。如前文所提到的,选择正确的透明度模式很重要,因为它决定了能否仍以完整值看到反射和镜面高光,或者它们是否根据透明度值而淡出。
A range of transparency values from 0 to 1, using the Transparent mode suitable for realistic transparent objects
当使用分配给Albedo参数的纹理时,可以通过保证albedo纹理图有一个alpha通道来控制材质的透明度。alpha通道的值映射到透明级别的对应方式是:白色是完全不透明,黑色为完全透明。这使得材质可以在不同区域有不同的透明度。

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

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

镜面模式的镜面参数

这里写图片描述

镜面参数

仅当使用上图所示的镜面工作流时,才可以看到镜面参数。镜面效果本质上是场景中光源——通常为明亮的高光或物体表面的光泽——的直接反射(尽管镜面高光也可以是微妙的或分散的)。
这里写图片描述
镜面和金属工作流都会产生镜面高光,所以选择哪一个使用,是由工作流以及艺术上的偏好而决定。在镜面工作流,对光亮和镜面高光颜色有直接的控制;在金属国内工作流里,控制的是其它参数,镜面高光的强度和色调作为其它参数设置的自然结果而出现。
在镜面模式下工作时,在镜面参数中的RGB颜色控制镜面反射的强度和色调。这包括来自光源的光泽以及来自环境的反射。Smooth参数控制镜面效果的清晰度。低的Smoothness值低时,就算是强烈的镜面反射也会模糊、分散;Smoothness值高时,镜面反射更清晰更鲜明。
svg

用户经常会希望改变自己材质表面的镜面值——例如材质里角色带有一些闪亮纽扣的衣服。用户希望纽扣有比衣服的布料更高的镜面值。为了达成这一目标,不适用单一一个滑动的值,可以分配一个纹理贴图。这允许了更大的控制——用户可以通过镜面贴图上像素的颜色,来改变材质表面的镜面光反射的强度和颜色。
一个纹理分配给镜面参数时,Specular和Smoothness的滑块都会消失。取而代之的,是用纹理的红色、绿色、蓝色通道来控制材质的Specular级别,材质的平滑度用相同纹理的Alpha通道控制。这意味着拥有了可以定义多个粗糙或平滑区域、拥有不同等级及颜色的镜面的单个纹理。当使用覆盖了有不同要求的一个模型的许多区域的纹理贴图时,这非常有用:例如一个角色的纹理贴图经常包括多种表面要求——皮鞋,衣服布料,脸及手的皮肤还有金属纽扣。
An example of a 1000kg weight with a strong specular reflection from a directional light.
一个例子:带有从直线光源形成强镜面反射的1000kg砝码。镜面反射和平滑值被一个颜色及滑块所定义,没有分配纹理图——所以镜面和平滑程度在整个表面上是一致的。这不总是令人满意的,特别是在albedo纹理映射到在模型上的大量不同区域的情形下(称为纹理地图集)。
The same model, but with a specular map assigned, instead of a using constant value.
这里,一个纹理贴图控制了镜面度和平滑度。这允许模型表面的镜面度可以变化。注意到边缘处有比中间更高的镜面效果,对应光有一些微妙的颜色,带字的部分不再有镜面高光。右边的图是控制了镜面颜色和强度的RGB通道,alpha通道控制平滑度。

2 0
原创粉丝点击