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值,我们可以确保某些物体一定在另一些物体之前或者之后渲染,这个技巧有时候很有用处。
本文介绍了Unity Shader Lab中Queue和Tags的使用方法。Queue用于指定物体渲染顺序,支持多种预定义选项,如Background、Geometry、AlphaTest、Transparent和Overlay等,并可通过数值调整实现精细控制。Tags则用于标记着色器,帮助硬件判断何时调用。
1512

被折叠的 条评论
为什么被折叠?



