Tags
表面着色器可以被若干的标签(tags)所修饰,而硬件将通过判定这些标签来决定什么时候调用该着色器。
语法:Tags { “TagName1” = “Value1” “TagName2” = “Value2” … }
例如--》Tags { "RenderType"="Opaque" }
Queue指定了物体的渲染顺序,预定义的Queue有:
- Background - 最早被调用的渲染,可以用来渲染天空盒或者背景
- Geometry - 这是默认值,用来渲染非透明物体(特别注意的是:渲染顺序是从前往后)
- AlphaTest - 用来渲染经过Alpha Test的像素,单独为AlphaTest设定一个Queue是出于对效率的考虑
- Transparent - 用来渲染非透明物体(特别注意的是:渲染顺序是从后往前)
- Overlay - 用来渲染叠加的效果,是渲染的最后阶段(比如镜头光晕等特效)
Shaderlab 还对上面五类做了延伸,让他们 支持加减法。比如想让对象在 Background 之后 Geometry 之前渲染,我们可以这么写:Tags { “Queue” = “Geometry-1”}
通过调整Queue值,我们可以确保某些物体一定在另一些物体之前或者之后渲染,这个技巧有时候很有用处。