A great VR game should offer a perfect level of immersion so that a player feels comfortable and can enjoy the game session to the fullest. There are many factors that influence the level of immersion, and a high-quality picture is one of the key factors. Looking at various problems associated with the image quality, aliasing is definitely on this list.
Aliasing is an artifact, expressed in the form of jagged and flickering lines and edges of an image. Aliasing can occur both on the polygons and on the contents of the polygons, that is why this problem cannot be considered as the problem of the edges only.
In statics, aliasing isn’t crucial, whereas, in dynamics, this issue is extremely relevant because micro-motions of the VR helmet, in conjunction with aliased objects, lead to the flickering of the image. The flickering picture enhances discomfort, distracts players and, consequently, reduces the level of immersion and lowers gameplay satisfaction.
In order to avoid this, various smoothing algorithms are used.
How to Reduce Aliasing: Main Algorithms
Anti-aliasing is any method, aimed at the elimination of aliasing artifacts. Anti-aliasing methods (AA methods/algorithms/techniques) can be based on multi-sampling or post-processing.
Speaking about anti-aliasing algorithms based on multi-sampling, they calculate extra samples, and then use these samples to choose the color of the pixel more accurately. SSAA (Super-sample anti-aliasing) and MSAA (Multisample anti-aliasing) are part of this group.
As for AA algorithms based on post-processing, they don’t calculate extra samples. Instead, they are used during post-processing to reduce aliasing by examining the rendered image and adjusting the pixels. The advantage of this group is that post-processing anti-aliasing algorithms can be combined with any of the multi-sampling methods for the best result. FXAA (Fast Approximate anti-aliasing), SMAA (Subpixel Morphological anti-aliasing) and TXAA (Temporal Approximate anti-aliasing) belong to this group.
Below is an overview of all AA methods.
Algorithms Based on Multi-Sampling
1. SSAA (Super-sample Anti-Aliasing)
This anti-aliasing method offers the best image quality, however, its low speed is one of its disadvantages. This algorithm works well with static images, but it shows an average work for dynamic cases. The SSAA algorithm takes high-resolution images and reduces their resolution to the required size. As a result, the edges are smooth, but this method needs more hardware resources from a video card. Besides, it is known that the increase in pixel density of a monitor can reduce the aliasing effect. It happens because the display resolution allows the pixels to more accurately match the curved or diagonal line being rendered.
- It gives the best quality of the image.
- Artifacts both on boundaries and in the textures are reduced.
- It affects performance much because the scene is rendered at a very high resolution.
2. MSAA (Multisample Anti-Aliasing)
MSAA involves forward rendering. Performance-wise, MSAA is a major improvement over SSAA. MSAA detects the edges of polygons and enlarges the number of samples there. The boundaries of triangles are rendered as the averaged value of a sum of pixels. The final pixel color is obtained by sampling a certain number of pixels.
This smoothing algorithm works well only with static images.
- It works faster than SSAA.
- It does not affect performance much.
- The image isn’t blurred.
- It shows the best results only on the edges of the polygons; the internal areas of the polygons aren’t smoothed.
- It produces lower image quality compared to the SSAA technique.
Algorithms Based on Post-Processing
1. FXAA (Fast Approximate Anti-Aliasing)
FXAA involves deferred rendering. This undemanding fast smoothing algorithm is used in the final image. Basically, it blurs the groups of pixels with abrupt changes in brightness. It works well only with static images.
- It offers a good resource/quality ratio.
- Large and close objects are smoothed well.
- It blurs the image, distant objects become unrecognizable.
- It doesn’t smooth all the edges in the scene.
2. SMAA (Subpixel Morphological Anti-Aliasing)
This AA method also works well only with static images. This is a simple and effective method that not only finds, but also recognizes different patterns in the form of sharp lines, curves, boundaries of objects, and blurs them in the direction of these lines.
- It offers reliable edge detection.
- It works fast.
- It doesn’t blur the image much.
- This algorithm is resource-hungry.
3. TXAA (Temporal Approximate Anti-Aliasing)
This algorithm has been developed by NVIDIA. In this algorithm, a contribution of samples (both inside and outside of the pixel) and samples from prior frames are used to ensure the filtering of the highest quality. This method shows good results both with static and dynamic images.
- It offers a high-quality image.
- It is as productive as SSAA, but it doesn’t influence performance much.
- In dynamics, the image is blurred.
- It is more demanding than the SMAA algorithm.
If you want to choose something fast, cheap, and you are willing to tolerate image blurriness, opt for FXAA. If you have a powerful graphics card but MSAA isn’t available due to the rendering to the texture, SMAA is a good choice. If your graphics card is able to cope with SMAA, and you want to choose a more demanding algorithm that works well, both with static and dynamic images, then TXAA (the most popular algorithm to date) is a win-win option. However, if your priority is the best quality, and the effect on performance is not important, then go for SSAA.
About the Author
Anton Tril, CTO at ARVI Lab, is a computer graphics programmer, VR game developer and software engineer. Being a researcher by nature, writer by passion, he is happy to share his life experience and professional knowledge with the people around.
Anton inherently believes that VR can make your dreams come true.