i
i
i
i
i
i
i
i
504 10. Image-Based Effects
Figure 10.43. Fog and water rendered using volume rendering techniques in conjunction
with fluid simulation on the GPU. (Image on left from “Hellgate: London courtesy of
Flagship Studios, Inc., image on right courtesy of NVIDIA Corporation [205].)
10.16.1 Related Work
A concept related to using layers of textures for volume rendering method
is volumetric textures, which are volume descriptions that are represented
by layers of two-dimensional, semitransparent textures [861]. Like two-
dimensional textures, volumetric textures can be made to flow along the
surface. They are good for complex surfaces, such as landscape details,
organic tissues, and fuzzy or hairy objects.
For example, Lengyel [764, 765] uses a set of eight textures to represent
fur on a surface. Each texture represents a slice through a set of hairs at a
given distance from the surface. The model is rendered eight times, with
a vertex shader program moving each triangle slightly outwards along its
vertex normals each time. In this way, each successive model depicts a dif-
ferent height above the surface. Nested models created this way are called
shells. This rendering technique falls apart along the silhouette edges, as
the hairs break up into dots as the layers spread out. To hide this artifact,
the fur is also represented by a different hair texture applied on fins gen-
erated along the silhouette edges. See Figure 10.44. Also see Figure 14.22
on page 682 and Figure 15.1 on page 699.
The idea of silhouette fin extrusion can be used to create visual com-
plexity for other types of models. For example, Kharlamov et al. [648]
use fins and relief mapping to provide simple tree meshes with complex
silhouettes.
The introduction of the geometry shader made it possible to actually
extrude shaded polyline hair for surfaces with fur. This technique was used
in Lost Planet [1025]. A surface is rendered and values are saved at each
pixel: fur color, length, and angle. The geometry shader then processes
i
i
i
i
i
i
i
i
10.16. Volume Rendering 505
Figure 10.44. Fur using volumetric texturing. The model is rendered eight times, with
the surface expanding outwards a small amount each pass. On the left is the result
of the eight passes. Note the hair breakup along the silhouettes. In the middle, fin
rendering is shown. On the right is the final rendering, using both fins and shells. (Im-
ages from NVIDIA SDK 10 [945] sample “Fur—Shells and Fins” courtesy of NVIDIA
Corporation)
this image, turning each pixel into a semitransparent polyline. By creating
one hair per pixel covered, level of detail is automatically maintained. The
fur is rendered in two passes: Fur pointing down in screen space is rendered
first, sorted from the bottom to the top of the screen. In this way, blending
is performed correctly, back to front. In the second pass, the rest of the
fur pointing up is rendered top to bottom, again blending correctly. As the
GPU evolves, new techniques become possible and profitable.
Further Reading and Resources
For an overview of early, seminal image-based rendering research, see
Lengyel’s article [763], available on the web. The book Advanced Graph-
ics Programming Using OpenGL [849] provides more details on the use of
sprites and billboards, as well as volume rendering techniques. For a com-
prehensive guide to the field of volume rendering, see Real-Time Volume
Graphics by Engel et al. [305].
There are many articles on rendering natural phenomena using image-
based techniques. The Virtual Terrain Project [1302] has solid summaries
of research and resources for modeling and rendering many types of natural
objects and phenomena, including clouds and trees. Tatarchuk’s presenta-
tion [1246] is a tour de force, a detailed case study focused on simulating
rain and its many related effects.
i
i
i
i
i
i
i
i
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset