🎆

FullScreen ShaderGraphを使って、ShaderGraphでポストエフェクトをかける

2023/01/22に公開

はじめに

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 InspectorGraph 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

以下で中身を読んでいるのでそちらも合わせて見ると参考になるかと思います。

https://zenn.dev/sakutaro/articles/full_screen_pass_renderer_feature

画面の色を取得する

URP Sample Bufferノードを作り、Source BufferBlitSourceにすることによって
画面の色を取得することができます。

グレースケールのポストエフェクトをかける

試しに画面の色を取得して、グレースケールをかけてみます。

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

GitHubで編集を提案

Discussion