Unity3D - 内建标准着色器(StandardShder)

StanderdShder是一种新增的基于物理着色的内建着色器。它有选择吸收了许多其他不同着色器的特色功能。

Unity3D - 内建标准着色器(StandardShder)

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原理的规则:

  1. 表面反射的光线不会比它们收到的更多。
  2. 光滑的表面会有更多的反射。
  3. 粗糙的表面反射会更弱一些。
  4. 高光强度会随着漫反射的强度而改变。
  5. 所有的表面从某一特定角度看上去会有或多或少的高光。
  6. 所有表面在掠射角会有更多反射。

Unity5.0内建了基于物理着色所需的框架。使用标准着色器时,光照需要在Window->Lighting面板中设置。