Render Queueは、Unityがシーン上のオブジェクトをレンダリング(描画)する絶対的な順番を制御するための整数パラメータです。これにより、グラフィックスカード(GPU)がどのオブジェクトを先に描き、どれを後に重ねるかを正確に決定します。
現実世界での例え:飲食店の注文伝票の処理順
Render Queueの仕組みは、「レストランの厨房における、注文伝票の絶対的な処理順(オーダー優先グループ)」に例えられます。
- 従来(Queue制御なし): 料理(オブジェクト)をテーブルに出す順番がバラバラです。デザート(半透明パーティクル)が最初に出され、その後にメインディッシュ(不透明な地面や建物)が出されると、テーブルの上(スクリーン)が台無しになり、デザートがメインディッシュの下に隠れて見えなくなってしまいます(描画順の破綻)。
- Render Queueによる解決: 注文伝票に「グループ番号(Queue値)」を厳格に書き込みます。まず『グループA:スープとメイン(Geometry:2000)』を全員分作り終えてテーブルに並べます。その後に必ず『グループB:デザートとグラス(Transparent:3000)』を重ねて提供するように厨房の調理順を統一します。これにより、誰がいつ見ても美しい順番で料理が並び、グラス(半透明)越しにメインディッシュが透けて見えるようになります。
図:不透明描画(Geometry)から半透明描画(Transparent)へと流れるレンダーキューのレイヤー概念図
仕組みと動作原理
Unityでは、描画効率(オーバードロー削減)を高めるため、不透明オブジェクトは「カメラから近い順(Front-to-Back)」に描画してオクルージョンカリングを効かせます。一方、半透明オブジェクトは正しくブレンドするために「カメラから遠い順(Back-to-Front)」に重ねて描画します。この『不透明』と『半透明』の描画タイミングの明確な境界を分けるのが、Render Queue値です。