Graphics Reference
In-Depth Information
Figure 14.21: The game Minecraft models the entire world with 1 m 3 voxels, enabling
efficient, real-time illumination, simulation, and rendering for fully dynamic Earth-scale
worlds.
instancing. Geometry instancing is often used in less rigid scene representations
to efficiently represent many similar elements. For example, a forest can be mod-
eled with only a handful of individual tree models and a large number of tree
locations and reference frames. One tree in the forest model then only requires
storage for a pointer to a tree model and a coordinate frame, rather than for a
unique tree geometry. Voxel scenes with relatively large-scale voxels can use a
similar scheme to present higher apparent resolution than the voxel grid without
the cost of modeling explicit fine-scale geometry for every voxel.
Figure 14.22 demonstrates a more refined use of voxels for efficient rendering
of a high-resolution, static scene. Ray tracing through voxel grids is extremely
efficient because the ray-surface intersections are trivial and the grid provides
good spatial locality in the memory system. A tree data structure allows efficient
encoding of large empty regions. Note that even when viewed up close, the voxels
do not appear blocky. This image was rendered with a technique by Laine and
Karras [LK10] that stores a surface plane along with shading information at each
voxel, allowing surface reconstruction at apparently higher resolution along planes
other than the grid itself. Several such techniques exist; one commonly used for
fluid simulation is marching cubes [LC87] (and marching tetrahedrons [CP98]),
which, given only density information stored in voxels, reconstructs some simple
geometry in each voxel to produce a relatively smooth mesh (see Section 24.6).
Figure 14.22: Voxel data cre-
ated by high-resolution surface
displacement, with local shad-
owing precomputed and stored
in the voxel grid. The resolution
is approximately 5 mm through-
out the entire building, including
outer walls that are not visi-
ble from the inside. The total
size of the data in GPU mem-
ory is 2.7 GB. Laine and Kar-
ras's ray caster was able to cast
about 61 million rays per sec-
ond when rendering this scene;
in other words, to render 1M pix-
els at 60 fps by ray tracing in
2010 [LK10]. (Credit: Courtesy
of Samuli Laine and Tero Karras,
© 2010 ACM, Inc. Reprinted by
permission.)
14.7.3 Particle Systems
Liquid or gaseous objects such as smoke, clouds, fire, and water are often mod-
eled as particle systems [Ree83]. A particle system contains a set of individ-
ual particles, each of which can be efficiently simulated as a single point mass.
There may be a large number of particles—say, thousands or millions—that play
a role similar to individual molecules of gas or liquid. However, the simulation
typically contains orders of magnitude fewer particles than a real-world scene
would contain molecules. During rendering, the relatively low particle count is
 
 
Search WWH ::




Custom Search