Unity描画順
Unityの描画順について解説します。
上から順に描画されます。
1. カメラのコンポーネントのDepth
Depthが小さいカメラから順に描画します。
Culling Maskに設定されたLayerのオブジェクトを描画します。
2. Sorting Layer & Order In Layer
Sprite Rendererを使用していなければ関係ない
3.RenderQueue
こちらも値が小さいほど先に描画されます。
RenderQueueが同じ場合は
2500までは手前のオブジェクトから描画され、
2500より大きい場合は奥のオブジェクトから描かれます。
InspecoterをDebugモードにすると、
Custom Render Queueとしていう項目が確認できます。
これがRenderQueueに設定されている値です。
但しマイナス値の場合はSubShader中のQueueタグに設定した値が使われます。
SubShader中のQueueタグ
- Background 1000 - このレンダリングキューは最初にレンダリングされます。一般的には、背景に必要なものに使用します。
- Geometry (default) 2000 - ほとんどのオブジェクトに使用できます。不透明なジオメトリにはこのキューを使用します。
- AlphaTest 2450 - アルファテストする形状でこのキューを使用します。Geometry とは別のキューであるのはアルファテストのオブジェクトをすべての不透明のオブジェクトの後に描画するほうが効率的であるためです。
- Transparent 3000 - このレンダリングキューは Geometry と AlphaTest の処理後に、後方から手前へ向かってレンダリングされます。アルファブレンディングされるもの (すなわち、深度バッファに書き込みしないシェーダー) はすべて、ここに加えるべきです (ガラス、パーティクルエフェクトなど)。
- Overlay 4000 - このレンダリングキューはオーバーレイ効果のためのものです。最後にレンダリングするものはここに加えるべきです (例えば、レンズフレア)。