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
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
, resulting in ten million potential
microtriangles per input triangle (approximately 1cm wide microtriangles).
The maximum
is achieved and
needed for the left quarter of the image, where some facets can still
be seen. Storing all
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