Interactive Ray Tracer for Cell Broadband Engine
A proof-of-technology visual demonstration of the graphics power of the Cell Broadband Engine for realistic real-time animation on the Playstation 3 or QS21 platforms.
Date Posted: August 29, 2007
|
|
 |
 |
 |
 |
|
 |  Ray-traced reflections are optically correct. Objects self-reflect and reflect other objects correctly. Games today use reflection maps that texture-map static images onto the objects, producing the illusion of reflections. If you look carefully at these objects they don't self-reflect or reflect other objects in the scene.
Ray-traced refractions are optically correct. Light bends through transparent surfaces according to physical rules that include the index of refraction. Games today simply depth-sort and render a transparent object with a simple blend factor in order to pick up some of the underlying color. Other tricks used by games include texture look-ups into an environment map with texture coordinates that are bent to approximate the index of refraction. With this technique, only the environment map texture is visible through the transparent surface, not other objects.
Lighting in Interactive Ray Tracer is evaluated at every sample. Because we multi-sample, this calculation can be computed four to twenty times for each pixel in the finished frame. The lighting calculations include generating a normal for each sample through interpolation (Phong shading) followed by a Phong lighting model evaluation. This method produces clean, specular highlights and smooth shading across even large polygons. Because it's computed for each sample, every frame it is truly dynamic: You can move the light source and see the results immediately. In games today, much of the lighting is pre-computed and baked into textures that are applied at run time. This method results in fixed lighting that doesn't vary with the eye point and can't be changed dynamically. Specular highlights don't move and lights can't be repositioned. The next step up from this in games is evaluating the light at each vertex of a polygon and then Gouraud-shading (interpolating) the resulting colors across the surface. In this case, the lighting is dynamic, but specular highlights appear and disappear as the eye or object moves. This is because it's sampled from only three locations per triangle, instead of every pixel, which creates under-sampling artifacts.
Shadows are another important component of image quality. Ray-tracing produces correct dynamic shadows for every object in the scene every frame. Games once again pre-compute and bake the shadows into the textures which results in a static scene. Simple character shadows are projected onto the floor plane dynamically but no global lighting or shadow effects are computed at run time.
Global illumination is the reflected light transferred from surface to surface in a scene. Game systems today can't compute such effects because they process only one polygon at a time and therefore are unaware of how each polygon relates to the others in a scene. Again, such effects must be pre-computed and baked, which results in static lighting and, more importantly, the loss of the global illumination effect from moving objects. Ray tracing, on the other hand, knows the relationship of polygons in the scene and therefore can dynamically compute these effects at run time.
The Enzo model used in this demonstration comprises over 300,000 triangles. Typical game models are in the range of 10,000 to 20,000 triangles. We wanted to show a production class object in this demonstration that is more typical of the print and film industry.
| | |
 |  Wikipedia might be a good resource for researching ray tracing terms and concepts.
| | |
 |  The Interactive Ray Tracer scales very well across both SPEs and clusters of IBM QS20 blades. These IBM QS20 performance results were measured using 1080p images with reflection, refraction, shadows, and 4x supersampling.
Cell Broadband Engine and Cell/B.E. are trademarks of Sony Computer Entertainment, Inc., in the United States, other countries, or both and are used under license therefrom.
developerWorks is a trademark of IBM Corporation in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
| |
|
|
 |
|
View screenshots:
 |
| |