🎆
FullScreen ShaderGraphを使って、ShaderGraphでポストエフェクトをかける
はじめに
URP14から追加された、FullScreen ShaderGraphを触ってみます。
環境
Unity 2022.2.0b16
Universal RP 14.0.4
Shader Graph 14.0.4
FullScreen ShaderGraphを作成する
Create/Shader Graph/URP/Fullscreen Shader Graphから作成することができます。

または、ShaderGraph上のGraph InspectorのGraph Settingsタブを開き
Universal/Material/Fullscreenを選択することでも可能です。

ノードが以下のようになれば成功です。

Universal Renderer Assetの設定
UniversalRendererAssetからAdd Renderer Feature/Full Screen Pass Renderer Featureを選択します。

ゲームビューが以下のようになれば成功です。

その後、作成したFullScreen ShaderGraphのマテリアルをPass Materialにアタッチします。

特に何も設定していないので、画面がグレーになります。

Full Screen Pass Renderer Featureのプロパティ
| 名前 | 説明 |
|---|---|
| Name | Passの名前 |
| Pass Material | RendererFeatureがレンダリングに使うマテリアル |
| Injection Point | Passを追加するタイミング ・Before Rendering Transparents : SkyBoxPassの後、TransparentPassの前 ・Before Rendering Post Processing : TransparentPassの後、PostProcessingPassの前 ・After Rendering Post Processing : PostProcessingPassの後、AfterRenderingPassの前 |
| Requirements | 使用するRendererFeatureのpass ・None : なし ・Everything : 全て ・Depth : 深度 ・Normal : 法線 ・Color : カラーデータ、シェーダー内の _BlitTextureにコピーする・Motion : モーションベクター |
| Pass Index | Pass Materialで指定したMaterialの使用するpassのindex |

以下で中身を読んでいるのでそちらも合わせて見ると参考になるかと思います。
画面の色を取得する
URP Sample Bufferノードを作り、Source BufferをBlitSourceにすることによって
画面の色を取得することができます。

グレースケールのポストエフェクトをかける
試しに画面の色を取得して、グレースケールをかけてみます。

以下のように、グレースケールがかかります。

Discussion