The way post-processing works in this framework is by using local & global volumes. It allows you to give each volume a priority and a set of effect overrides to automatically blend post-processing settings in your scene. For instance, you could have a light vignette effect set-up globally but when the player enters a cave you would only override the
Intensity setting of the vignette to make it stronger while keeping the rest of the settings intact.
The Post-process Volume component can be added to any game object, the camera itself included. But it’s generally a good idea to create a dedicated object for each volume. Let’s start by creating a global Post-process Volume. Create an empty game object and add the component to it (
Component -> Rendering -> Pöst-process Volume) or use
GameObject -> 3D Object -> Post-process Volume. Don’t forget to add it to a layer that’s being used by the mask set in the Post-process Layercomponent you added to your camera.
By default it’s completely empty. Volumes come with two modes:
- Global: a global volume doesn’t have any boundary and will be applied to the whole scene. You can of course have several of these in your scene.
- Local: a local volume needs a collider or trigger component attached to it to define its boundaries. Any type of 3D collider will work, from cubes to complex convex meshes but we recommend you use simple colliders as much as possible, as meshes can be quite expensive to traverse. Local volumes can also have a
Blend Distancethat represents the outer distance from the volume surface where blending will start.
In this case we want a global volume so let’s enable
Weight can be used to reduce the global contribution of the volume and all its overrides, with 0 being no contribution at all and 1 full contribution.
Priority field defines the volume order in the stack. The higher this number is, the higher priority a volume has.