What is Post-Processing Effect in Games?

Post-processing effects in games are all the applied filters, special effects, or VFX related to magic, water, wind, particles, or other special elements that we see in video games. Likewise, post-processing in a game is the process of applying filters and special effects to a game.  

Are you a game enthusiast or game programmer and want to know about post-processing effects in games? In this post, I will analyze and illustrate the most common post-processing techniques, which are often activated from the video configurations panel of the drivers and games.

What is post-processing effect in games?

Post-processing effects in games are all the applied filters and special effects related to magic, water, wind, particles, or other special elements that we see in video games.

The term “special effect” broadly includes all the techniques used in the audiovisual industry to create the illusion of action and simulate objects, characters, environments, or phenomena (weather, sound, etc.). 

Post-processing effects are elements visible on the screen and compose of textures, lights, and particles released from the central body. The shape of the elements of the effect typically responds to standard conventions: defensive actions, shields, and protections often have round shapes, while attacks, dynamic, and offensive actions tend to have angular or straight shapes. 

What is post-processing quality? 

Post-processing quality refers to how well all the visual effect elements are used to give the game an enhanced visual experience. 

Besides all the elements mentioned, color also plays a vital role in the post-processing quality of a game, especially in chaotic game situations such as those of MOBA, where many VFX are on-screen simultaneously. 

Color can also determine characteristic and distinctive aspects of characters or weapons: think, for example, of God of War (2018), in which the Leviathan’s Ax releases trails and ice-colored particles.

Why are post-processing effects used?

Post-processing effects enrich images in a game with character and emotion. They’re used to make the players immersed and engaged. They make games look livelier, animated, and more high quality and professional. Sometimes, the goal of post-processing is to make some actions appear as natural as possible. 

Types of post-processing effects

From anti-aliasing to anisotropic filtering, let’s discover the post-processing technologies behind modern games.

Special Anti-Aliasing (AA)

Anti-Aliasing is probably the best-known post-processing technique. Its function is to eliminate the so-called “alias” effect or “jaggies” created when viewing various polygons, especially at low resolutions. Let’s now analyze all the most common types of AA:

Super Sampling Anti-Aliasing (SSAA)

Super Sampling is the first type of AA developed; with this process, it is possible to obtain the best results in graphic rendering. But the price in terms of performance is too high. In practice, the color average is calculated on most of the pixels on the screen, including several internal points called sub-pixels. It is also known as Full-Screen Anti-Aliasing (FSAA).

Multi Sampling Anti-Aliasing (MSAA) 

Unlike Super Sampling, with this process, only the edges of the polygons are sampled and not their interior. This drastically reduces the workload while maintaining the most evident improvements from supersampling. However, this generates too many errors where there are transparent polygons, leaving the alias unchanged (there is also a specific type of AA called Transparency). In any case, Multi Sampling is currently the most used AA process.

Fast Approximate Anti-Aliasing (FXAA)  

This type of AA, only recently developed, differs entirely from the others. Instead of numerous calculations and a greater workload on the graphics card, a simple and very slight blur effect is processed over the whole image. This makes the edges of the polygons more homogeneous and partially eliminates jaggedness. 

Morphological Anti-Aliasing (MLAA) 

Owned by AMD, MLAA is another type of AA that works according to three main criteria: search for points of discontinuity between pixels in a given image, identification of polygonal patterns, and merging adjacent colors. 

The operation is similar to that of Multi Sampling. The difference is that you have to eliminate the jagged edges of the polygons by previously identifying the shapes to which the filter will then be applied. 

The heaviness and effectiveness of the image can vary greatly depending on the game in which it is applied and the video card used. 

Subpixel Reconstruction Anti-Aliasing (SRAA)  

The SRAA is Nvidia’s answer to the MLAA. The process almost precisely matches the AMD counterpart using single-pixel shading and sub-pixel visibility but tries to improve it. Thanks to the better management of geometric limits independent of the complexity of the image, superior results would be obtained. 

Image Scaling

Scaling is a technique that allows the image to be zoomed in or out to fit the native resolution of the panel. This is one of the more primitive post-processing processes and is usually used when rendering images or videos at a lower than native resolution – something that is usually done in the absence of power from the graphics card. 

Scaling can be performed according to various methodologies, some better than others; this depends exclusively on the chip integrated into the monitor, called the scaler. In any case, scaling carried out to increase the size of the image often has a very negative impact on its final quality. 

This practice is strongly discouraged unless you have a monitor or a TV with an excellent quality scaler. Always try to display games or videos at the native resolution of your panel to have the sharpest and most defined rendering possible.

Anisotropic Filtering (AF)

The anisotropic filter dates back several years and is still used in games today. This process improves the quality of the textures placed on surfaces with different angles with respect to the observation point. 

Like linear filters, anisotropic helps reduce aliasing and maintain aspect ratio corrected textures based on the subject’s perspective. The difference, however, is that it is more effective using calculations on elliptical and non-circular shapes.

Having a practically negligible impact on the performance of today’s PCs, it is always helpful to use an anisotropic filter rather than linear, bilinear, or even trilinear in order not to run into hideous disproportionate textures that could ruin the overall scene.

Screen Space Ambient Occlusion (SSAO)

Screen Space Ambient Occlusion is used to increase the realism of model reflections by reducing or increasing the amount of illumination on their surfaces. The operation can be briefly summarized: by tracing rays in every direction of the surface to be illuminated. 

Those in the background or the sky receive an increase in brightness. Those surrounded by various objects will not change and thus be even more in shadow. SSAO is generally a very heavy effect to calculate and has a decisive impact on performance.

HDR

High Dynamic Range (HDR) is used in 3D image renders to improve overall image quality significantly. It works by increasing the range between minimum and maximum illumination values ​​in a particular range and taking different exposure levels as a reference, putting them together in one image. 

This technique reproduces lights and shadows better and accentuates colors in brightness and saturation.

Bloom

The Bloom effect aims to reproduce a graphic artifact typical of real shots: the glare of light on the darker surfaces it impacts. This generates a blur effect around the object, creating a more realistic and “familiar” scene to the human eye, albeit less defined in the strict sense.

However, even this technique is now adopted by almost all the latest generation games, which sometimes implement it slightly too obvious.

Read also: Refresh Rate Vs. Response Time: What’s More Important?

How to add post-processing to unity

The first thing you need to enable post-processing on a camera is to add the component: go to Component >> Rendering >> Post-process Layer component.  

Then choose the layer you want to apply post-processing to. Finally, select the GameObject, which will then trigger the post-process layer.