Post-Processing is a common feature across many visual mediums to enhance image quality. In video games and 3D rendering, this is applied via numerous different shaders to apply various filters and effects to the output display, allowing for overall enhancement as generally each individual object is rendered on it’s own.
Unity’s different rendering pipelines contain different iterations of Post Processing Stacks, each with their own enhancement effects. The Universal Rendering Pipeline (URP) and High Definition Rendering Pipeline (HDRP) have their stacks built in, whilst the Standard Pipeline requires a separate package to be imported into the project.
In term’s of making use of the Post-Processing stack, these examples take place within a URP project. If we access our Create menu there is a subfolder labelled Volume, containing the various Post Processing Volumes we can use in our scene. We have the option of creating Global Volumes or various others contained within different shapes and meshes, much like our colliders.
Accessing our created volume in the Inspector, we can see a Volume script. To make use of the stack, we need to create a Profile. We can also adjust the weight and priority of this volume if we were to have various volumes overlapping.
With a Profile created, we now have the option to Add Overrides. This is where we can select and alter the various effects we want to apply.
One of the most common and easily noticeable overrides, is Bloom. This effect adds glow to bright areas in the scene, a great way to enhance our lighting and emissions. When we add overrides, we can access a multitude of different variables to fine tune how we want our scene to look.
Other overrides we can add include various recoloring elements, vignette, depth of field, and film grain.
I opted for adding slight coloration to my shadows, midtones, and highlights separately, as well as using the Color Adjustments override to add exposure and contrast. Next I added Vignette, which darkens the edges of images, which draws the eye in closer without lowering the field of view. I also added a slight Film Grain to add some noise to the image, and then finished off the stack with a Depth of Field effect, which blurs background images while objects in the foreground are in focus.
The finished product isn’t too intense or overbearing, I opted for a subtle approach to add a touch of flavor. But alternatively, we can go very overboard and create in your face effects.
Or, we can blend different volumes together between various spaces, great for changing the feel between rooms.
To create an example, I simply split my room in two, and created hot and cold volumes. An important thing to note is that any overrides applied on a global volume, will take precedence unless we change the priority. When using local volumes, we can also alter the blend distance, allowing for hard edges or fade ins to the full effect.
Ultimately, this can be a very powerful tool, especially when creating more linear experiences, being able to change the mood and feel as a player progresses through an area!