[Unityシェーダー基礎] URP環境でカスタムポストプロセスを追加する方法。
Universal Renderer Dataの設定。
関連ページ
Unityが旧Unity標準シェーダー(ビルトインシェーダー)を廃止し、今後はURPに統一されることが発表されました。
Unityの“元標準”描画基盤「ビルトインRP」、段階的に廃止へ。HDRPも新機能打ち止め、URP集中方針に
URP環境では、一部シェーダー効果を実装するにはコードだけでは対応できず、カスタムポストプロセスを駆使する必要があります。
このページではその設定の仕方を解説します。

Universal Renderer Dataの確認
Unity6からプロジェクト作成時にURP環境を使うのが標準化されました。
プロジェクトをURP環境で作成すると、
Assets/Settings
直下にURPの設定ファイル群が確認できるはずです。
このうちカスタムポストプロセスに直接関係あるのは、
Universal Renderer Data
というファイルです。
デフォルトでは
Mobile_Renderer
と
PC_Renderer
が存在します。
名前から想像できる通り、PC_Rendererは高画質・高負荷向けの設定で、Mobile_Rendererは軽量・低負荷向けの設定です。
もしスマホアプリを作りつもりなら、適切にMobile_Rendererの設定をする必要があります。
今現在プロジェクトが何の
Universal Renderer Data
を選択しているかを確認するには、いくつか段階を踏む必要があります。
まず
ProjectSettings>Quality
を確認します。
ここで設定されている
Universal Renderer Pipeline Asset
を確認できます。
ProjectSettings>Graphics
にもUniversal Renderer Pipeline Assetの設定を確認できますが、こちらは無視してください。
Graphicsに何が設定されていても、Qualityの設定が優先されます。
次に設定されたUniversal Renderer Pipeline Assetのインスペクターを確認します。
ここの
RendererList
を確認すると、プロジェクトで採用している
Universal Renderer Data
が何か確認できます。

カスタムポストプロセスの設定
テストでカスタムポストプロセスを使ってみます。
旧Unity標準シェーダーでは、GrabPassというコードを書くことで簡単に全画面反映のシェーダーを作ることが出来ました。
URP環境の場合、コードだけでこれを模倣するのは困難で、カスタムポストプロセスの
Full Screen Pass Renderer Feature
という機能を使います。
Universal Renderer Dataの一番下、
Add Renderer Feature
からFull Screen Pass Renderer Featureを選択してください。
Addすると、最初からURPの
FullScreenInvertColors
というマテリアルがアタッチされているのを確認できます。
画面を確認すると、カメラに写っている全ての色が反転しているのを確認できます。
0
0