Graphics Reference
In-Depth Information
illumination computation became extremely blurry in these areas simply because
the model had too few vertices.
There are two common solutions to this problem, other than simply
increasing the tessellation everywhere. The first is to subdivide triangles of the
mesh during computation of the function that is to be stored at vertices [Hec90],
until the approximation error across each triangle is small enough. The second is
to define an invertible and approximately conformal mapping from the surface of
the mesh into texture space, and encode the function values in a texture map. The
latter is more efficient for functions with high variance where it is hard to predict
the locations where changes occur a priori. Today this approach is more popular
than the per-vertex computation. For example, many games rely on light maps,
which store precomputed global illumination for static scenes in textures. Com-
bined with real-time direct illumination, these provide a reasonable approximation
of true global illumination if few objects move within the scene. Traditional light
maps encoded only the magnitude, but not direction, of incident light at a sur-
face. This has since been extended to encode directionality in various bases [PRT,
AtiHL2]. Texture-space diffusion, as seen in d'Eon et al.'s subsurface scattering
work [dLE07], is an example of dynamic data encoded in texture space.
14.5.2 Implicit Surfaces
Some geometric primitives are conveniently described by simple equations and
correspond closely to shapes we encounter in the world around us. In 2D, these
include lines, line segments, arcs of ellipses (including full circles), rectangles,
trigonometric expressions such as sine waves, and low-order polynomial curves.
In 3D, these include spheres, cylinders, boxes, planes, trigonometric expressions,
quadrics, and other low-order polynomial surfaces.
Simple primitives can be represented via implicit equations or explicit para-
metric equations, as described in Chapter 7. We'll recall some of those ideas
briefly here.
An implicit equation is a test function f : R 3
R that can applied to a
point. The function classifies points in space: For any point P , either f ( P )
>
0,
f ( P )
0, or f ( P )= 0. Those with f ( P )= 0 are said to constitute the implicit
surface defined by f ; by convention, those with f ( P )
<
0 are said to be inside the
surface, and the remainder are outside. Such a surface is an instance of a level set
(for level 0) and an isocontour (for value 0) of the function.
As an example, consider a surface defined by the plane through point Q with
normal n . A suitable test function is
<
f : R 3
R : P
( P
Q )
·
n .
(14.3)
For every point P in the plane, f ( P )= 0. For points on the side containing Q + n ,
f ( P )
0.
An explicit equation or parametric equation defines a generator function for
points in the plane in terms of scalar parameters. We can use such a function to
synthesize points on the surface. The explicit form for a plane is
>
0; for points on the other side, f ( P )
<
R 3 :( u , v )
g : R
×
R
u h + v k + Q ,
(14.4)
where h and k are two vectors in the plane that are linearly independent. For any
particular pair of numbers u and v , the point g ( u , v ) lies on the plane. Chapter 7
 
 
Search WWH ::




Custom Search