UnityShader開發之光照 - 光照相關的引數解釋
阿新 • • 發佈:2018-11-28
1.渲染路徑(Rendering Path)
設定Rendering Path ,目前都是Forward
2.配置Pass Tag
需要在Tags中配置
Tags { "LightMode" = "ForwardBase" }
LightModel的屬性表
屬性 | 描述 |
Normal | 不與光照互動的規則著色器通道 |
Vertex | 舊的頂點照明著色器通道 |
VertexLM | 舊的頂點照明著色器通道,並且帶有移動端光照圖 |
ForwardBase | 前向渲染基本通道 |
ForwardAdd | 前向渲染加畫素光通道 |
LightPrePassBase | 舊延遲光照基礎通道 |
LightPrePassFinal | 舊延遲光照最終通道 |
ShadowCaster | 陰影投射和深度紋理著色器通道 |
Deffered | 延遲著色器通道 |
Meta | 用於產生反照率和發射值的著色器通道,用作光對映的輸入。 |
MotionVectors | 運動向量渲染通道 |
ScriptableRenderPipeline | 自定義指令碼通道 |
ScriptableRenderPipelineDefaultUnlit | 當光模式被設定為預設未亮或沒有光模式時,設定自定義指令碼管道。 |
3.引數
ForwardRendering(ForwardBase 和 ForwardAdd)光照模式的引數
Name | Type | Value |
_LightColor0 | fixed4 | 光照顏色 |
_WorldSpaceLightPos0 | float4 | 平行光(世界空間向量x,世界空間向量y,世界空間向量z,0) 其他光源(世界座標x,世界座標y,世界座標z,1) |
_LightMatrix0 | float4x4 | 這是一個由世界空間變換至光源空間(即光源的區域性座標系)的矩陣。可用於計算光照衰減。 |
unity_4LightPosX0, unity_4LightPosY0,unity_4LightPosZ0 | float4 | 僅在ForwardBase pass 有效,代表的是世界空間內的前四個非重要點光源的位置。每一個值的四個分量xyzw分別代表的是四個點光源的x座標,這個值的xyzw值都代表著四個點光源各自的對應座標 |
unity_4LightAtten0 | float4 | 僅在ForwardBase pass 有效,代表著前四個非重要點光源的衰減係數。注:當沒有資料時的值是1而不是0。 |
unity_LightColor | half4[4] | 僅在ForwardBase pass 有效,這是一個half4型別的4分量陣列,裡面的4個引數代表上述的四個點光源的顏色資訊 |
unity_WorldToShadow | float4x4[4] | 這是一個float4x4型別的4分量陣列,一個矩陣處理點光源,到4矩陣處理平行光源 |