A Hint of Post-Processing

This week while working on my Unity project I was trying to implement a feature where an object glows when a player needs a hint on how to proceed. A teammate suggested a solution involving post-processing. I couldn’t get the feature to work the way we wanted it to and eventually switched to a different method. It was a nice deep dive into an area that gamers have strong opinions one way or the other on the use and abuse of post-processing.

After each frame is rendered, effects can be applied to change the look of the frame, this is post-processing. The purpose of post-processing is to contribute to the overall visual look of the game. Most post-processing effects applied to games can be configured or turned off by the end user.

The biggest point of contention for gamers is what the developers or publishers want the game to look like may not be how the end user wants it to. Some may find effects or filters distracting such as chromatic aberration, which is when at the edge of an object, the color spectrum is distorted. This happens on cameras, and many believe that this effect is not only distracting but also breaks the immersion of the game since we are supposed to be viewing the game through the characters eyes, not a camera.

Chromatic aberration example – https://miro.medium.com/max/1400/1*6TFPSTIrEcIIvI7Odd8nAQ.gif

Another effect that is often regarded as distracting or immersion breaking is depth of field. Depth of field blurs objects further away from the camera. For the same reason as chromatic aberration, this is an effect from a camera not from human eyes which can break immersion.

Depth of field example – https://docs.unrealengine.com/4.27/Images/RenderingAndGraphics/PostProcessEffects/DepthOfField/DepthOfField_PilotCamera.png

Other effects are used to enhance the quality of the image by reducing the ’jaggies’ on diagonal lines, this is called anti-aliasing. The more anti-aliasing applied the blurrier or muddier the image looks. There are many techniques used to achieve this effect, some are more resource intensive than others and users are generally given options on which method to use to meet their hardware capabilities and preferences.

An example of the effects of FXAA – https://blog.codinghorror.com/content/images/uploads/2011/12/6a0120a85dcdae970b015437fee512970c-800wi.jpg

Another image enhancing effect is ambient occlusion, which provides more accurate lighting by allowing object to occlude, or block, light and cast a shadow. As with anti-aliasing there are different techniques to choose from. Some are costlier than others regarding resources, but the result is a more accurate looking scene with a performance hit for the more advanced methods.

Different techniques of ambient occlusion – https://www.gamedesigning.org/wp-content/uploads/2019/10/ambient-occlusion-vxao.jpg

The effect that I was trying to achieve was a glow on an object using the bloom post-processing effect. In unity there are many post-processing effects built in where the post-processing package just needs to be installed before use. The bloom effect attempts to add a level of realism to light sources by making them more intense and look like it’s glowing. For instance, instead of having the sun a giant yellow circle in the sky, bloom will make the sun glow and make it is very intense to look at.

Bloom enabled on the left – https://www.gamersnexus.net/game-bench/1952-complete-witcher-3-graphics-optimization-guide-and-performance

Bloom did not work the way I was expecting it to because not all the objects that required hints projected light, therefore they did not glow as I expected them to.

Although the post-processing effect did not work the way I was expecting it to, I did gather some knowledge about post-processing in Unity and will try to incorporate some of the effects in our final project.

Print Friendly, PDF & Email

Leave a comment

Your email address will not be published. Required fields are marked *