Results

We evaluated our system on models with a large number of displaced triangles. Additionally, we wanted to verify the robustness of the algorithm under fairly extreme displacements. All scenes were rendered in parallel on an SGI O2K with 250 MHZ R1000K processors using a fairly standard Monte Carlo path tracer in order to capture shadows and indirect lighting effects.

The image in Figure 1 shows an icosahedron with high frequency displacements of roughly half the sphere radius. Without a smoothing displacement, the outline of the icosahedron would be visually obvious.

The second example is a piece of pottery containing 4680 initial triangles. The final displaced pottery is shown in Figure 9. For this scene $ N$ was fixed at 80. The 4680 initial triangles would have generated 30 million triangles if the geometry had been represented explicitly. Note that instancing would not have helped here. The image shows global illumination and shadowing effects on the grooves that would not have been possible either with bump mapping in a ray tracer, or without a global illumination framework. The 640x480 image was rendered using 256 paths of length 4 per pixel, and took roughly 24 CPU hours to run.

The final example is a small section of terrain data consisting of roughly 55,000 thirty meter cells. The resulting 110,000 triangles have been displacement mapped with an expensive displacement function based on several uses of the turbulence function[11] and is shown in Figure 10. The viewpoint is set near the ground, roughly at eye height for a person. The amount of subdivision was determined adaptively for each triangle. Because of the view, the foreground must be subdivided a large amount. We set $ N_{\rm max}=3162$, resulting in ten million potential microtriangles per input triangle (approximately 1cm wide microtriangles). The maximum $ N$ is achieved and needed for the left quarter of the image, where some facets can still be seen. Storing all $ 10^{12}$ triangles would have required about 100 terabytes. Our implementation requires roughly 10 megabytes for the terrain data. The 1200x900 image was generated with 36 paths of length 2 per pixel. Total CPU time was 43 hours. We believe that optimizing the algorithm and displacement function could reduce this time, as could changing the assumption in the ray tracer that object intersections are cheap, so testing objects multiple times is acceptable.

Comments: Brian Smits
2000-06-02