《Unity3D ShaderLab开发实战详解》第6章 VertexLit 渲染路径
其他
2020-04-09 01:17:47
阅读次数: 0
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