🎆
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