通常在渲染Alpha Test或Alpha Blender的時候,會有分不出透明度前後的問題,這時候就必須使用Render Queue來標記渲染順序
Queue 標籤是上面提到的可選鍵值對項中的一個,也就是決定對像被渲染順序的標籤。根據上面的語法,我們可以這麼寫:
> Tags { “Queue” = “XXXX” }
上面的XXXX是Queue標籤的值,這個值在內部是整數型的索引。數值越小,越先被渲染。但是不要以為直接填整數就可以,Shaderlab不支持直接填數值,而是先定義好了5個具有描述性的詞來代替單調的數值。 (參考下圖)
右圖為一般Particle,ZTest跟ZWrite沒有調整,RenderQueue為Transparent的版本
可以看得出來渲染的順序是用,物件的世界座標來排序的
右圖為更改ZTest跟ZWrite的版本
特效因為深度被拿掉所以會蓋住模型,但是火焰的效果還是跟咬痕會相互重疊
右圖為更改RenderQueue為Overly的版本
咬痕最後渲染,這樣就會蓋住其他的效果了
Render Queue 常用於透明相關的渲染順序,沒辦法改變實體模型的渲染深度,如果要讓shader大過實體模型,可以用Zwirte或ZTest