ShaderLab基础(Queue标签)

来源:互联网 发布:淘宝纸箱机器 编辑:程序博客网 时间:2024/05/17 09:44

        在上一节简单的学习了SubShader的语法,主要由三部分组成:Tags,CommonState,Passdef,本节将学习Tags

Tags 的语法为

[“tag1”= val”tag2” = “val”]

 

SubShader的标签到底包含那些标签呢?

SubShader 的标签主要由QueueRenderTypeForceNoShadowCastingIgnoreProjector。这一节主要讨论Queue标签

 

Queue标签。定义渲染顺序,值较大的靠后渲染,值较小的靠前渲染。预定义的值为

1”Background”。值为1000。比如用于天空盒。 
2”Geometry”。值为2000。大部分物体在这个队列。不透明的物体也在这里。这个队列内部的物体的渲染顺序会有进一步的优化(应该是从近到远)。其他队列的物体都是按空间位置的从远到近进行渲染。 
3”AlphaTest”。值为2450。已进行AlphaTest的物体在这个队列。 
4”Transparent”。值为3000。透明物体。 
5”Overlay”。值为4000。比如镜头光晕。 
6)用户可以定义任意值,比如”Queue”=”Geometry+10” 

 

接下来通过一个例子来验证Queue是定义渲染顺序,值较大的靠后渲染,值较小的靠前渲染。,打开lesson5目录下的1.scene如下图;


在这个场景里有backgroundgeomotry两个物体其中background所用到的材质与shaderbackground,backround,geometry所用到的材质与shader分别为geometry,geometry。打开backgroundgemotry这两个shader。都使用了Queue标签,其中background的值为Backgroundgeometry的值为geometry因为geometry的值大于background,所有geometry靠后渲染,因此屏幕最终的显示颜色是红色。如下图所示;


如故把background的值改为geometry,geometry的值改为backgroud,这时候background靠后渲染。而background是黑色。应该断定最终屏幕物体显示颜色为黑色。运行程序,实际显示的颜色和推断的颜色一致。如下图所示。

 

 上一节 ShaderLab语法(SubShader)

下一节ShaderLab语法(RenderType标签)

 Unity 开发交流QQ群:528152133

 

0 0
原创粉丝点击