Unity3D - 内建标准着色器(StandardShder)
StanderdShder是一种新增的基于物理着色的内建着色器。它有选择吸收了许多其他不同着色器的特色功能。
StandardShader属性介绍:
属性 | 说明 |
---|---|
Rendering Mode | 渲染模式。在Opaque(不透明)、Fade(渐变)、Transparent(透明)、Cutout(镂空)四个选项 |
Albedo | 漫反射。设置漫反射的贴图和颜色值 |
Metallic | 金属。设置金属的贴图和颜色值(不能和Smoothness属性同时应用) |
– Smoothenss | 光滑度。设置物理表面的光滑程度(不能和Metallic同时使用) |
Normal Map | 法线贴图。用于描绘物体表面凹凸程度的法线。 |
Height Map | 高度图。用于描述视差偏移的灰度图。 |
Occlusion | 散射。用于设置照射到物体表面的非直接光照散射的贴图 |
Emission | 自发光。用于控制物体表面自发光颜色和强度的贴图 |
Detail Mask | 细节蒙版。用于设置Secondary Maps的蒙版贴图 |
Tilling | 平铺。用于设置贴图在物体表面的平铺值 |
Offset | 偏移。用于设置贴图在物体表面的偏移值 |
Secondary Maps | 2号贴图。带UV通道的2号贴图 |
Detail Albedo | 细节漫反射。2号贴图的漫反射贴图 |
Normal Map | 法线贴图。2号贴图的法线贴图 |
Tilling | 平铺。用于设置2号贴图在物体表面的平铺值。 |
Offset | 偏移。用于设置2号贴图在物体表面的偏移值。 |
UV Set | UV集。用于设置物体的UV集。 |
这些贴图本身不包含光照信息。StandardShader是基于物理的着色器,不论材质选择是什么贴图或者什么值,创建的物体都会与光照产生反应。
StandardShader基本原理
基于物理着色的标准着色器是遵循Conservation of Energy(能量守恒)原理,可以创建在不同光照环境下都接近真实的材质来。
应用Conservation of Energy原理的规则:
- 表面反射的光线不会比它们收到的更多。
- 光滑的表面会有更多的反射。
- 粗糙的表面反射会更弱一些。
- 高光强度会随着漫反射的强度而改变。
- 所有的表面从某一特定角度看上去会有或多或少的高光。
- 所有表面在掠射角会有更多反射。
Unity5.0内建了基于物理着色所需的框架。使用标准着色器时,光照需要在Window->Lighting面板中设置。