📝
[UnityURP]レイヤーごとにポストプロセスの影響をオンオフするには
ポストプロセスは低コストで画面のクオリティを上げる非常に使い勝手のいい機能ですが、デフォルトでは全ての表示物が影響を受けてしまいます。

UI Button も Bloom 効果を受けてボヤケている
このように UI も影響を受けてしまうのは好ましくないので、「UI だけポストプロセスの影響を受けない」設定について説明します。
🧪カメラを2つにわける
「UI以外を全て表示する」「UIだけ表示する」2つのカメラを作成します。
設定値としては次の通りです。
| カメラ | Render Type | Post Processing | Culling Mask | Stack |
|---|---|---|---|---|
| Main Camera | Base | ✅ON | UI 以外にチェック | +UI Camera |
| UI Camera | Overlay | OFF | UI のみチェック |
📌2D 表示の例
次に、それぞれのカメラに対応した Canvas を設定します。
| Canvas | Render Mode | Render Camera | Layer |
|---|---|---|---|
| Main Canvas | Screen Space - Camera | Main Camera | Default (*子オブジェクトも全て) |
| UI Canvas | Screen Space - Camera | UI Camera | UI |
先ほどの例で言うと、Main Canvas には背景画像、UI Canvas には UI Button を配置すると、次のように UI のポストエフェクトを外すことができます。

📌3D 表示の例
3D は単に、Layer を Default or UI にするだけで OK です。
以下は左が UI、右が Default レイヤーに設定した Cube を表示しています。

📌2カメラそれぞれにポストプロセスをかけたい場合
Main Camera が UI Camera のポストプロセス影響を受けてしまうので、それほど自由度は高くないかもしれませんが、一応紹介します。
まずはカメラの設定値。
| カメラ | Render Type | Post Processing | Culling Mask | Volume Mask | Stack |
|---|---|---|---|---|---|
| Main Camera | Base | ✅ON | UI 以外にチェック | Default | +UI Camera |
| UI Camera | Overlay | ✅ON | UI のみチェック | UI |
次に Global Volume です。2つ作成し、レイヤーをそれぞれ Default、UI にすることでカメラごとのポストプロセスを設定できます。

🧪カメラ1つの場合
3D だけ切り替えたい場合はカメラ1つでも出来るようなので、こちらも紹介しておきます。
カメラはテンプレートプロジェクトで自動生成される Main Camera のみで構いません。
変更すべきは PC_Renderer (Universal Render Data) です。

この設定でも、次のように表示されます。

Discussion