The RealWorldz project allowed us to push the state-of-the-art for controlling graphics hardware through a high-level shading language. RealWorldz was demonstrated at SIGGRAPH 2004, running at interactive rates on 3Dlabs Wildcat Realizm hardware with all the features described in this chapter. Future hardware will make possible improved frame rates and increasingly complex effects.
Textures are heavily used in RealWorldz, but they are used in unique ways as the basis for the mathematics necessary to achieve a variety of effects. They also provide an avenue for the inclusion of artists in the planet design process. A planet may be defined by 50100 megabytes of these basis textures. This data is amplified procedurally at runtime to the point that several terabytes of data would be required to prerender the planet. Every aspect of a planet can be modified, with real-time controls for waves, plants, clouds, atmospheric density, and sea level. Lighting calculations are done per pixel in real time. Planets are rendered with 20 or more shaders, which may have more than a hundred uniform variables. Some of these shaders are several hundred source lines long, yet still run with acceptable performance.
The RealWorldz demo was made possible by the advent of high-performance programmable graphics hardware which has, quite literally, opened up new worlds for us to explore.