The Advantages Of Ray Tracing
As we've just seen, one of the main advantages of ray tracing is its elegance. The algorithm uses only one basic primitive object to reproduce effects that often require a lot of ingenuity and hard work to simulate with a standard rasterization algorithm.
Reflections are one area where ray tracing excels. Currently, with the 3D engines used by modern games, reflections are calculated from an environment map. This technique gives a good approximation of the reflections located "at infinity" and in the environment, as the name indicates, but for close objects, the approach shows its limitations.
Developers of auto racing games, in particular, have developed tricks for simulating near reflections, by using dynamic cube maps. The camera is placed at the level of the player's car and a rendering is drawn in the main directions. The rendering is then stored in a cube map used to draw the reflections.
But dynamic cube maps also have limitations, too. It is computationally expensive to produce several renderings, and so to limit the performance hit, the cube map isn't recalculated as often as the main rendering. This can result in a slight latency in the reflections. To limit the impact on the fill rate, the rendering is also done at a lower resolution, which can create pixelation in the reflections. Finally, the technique is often limited to the player's car, with the others using a simple (spherical) environment map.
With ray tracing, reflections are perfectly managed, without complicated algorithms, and everything is handled directly by the rendering algorithm. Another advantage is that interreflections, such as the reflection of a side-view mirror on the car body, are extremely difficult to reproduce using rasterization and are handled in exactly the same way as any other reflection.