コマンドバッファはレンダリングコマンドのリストを保持します。これらのコマンドのスケジュールと実行を Unity に指示することができます。
このページでは、ビルトインレンダーパイプラインのコマンドバッファの使用に関して説明します。スクリプタブルレンダーパイプライン (SRP) のコマンドバッファの使用については、スクリプタブルレンダーパイプラインのレンダリングコマンドのスケジュールと実行を参照してください。
コマンドバッファを使用して実行できるコマンドの完全なリストは、スクリプトリファレンスの CommandBuffer を参照してください。一部のコマンドは特定のハードウェアでのみサポートされていることに注意してください。例えば、レイトレーシングに関するコマンドは DX12 でのみサポートされています。
Graphics.ExecuteCommandBuffer API を使用して、コマンドバッファを即座に実行できます。
ビルトインレンダーパイプラインでは、レンダーループの特定の時間にコマンドバッファを実行できます。これを行うには、CameraEvent 列挙型と共に Camera.AddCommandBuffer API を使い、LightEvent 列挙型と共に Light.AddCommandBuffer API を使います。
例えば、CameraEvent の AfterGBuffer とともにコマンドバッファを使用すると、パイプラインがすべての不透明なゲームオブジェクトを処理した後に、追加のゲームオブジェクトを ディファードパイプライン にレンダリングすることができます。
実行の順序は、プロジェクトが使用するレンダリングパスによって異なります。
ディファードレンダリングパス | |
---|---|
BeforeGBuffer | |
不透明なジオメトリをレンダリングします。 | |
AfterGBuffer | |
深度を解決します。 | |
BeforeReflections | |
デフォルトのリフレクションをレンダリングします 。 | |
リフレクションプローブのリフレクションをレンダリングします。 | |
AfterReflections | |
リフレクションを G バッファのエミッシブチャンネルにコピーします。 | |
BeforeLighting | |
影をレンダリングします。LightEvent の実行順序を参照してください。 | |
AfterLighting | |
BeforeFinalPass | |
最終パスを処理します。 | |
AfterFinalPass | |
BeforeForwardOpaque (ディファードを使用してレンダリングできない不透明なジオメトリがある場合にのみ呼び出されます) | |
ディファードレンダリングで処理できない不透明なジオメトリをレンダリングします。 | |
AfterForwardOpaque (ディファードを使用してレンダリングできない不透明なジオメトリがある場合にのみ呼び出されます) | |
BeforeSkybox | |
スカイボックスをレンダリングします。 | |
AfterSkybox | |
ハローをレンダリングします。 | |
BeforeImageEffectsOpaque | |
Post-processing Stack V2 パッケージを使用している場合、不透明のみのポストプロセスエフェクトを適用します。 | |
AfterImageEffectsOpaque | |
BeforeForwardAlpha | |
透明なジオメトリと、レンダリングモードが Screen Space - Camera (スクリーンスペース - カメラ) に設定されているUI Canvases をレンダリングします。 | |
AfterForwardAlpha | |
BeforeHaloAndLensFlares | |
レンズフレアをレンダリングします。 | |
AfterHaloAndLensFlares | |
BeforeImageEffects | |
Post-processing Stack V2 パッケージを使用している場合、ポストプロセスエフェクトを適用します。 | |
AfterImageEffects | |
AfterEverything | |
レンダリングモードが Screen Space - Camera (スクリーンスペース - カメラ) ではない UI Canvase をレンダリングします。 |
フォワードレンダリングパス |
---|
BeforeDepthTexture |
不透明なジオメトリの深度をレンダリングします。 |
AfterDepthTexture |
BeforeDepthNormalsTexture |
不透明なジオメトリの深度法線をレンダリングします。 |
AfterDepthNormalsTexture |
影をレンダリングします。LightEvent の実行順序を参照してください。 |
BeforeForwardOpaque |
不透明なジオメトリをレンダリングします。 |
AfterForwardOpaque |
BeforeSkybox |
スカイボックスをレンダリングします。 |
AfterSkybox |
ハローをレンダリングします。 |
BeforeImageEffectsOpaque |
Post-processing Stack V2 パッケージを使用している場合、不透明のみのポストプロセスエフェクトを適用します。 |
AfterImageEffectsOpaque |
BeforeForwardAlpha |
透明なジオメトリと、レンダリングモードが Screen Space - Camera (スクリーンスペース - カメラ) に設定されているUI Canvases をレンダリングします。 |
AfterForwardAlpha |
BeforeHaloAndLensFlares |
レンズフレアをレンダリングします。 |
AfterHaloAndLensFlares |
BeforeImageEffects |
Post-processing Stack V2 パッケージを使用している場合、ポストプロセスエフェクトを適用します。 |
AfterImageEffects |
AfterEverything |
レンダリングモードが Screen Space - Camera (スクリーンスペース - カメラ) に設定されているUI Canvases をレンダリングします。 |
影のレンダリングの段階で、影を投影する各ライトに対して Unity は以下を実行します。
BeforeShadowMap | |
BeforeShadowMapPass 現在のパス (pass) のすべてのシャドウキャスターをレンダリングします。 AfterShadowMapPass |
|
各パス (pass) で繰り返します | |
AfterShadowMap | |
BeforeScreenSpaceMask | |
シャドウマップをスクリーンスペースバッファに集め、フィルタリングを行います。 | |
AfterScreenSpaceMask |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.