untiy 3d ShaderLab_第6章_VertexLit渲染路径_3_顶点照明和Unity存放光源的第二种方式

6.3顶点照明和Unity存放光源的第二种方式
6.3.1用于调试输出的材质
       打开场景,其编辑器中Game视口的截图如下所示。这个场景相比上一节检测unity_4LightPos[X,Y, Z]0时 的场景6.2精简了很多,右边只有一排4个输出信号的小球,这4个小球的材质在Labes 2/Shader文件夹下面, 也是非常简单的输出_WorldSpaceLightPos0这个四 元数的4个单个元素的信号材质,此外还有一个输出_LightColor0的材质_LightColor0.rgba.shader。
untiy 3d ShaderLab_第6章_VertexLit渲染路径_3_顶点照明和Unity存放光源的第二种方式_第1张图片

6.3.2设计用于检测的场景

    场景中有两个平行光,分别为淡粉色的Direction Light 1,  intensity=1.5,淡青色的DirectionLight 2,  intensity=1.2;有黄、绿、红、蓝4个点光源,4个点光源的世界坐标依然处在(0, 1)空间内。此外,这两个平行光,包括4个点光源的欧拉角都为(30, 300, 0)。之所以这么做,是因为这是一个非常优美的角度,之所以这么说,是因为它们的旋转矢量的3个元素xyz也处在(0,1)区间内,处在信号材质在屏幕上的(0,  1)颜色表达区间内。

untiy 3d ShaderLab_第6章_VertexLit渲染路径_3_顶点照明和Unity存放光源的第二种方式_第2张图片

6.3.3在Vertex Pass中的检测结果

    现在Build场景为独立可执行文件,如图6.5所示。我们可以任意地更改光源的属性,更改Camera的RenderingPath,但是结果都会显示_WorIdSpaceLightPos0中不包含数据。

untiy 3d ShaderLab_第6章_VertexLit渲染路径_3_顶点照明和Unity存放光源的第二种方式_第3张图片

    同样,如果你乐意,可以打开Lab 2chaos场景,就像刚刚检测unity 4LightPos[X,Y,Z]0 时一样,你会看到默认材质中最后一个Forward Pass执行过后的未清除的光源数据,如图6.6所示。 由此可见,_WorldSpaceLightPos0和_LightColor0中不包含为Vertex Pass准备的数据。

你可能感兴趣的:(3D,shaderlab,untiy)