ShaderTips

シェーダーTips

主にUnityシェーダーについての記事を書いています。

Unity描画順

Unityの描画順について解説します。

上から順に描画されます。

1. カメラのコンポーネントのDepth

Depthが小さいカメラから順に描画します。

Culling Maskに設定されたLayerのオブジェクトを描画します。

f:id:Ny_Program:20201117211507p:plain



2. Sorting Layer & Order In Layer

Sprite Rendererを使用していなければ関係ない

 

3.RenderQueue 

こちらも値が小さいほど先に描画されます。

RenderQueueが同じ場合は

2500までは手前のオブジェクトから描画され、

2500より大きい場合は奥のオブジェクトから描かれます。

 

f:id:Ny_Program:20201118212531p:plain

InspecoterをDebugモードにすると、

f:id:Ny_Program:20201118212645p:plain

Custom Render Queueとしていう項目が確認できます。

これがRenderQueueに設定されている値です。

但しマイナス値の場合はSubShader中のQueueタグに設定した値が使われます。 

 

  SubShader中のQueueタグ

docs.unity3d.com

  • Background 1000 - このレンダリングキューは最初にレンダリングされます。一般的には、背景に必要なものに使用します。
  • Geometry (default) 2000 - ほとんどのオブジェクトに使用できます。不透明なジオメトリにはこのキューを使用します。
  • AlphaTest 2450 - アルファテストする形状でこのキューを使用します。Geometry とは別のキューであるのはアルファテストのオブジェクトをすべての不透明のオブジェクトの後に描画するほうが効率的であるためです。

  

4. カメラからの距離