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. 該隊列用於實現一些疊加效果,適合最后渲染的物體(如鏡頭光暈)。