Unity3d——RenderQueue理解
Unity提供给我们一些默认的渲染队列,每一个对应一个唯一的值,来指导Unity绘制对象到屏幕上。这些内置的渲染队列被称为Background, Geometry, AlphaTest, Transparent, Overlay。这些队列不是随便创建的,它们是为了让我们更容易地编写Shader并处理实时渲染的。下面的表格描述了这些渲染队列的用法:
示例:
Tags { "Queue"="Geometry" }
Tags { "Queue"="Geometry-20" }
同时需在SubShader中显示声明ZWrite Off,通知Unity我们会重写物体的渲染深度排序。
Properties Value 渲染队列描述
1、Background 1000 This render queue is rendered before any others. 这个队列通常被最先渲染(比如 天空盒)。
2、Geometry 2000 Opaque geometry uses this queue. 这是默认的渲染队列。它被用于绝大多数对象。不透明几何体使用该队列。
3、AlphaTest 2450 Alpha tested geometry uses this queue. 需要开启透明度测试的物体。Unity5以后从Geometry队列中拆出来,因为在所有不透明物体渲染完之后再渲染会比较高效。
4、GeometryLast – Last render queue that is considered “opaque”. 所有Geometry和AlphaTest队列的物体渲染完后
5、Transparent 3000 This render queue is rendered after Geometry and AlphaTest, in back-to-front order. 所有Geometry和AlphaTest队列的物体渲染完后,再按照从后往前的顺序进行渲染,任何使用了透明度混合的物体都应该使用该队列(例如玻璃和粒子效果)
6、Overlay 4000 This render queue is meant for overlay effects. 该队列用于实现一些叠加效果,适合最后渲染的物体(如镜头光晕)。