Research : Multi-level anti-aliasing system for CPU and GPU

Anti-aliasing refer to any of a number of techniques to combat the problems of aliasing in a sampled image. It is a general problem that is handled by renderers since a decade, and so there is a lot of techniques to acheive good looking images.

Aliasing can be everywhere in an image, it can be at the polygon edges, the highlights but also on the textures and really more. It is a general problem to handle in order to produce quality images. We have to smooth theses aliasing effects without breaking the visual appareance of the scene. The following image show the simplest kind of aliasing effect :

AntiAliasingNoneAntiAliasing4xOf course there exist some real-time techniques, mostly for games, but the goals are not the sames. In rendering we can spend more time to compute an image because the goal is to acheive a higher quality level.

The problem we noticed with the current techniques is that either they are cheap but not handle all the case, or they are expensive but are able to handle more aliasing effects. Most of the time the artists have to choose the right filter for their images before starting the rendering and without knowing what aliasing problem will appear on the final rendering.

It is the reasons that push us to develop a new anti-aliasing method because the artists need a fast and adaptative method, without care of any possible problem.

Our new technique use a multi-level filtering approach, mainly based on super sampling but also on adaptative samplig, it is of course usable on both CPU and GPU. Our research show that each level can handle a specific kind of aliasing effect quickly.

Depending of the requested quality, you can choose a super sampling level, higher the quality request of course more samples and of course more processing time, but it is the price to pay for a higher quality image.

So, after a lot of tests and development we have finaly complete our new antialising system that provide really better images.

The following image shos the same scene, but rendered with different anti-aliasing parameters (Old method vs New method), where you can clearly see the différences in the highlights by example, or in the grid thin lines: