Unity Shader学习笔记(32)Unity中的Standard Shader
发表于2018-01-03
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值。 |
| 材质平滑程度。 |
| Metallic Alpha ,使用Metallic纹理的A通道作为Smoothness值(GB通道被忽视);Albedo Alpha,使用Albedo纹理的A通道作为Smoothness值。 |
Specular | 高光反射值。两个子属性同上。 |
Normal Map | 法线纹理。 |
Height Map | 高度纹理。 |
Occlusion | 遮罩纹理。 |
Detail Mask | 细节遮罩。例如皮肤毛孔等。 |
Emission | 自发光。 |
金属和高光校正图
Unity Shader学习笔记系列教程: