シェーダー基礎、URPのカスタムポストプロセスについて

シェーダー基礎、URPのカスタムポストプロセスについて

[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