如果不了解shader中如何使用模板緩衝區,可能看不懂例子。
渲染順序,我理解為進入顯示卡流水管線的順序,會對z、stencil和color buffer帶來影響。
當然,能否最終被繪製到螢幕上,還要看深度檢測和模板檢測的結果。
能夠影響渲染順序的因素有:
1、camera depth
相機元件上設定的相機深度,深度越大越靠後渲染。
2、sorting layer
在tags & layers設定中可見
3、order in layer
相對於sorting layer的子排序,用這個值做比較時只有都在同一層時才有效。
4、renderqueue
shader中對tags設定的「queue」。
下面是結果:
1、camera depth
永遠最高。camera depth小的一定先進渲染管線。
2、當sorting layer和order in layer相同時
renderqueue小的先進渲染管線。
3、當sorting layer和order in layer不相同時!
3.1 當兩個材質使用了不同的renderqueue,且這兩個renderqueue都在[0~2500]或[2501~5000]時,sortinglayer和orderinlayer的排序生效。
3.2 當兩個材質使用了不同的renderqueue,且這兩個renderqueue分別在[0~2500]和[2501~5000]時,則一定會按照renderqueue繪製,無視sortinglayer、orderinlayer的排序。
過程:呂布shader會向stencilbuffer中寫 1
關羽shader會根據stencilbuffer來進行顯示判斷
當兩個材質使用了不同的renderqueue,且這兩個renderqueue都在[0~2500]或[2501~5000]時,順序為:
調高renderqueue也是一樣
renderqueue對渲染順序沒有影響。
注意:當兩個材質使用了不同的renderqueue,且這兩個renderqueue分別在[0~2500]和[2501~5000]時,則一定會按照renderqueue繪製,無視sortinglayer、orderinlayer。
推測是因為2500為unity作為opacity和transparent的分界線,因此如果兩個材質的queue分別在分界線的兩邊,也就是乙個不透明乙個透明,則unity一定會先把不透明的物體送進渲染管線,無論sorting layer和order in layer到底怎麼排序。
影響unity渲染順序因素
有哪些因素影響unity的渲染 1.與攝像機之間的距離 2.shader的renderqueue 3.sortingorder 4.sortinglayer 5.相機之間的depth 這裡多條件那麼他們之間的關係是什麼,相互有什麼影響,今天來個大揭秘!保持其他條件不變的情況下 我們看看單個值比較,直...
Unity中影響渲染順序的因素總結
相機元件上設定的相機深度,深度越大越靠後渲染。renderqueue 2500是透明與不透明的分水嶺。同乙個相機下 renderqueue小於2500的物體 始終在 renderqueue大於2500之前繪製。在tags layers設定中可見 如果camera相同,那接下來就看sorting la...
Unity筆記 UGUI物體的渲染順序
不同camera的depth。大在前,小在後 同camera的sortinglayer。下在前,上在後 同sortinglayer下的order in layer。大在前,小在後 同order in layer下的z軸。小在前,大在後 注意 如果是多個canvas的渲染先後順序 調canvas下面有...