Graphics Reference
In-Depth Information
associated to a plane of grid cubes is computed all at once, and then the next plane
of grid cubes is loaded into memory.
24.7 Conversion from Polyhedral Meshes
to Implicits
Implicit representations have some important advantages over polyhedral models,
as we've mentioned. It's not only possible to convert from implicit representations
to polyhedral ones, but it's also possible to do the opposite: Given a nice enough
polyhedral mesh, we can find a function F whose level set resembles the mesh.
One class of meshes that is “nice enough” are ones with the property that the
complement of the mesh—the set of all points in 3-space not on the mesh—can
be divided into two sets with the property that each mesh face is on the boundary
of both sets. If the mesh is a pair of cubes, for instance, one of the sets would
be the interiors of both cubes, and the other would be the region exterior to both.
Every face of the cube has the interior on one side and the exterior on the other.
By contrast, a Möbius band is not “nice enough,” because its complement consists
of a single connected set.
When a mesh has this “two set” property we can declare one set to be “posi-
tive” and the other set “negative,” and then define a function F on 3-space by the
rule that F ( P ) is the minimum straight-line distance from P to the mesh, multi-
plied by
1if P is in the “negative” region. This is an implicit function (known as
the signed distance transform of the mesh) whose zero-set is the mesh. Unfor-
tunately, if we represent this function by grid samples, the level-zero isosurface
will not be exactly the original mesh in general, but it will be very similar to it,
provided the grid samples are closely enough spaced.
In general, however, interconverting between implicit and polyhedral models
tends to be lossy, and should probably be avoided.
24.8 Texturing Implicit Models
Because implicitly defined models are generally not equipped with texture coordi-
nates, it's common to use volume textures to texture them. Such volume textures
can be procedurally defined, by a rule like
color =( 0.3, 0.2, 0 )+( 0.2, 0.2, 0 )sin( x 2 + y 2 ) ,
(24.16)
which varies between dark brown and light brown cylindrical rings; an implicit
object textured with such a function gets a (very simple) wood-like appearance.
(Textures like this one, which can be expressed as a function of two coordinates,
are sometimes called projection textures, because one can imagine the texture
being projected from a 2D image out into space [Pea85].) More often, however,
textures for implicitly defined objects are defined explicitly via a volumetric rep-
resentation such as a voxel grid with colors at each voxel.
To avoid the cost of creating and storing all the voxels, while only a few are
used for texturing, one can also use a hierarchical data structure like an oct tree
in which most cells are empty, but ones near the implicit surface are filled in.
This is also a natural structure to use in a painting interface, in which an artist
directly paints texture (color, normals, displacement) onto a surface: In broad
 
 
 
Search WWH ::




Custom Search