《Unity3D ShaderLab开发实战详解》第6章 VertexLit 渲染路径

Shader中3种光源变量

  • 第一种:
    • _WorldSpaceLightPos0:w为0是平行光,w为1是点光。
    • _LightColor0:颜色。
  • 第二种:
    • float4 unity_4LightPos{X/Y/Z}0:四个点光源位置(世界空间)。
    • float4 unity_4LightAtten0:4个光源的衰减。
    • float4 unity_LightColor[4]:4个光源的颜色。
  • 第三种
    • float4 unity_LightPosition[4]:4个平行光/点光源位置(视角空间)。
    • float4 unity_LightColor[4]:4个平行光/点光源颜色。
    • float4 unity_LightAtten[4]:4个平行光/点光源衰减。

不同路径、不同LightMode下的光源变量

模型\路径 光源变量 Vertex路径 Forward路径 Deferred路径
Vertex _WorldSpaceLightPos0 重要平行光 同前 同前
unity_4LightPos{X/Y/Z}0 点光源(重要的在前) 同前 同前
unity_LightPosition 重要光源(优先平行光),若场景中没有重要光源,就是平行光源 同前 同前
ForwardBase _WorldSpaceLightPos0 重要平行光 同前
unity_4LightPos{X/Y/Z}0 点光源(重要的优先),如果有ForwardAdd Pass那么就全是不重要光源了 同前
unity_LightPosition
ForwardAdd _WorldSpaceLightPos0 重要光源(每个光源执行一次Pass) 同前
unity_4LightPos{X/Y/Z}0 重要点光源 同前
unity_LightPosition
Deferred _WorldSpaceLightPos0 重要的平行光
unity_4LightPos{X/Y/Z}0 点光源
unity_LightPosition

这个表Deferred还有点问题,容后详查…

发布了41 篇原创文章 · 获赞 4 · 访问量 3894

猜你喜欢

转载自blog.csdn.net/weixin_42487874/article/details/103243660