1. 程式人生 > >UnityShader開發之光照 - 光照相關的引數解釋

UnityShader開發之光照 - 光照相關的引數解釋

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矩陣處理平行光源