Real Time Ray-Tracing is a very promising and efficient video rendering technique that could replace today's reasterization algorithms powered by the GPUs and CPUs.
Ray-tracing Vs Rasterization
In rasterization technique, which is currently applied in video games, all the objects of a 3d scene are made from geometric structures with the basic building block of a triangle. By stringing together vast chains of triangles, you can build spheres, cylinders, blocks, and just about any other structure. And with the tools available to game artists today, you can use triangles to build very detailed objects, including people. In the raster pipeline, these triangles go through a number of steps in which each triangle - one at a time - is analyzed, plotted, colored, lighted, textured, and painted on the screen. The end result is a fully realized 3D scene, and today, some very convincing special effects can be added through the use of "shaders", which are basically special programs written to change the way the render pipeline draws particular pieces of the scene. Today, rasterized video games offload some of the computational work by employing Graphics Processing Units, or GPUs.
Ray-tracing, on the other hand, models a scene in terms of the rays of light that pass from each pixel into the eye of the viewer, rather than on the basis of triangles. The scene still contains many triangles, but this "geometry" is abstracted into data structures that resemble "trees". In other words, you can travel along the trunk of the tree, onto smaller and smaller branches, until finally arriving at the "leaves", which allows the overall complexity of the scene to be broken down into simpler and simpler pieces.
This adds a level of efficiency to the rendering mechanism that can make it very efficient.
Ray-tracing expert Daniel Pohl demonsrtated at last months Intel Developer Forum, his port of the Quake IV video game to Intel's real time ray-tracer. (more information is available here,
PC Perspective Article).
Daniel?s Quake IV demonstration required no video card interaction from the GPU, and instead only used the video card to send the image to the monitor. This is because Daniel?s demo system had eight x86 cores, a configuration that is destined to become mainstream in a few years. And, because the ray-tracing algorithm scales so well with CPU cores, it doesn?t need the assistance of the GPU in order to get the same performance.
According to the PC Perspectives article, Daniel?s game reached almost 100 frames per second at 1024x1024 resolution. Note that as the resolution increases, the computation will spend more time tracing light rays for those additional pixels, and the frame rate will go down. To think that a PC with 8 cores can run a game like Quake IV without the use of a GPU, at high definition resolution and fluid frame rates, is impressive to say the least.
Ray-tracing is a workload that gets near perfect scaling the more cores you add, wrote in his blog Jeffrey Howard, Technology Strategist in Intel?s Microprocessor Technology Labs. Intel has simulated with up to 16 cores, and has already seen more than 15x scaling, he added.
Besides being able to play games without a GPU, ray-tracing enables certain kinds of special effects that are either too complex, too time consuming, or too computational to implement in a rasterized environment. This is because ray-tracing physically models the correct way that light rays travel through a scene, while raster environments simply shade triangles based on approximations derived from vertex, pixel, and texture properties.
Hollywood is already using ray-tracing engines when they make special effects for films and in-game movies. However, it takes hours to fully compute each individual frame. These offline computations are very exact and time consuming, but breakthroughs in the way Intel has designed our ray-tracing engine may allow some of these special effects to happen in real time, while playing a video game.
Intel believes that in a few years, CPUs may even have the core counts and capabilities to enable effects such as Global Illumination - long sought as the Holy Grail of real time rendering.