Unity Shader学习笔记(32)Unity中的Standard Shader

发表于2018-01-03
评论0 4.2k浏览
Unity5中重点推出了一套基于物理的着色(Physically Based Shading,PBS)的多功能Shader,叫做标准着色器(Standard Shader)。这套Shader的设计初衷是化繁为简,想用这样的一个多功能Shader,来代替之前多种多样的Shader各司其职,对于不同的材质效果,需要不同的Shader的局面。

Unity中的Standard Shader

这个Standard Shader是基于物理渲染的。 

Unity支持两种流行基于物理的工作流程: 
- 金属工作流(Metallic workflow):对应默认Standard。名字来源于定义了金属值(上图的Metallic)。颜色由漫反射和金属值衍生而来。 
- 高光反射工作流(Specular workflow):对应Standard (Specular setup)。名字来源于定义了高光反射颜色值(Specular)。

上面两种Shader都可在内置Shader文件(DefaultResourceExtra)中找到。 

金属材质与非金属材质对比: 
- 金属材质: 
- 几乎没有漫反射。 
- 强烈的高光发射。 
- 高光反射通常有颜色。 
- 非金属材质: 
- 有菲涅尔现象。 
- 高光反射颜色单一。 
- 漫反射颜色多样。


材质面板的属性

Render Mode : 
- Opaque:渲染不透明物体。 
- Transparent:透明物体,Albedo的A通道作为材质透明度,透明度下降时反射仍然保留。 
- Cutout:Abledo的A通道成为掩码纹理,子属性Alpha Cutoff作为透明度测试的阈值。 
- Fade:类似Transparent,不过透明度下降时所有渲染效果都会淡出。

属性名描述
Albedo物体颜色。
Metallic金属值。使用纹理时,纹理的R通道将作为Metallic值。
    Smoothness
材质平滑程度。
    Source
Metallic Alpha ,使用Metallic纹理的A通道作为Smoothness值(GB通道被忽视);Albedo Alpha,使用Albedo纹理的A通道作为Smoothness值。
Specular高光反射值。两个子属性同上。
Normal Map法线纹理。
Height Map高度纹理。
Occlusion遮罩纹理。
Detail Mask细节遮罩。例如皮肤毛孔等。
Emission自发光。

金属和高光校正图

官网API:Material charts

Unity Shader学习笔记系列教程:

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论