URP には複数のインジェクションポイントが含まれています。これによりフレームレンダリングループにレンダーパスを挿入し、さまざまなイベントで実行できます。
インジェクションポイントにより、カスタムレンダーパスが URP バッファへアクセスできるようになります。レンダーパスは、各インジェクションポイントのすべてのバッファに対して読み取りおよび書き込みのアクセス権を持ちます。
Unity では、レンダリングループに以下のイベントを提供しています。これらのイベントを使用して、カスタムパスを挿入することができます。
| インジェクションポイント | 説明 |
|---|---|
| BeforeRendering | 現在のカメラに対して、パイプライン内の他のパスをレンダリングする前に ScriptableRenderPass インスタンスを実行します。カメラマトリックスとステレオレンダリングは、この時点では設定されていません。このインジェクションポイントを使用して、後でパイプラインで使用されるカスタム入力テクスチャ (LUT テクスチャなど) に描画することができます。 |
| BeforeRenderingShadows | シャドウマップ (MainLightShadow、AdditionalLightsShadow パス) をレンダリングする前に ScriptableRenderPass インスタンスを実行します。この時点では、カメラマトリックスとステレオレンダリングは設定されていません。 |
| AfterRenderingShadows | シャドウマップ (MainLightShadow、AdditionalLightsShadow パス) のレンダリング後に ScriptableRenderPass インスタンスを実行します。この時点では、カメラマトリックスとステレオレンダリングは設定されていません。 |
| BeforeRenderingPrePasses | プリパス (DepthPrepass、DepthNormalPrepass パス) をレンダリングする前に ScriptableRenderPass インスタンスを実行します。この時点で、カメラマトリックスとステレオレンダリングはすでに設定されています。 |
| AfterRenderingPrePasses | プリパス (DepthPrepass、DepthNormalPrepass パス) のレンダリング後に ScriptableRenderPass インスタンスを実行します。この時点で、カメラマトリックスとステレオレンダリングは設定されています。 |
| BeforeRenderingGbuffer |
GBuffer パスをレンダリングする前に ScriptableRenderPass インスタンスを実行します。 |
| AfterRenderingGbuffer |
GBuffer パスのレンダリング後に ScriptableRenderPass インスタンスを実行します。 |
| BeforeRenderingDeferredLights |
Deferred パスをレンダリングする前に ScriptableRenderPass インスタンスを実行します。 |
| AfterRenderingDeferredLights |
Deferred パスのレンダリング後に ScriptableRenderPass インスタンスを実行します。 |
| BeforeRenderingOpaques | 不透明なオブジェクト (DrawOpaqueObjects パス) をレンダリングする前に ScriptableRenderPass インスタンスを実行します。 |
| AfterRenderingOpaques | 不透明なオブジェクト (DrawOpaqueObjects パス) をレンダリングした後に ScriptableRenderPass インスタンスを実行します。 |
| BeforeRenderingSkybox | スカイボックス (Camera.RenderSkybox パス) をレンダリングする前に ScriptableRenderPass インスタンスを実行します。 |
| AfterRenderingSkybox | スカイボックス (Camera.RenderSkybox パス) のレンダリング後に ScriptableRenderPass インスタンスを実行します。 |
| BeforeRenderingTransparents | 透明なオブジェクト (DrawTransparentObjects パス) をレンダリングする前に ScriptableRenderPass インスタンスを実行します。 |
| AfterRenderingTransparents | 透明なオブジェクト (DrawTransparentObjects パス) をレンダリングした後に ScriptableRenderPass インスタンスを実行します。 |
| BeforeRenderingPostProcessing | ポストプロセスエフェクト (Render PostProcessing Effects パス) をレンダリングする前に ScriptableRenderPass インスタンスを実行します。 |
| AfterRenderingPostProcessing | ポストプロセスエフェクトのレンダリング後で、かつ最終的な転送、ポストプロセスアンチエイリアスエフェクト、およびカラーグレーディングの前に ScriptableRenderPass インスタンスを実行します。 |
| AfterRendering | その他すべてのパスをレンダリングした後に ScriptableRenderPass インスタンスを実行します。 |
以下の図は、URP フレームのパスとフレームリソースのフローを示しています。