在内置渲染管线中,Unity 渲染对象的顺序基于两个方面:对象位于哪个渲染队列中,以及 Unity 如何对该渲染队列中的对象进行排序。
Unity 会将对象分组,该组称为渲染队列。Unity 先渲染一个渲染队列的内容,然后渲染另一个渲染队列的内容,以此类推。
Unity 具有命名如下的渲染队列,并按以下顺序渲染:
| 名称 | 索引 | 描述 |
|---|---|---|
| Background | 1000。 | 此队列用于应在场景背景中绘制的任何对象。 |
| Geometry | 2000 | 此队列用于不透明几何体。此队列是默认队列。 |
| AlphaTest | 2450 | 此队列用于 Alpha 测试的几何体。此队列位于 Geometry 队列之后,因为在绘制完所有实体对象之后再渲染经过 Alpha 测试的对象会更有效。 |
| Transparent | 3000 | 此队列用于任何 Alpha 混合(不写入深度缓冲区的着色器)。示例包括玻璃或粒子效果。 |
| Overlay | 4000 | 此队列用于可渲染在其他所有内容之上的效果(例如镜头光晕)。 |
请注意,天空盒材质是一种特殊情况。Unity 会在所有不透明几何体之后(队列索引 2500 之后)但在所有透明几何体之前(队列索引 2501 之前)绘制天空盒材质。
在每个渲染队列中,Unity 根据对象与摄像机的距离对其进行排序和绘制。排序行为取决于渲染队列的索引: