Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Feature Request Restore missing post processing volume effect on/off toggle in URP

Discussion in 'Universal Render Pipeline' started by OhiraKyou, Jun 9, 2022.

  1. OhiraKyou


    Mar 27, 2012
    In the post processing stack v2, in the built-in render pipeline, effects have an on/off toggle property in the top-right corner. With this, a volume can override the enabled state of the effect.

    With this toggle available, scenes could provide any effect volumes they need. Then, a centralized settings manager could globally disable those effects based on user settings by overriding the on/off toggle in higher priority global volumes. For example, I could disable bloom or ambient occlusion by simply enabling game objects with global volumes whose profiles individually turned off those effects. Scenes and individual volumes wouldn't need to know that the player has a settings manager; the concerns were separated.

    The "active" state checkbox on the left side of each effect doesn't do this; adding an override and unchecking the effect is the same as not adding the override. And, values like "intensity" in bloom are not reasonable replacements, because it's not clear if the effect will still run (draining performance) while an effect is active and set to 0 intensity.

    So, I'd like a consistent, per-effect setting (enabled by default) that can be overridden via volumes to enable or disable an effect. For example, if one volume globally disables an effect, another should be able to override that with a higher priority to enable it again. This supports config hierarchies, such as scene-specific user settings overriding global user settings. And, this can be implemented like any other effect setting, with an override checkbox and a state. Indeed, it looks like this is how it works in the PP stack v2, as the inspector's debug mode shows entries for "enabled.overrideState" and "enabled.value".