困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

Unityの話~描画順番の話~

https://twitter.com/eral_r_l/status/495866386581712897?lang=ja

上記のツイートの転載というかまとめ。

 

[1]Unityの描画順について解説を6回に分けて呟きます。Unityに於けるモデルの描画順はカメラのDepth値とRenderQueueと呼ばれる値とカメラからの距離に依って決まります。

 

[2]まず第1にカメラのDepth値が小さい順に映るモデルが描画されます。映るモデルとはカメラのCullingMaskとモデルのLayerに依って決まります。カメラ内に映るモデルが複数有る場合、RenderQueueと呼ばれる値に依り描画順が決まります。

 

[3]RenderQueueの確認はInspecoterをDebugモードにしてMaterialにフォーカスさせるとCustom Render Queueとして確認出来ます。この値が小さい順に描画されます。但しマイナス値の場合はShader組み込みの値が使われます。

 

[4]Shader組み込みのRenderQueueの確認はInspecoterをNormalモードにしてShaderにフォーカスさせるとRender queueとして確認出来ます。多くの場合RenderQueueは遮蔽モデルなら2000、透過モデルなら3000と為ります。

 

[5]RenderQueueが同じ場合、カメラからの距離に依り描画順が決定します。RenderQueueが3000未満のモデルの場合カメラから近い順に描画され、3000以上なら遠い順に描画されます。

 

[6]なお唯一RenderQueueに影響されない描画物が1つ有り、それがカメラのClearFlagsに依る描画です。この描画はカメラの一番最初に行われ、それ以降に映るモデルが描画される事に為ります。