Solid Representations: An Introduction
Most geometric objects we see every day are solids. That is, they are
geometric objects with their interiors rather than only their surfaces.
Solids can be very simple like a cube or very complicated like a piston
engine. To be processed by computers, solids must have some representations
that can describe the geometry and characteristics completely.
In fact, a good representation should address the following seven issues:
- Domain :
While no representation can describe all possible solids,
a representation should be able to represent a useful
set of geometric objects.
- Unambiguity :
When you see a representation of a solid, you will know what is
being represented without any doubt. An unambiguous
representation is usually referred to as a complete
one.
- Uniqueness :
That is, there is only one way to represent a particular solid.
If a representation is unique, then it is easy to determine if
two solids are identical since one can just compare their
representations.
- Accuracy :
A representation is said accurate if no approximation
is required.
- Validness :
This means a representation should not create any invalid or
impossible solids. More precisely, a representation will not
represent an object that does not correspond to a solid.
- Closure :
Solids will be transformed and used with other operations such
as union and intersection. "Closure" means that
transforming valid solids always yields valid solids.
- Compactness and Efficiency :
A good representation should be compact enough for saving space
and allow for efficient algorithms to determine desired
physical characteristics.
These issues may be contradictory with each other. For efficiency purpose,
a curvilinear solid may be approximated by a polyhedron. In this case,
the curvilinear nature is approximated with polygons. There exist many
efficient and robust algorithms for handling polyhedra; however, accuracy may
not be maintained in the process of approximation. For example, given two
curvilinear solids that are tangent to each other, this tangency may disappear
after converting to a polyhedron.
Problems occur even for the polyhedra world. Many graphics APIs such as
PHIGS PLUS and OpenGL have builtin data structures for representing
polyhedra; but, these representations could generate invalid solids.
There are representations that can always represent valid solids; but, these
representations are in general more complex than those available in graphics
APIs.
In summary, designing representations for solids is a difficult job and
compromises are often necessary. This course will only introduce to you
wireframes, boundary representations and constructive
solid geometry.