您的位置:首页 > 移动开发 > Unity3D

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

2016-05-03 19:47 411 查看
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。



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)颜色表达区间内。



6.3.3在Vertex Pass中的检测结果

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



同样,如果你乐意,可以打开Lab 2chaos场景,就像刚刚检测unity 4LightPos[X,Y,Z]0时一样,你会看到默认材质中最后一个Forward Pass执行过后的未清除的光源数据,如图6.6所示。由此可见,_WorldSpaceLightPos0和_LightColor0中不包含为Vertex
Pass准备的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: