Render Pass (レンダーパス / ScriptableRenderPass)は、ゲームグラフィックスのレンダリングや最適化(テクニカルアート)において極めて重要となる技術用語です。Unityのレンダーパイプライン(URPなど)において、1回の一連の描画処理(例:深度のみ描画、不透明のみ描画、ポストプロセス実行など)をカプセル化した、レンダリングの最小単位の解説。

現実世界での例え:自動車の組立ラインにおいて、『ボディを塗装する専用のブース(Render Pass)』を一時的に追加し、特別なラメ塗装を行ってから次のブースへ送り出す工程のモジュール化

レンダーパスは、「3Dの絵を作り上げる全工程(レンダーパイプライン)を、いくつかの小さな独立した『個別作業ブース(パス)』に細分化したモジュール」です。まず「車の骨組みを組むブース(深度パス)」があり、次に「色を塗るブース(不透明パス)」、「窓ガラスをはめるブース(半透明パス)」、「最後にワックスをかけるブース(ポストプロセスパス)」と順番に流れていきます。各パスは完全にカプセル化されているため、開発者は「新しく『車体に泥の汚れを追加する専用の特設ブース(カスタムレンダーパス)』」を自作してラインの合間に割り込ませることで、究極にユニークなグラフィックス表現をノーリスクで実現できます。

Render Pass (レンダーパス / ScriptableRenderPass) concept infographic diagram

図:Render Pass (レンダーパス / ScriptableRenderPass)の基本的な処理フローと仕組みを日本語表記で分かりやすく図解したインフォグラフィック

詳細な仕組みと動作原理

C#で `ScriptableRenderPass` を継承したクラスを自作し、`ConfigureTarget` で描画先バッファを指定し、`Execute` メソッド内にコマンドバッファの具体的な描画処理をプログラムし、Renderer Feature経由でパイプラインに挿入します。