Solid Modeling: Principles and Practice. Chapter 12

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Solid Modeling

A. What is Solid Modeling?


1. A way to represent, generate, and
manipulate solid objects.
2. Necessary for many applications where
objects must be maintained as solids. e.g.
finite element analysis, computer aided
design and machining (CAD/CAM), mass
property determination, refraction.

B. Sources:

Foley, van Dam, et al. Computer Graphics


Principles and Practice. Chapter 12.

Hoffmann Geometric and Solid Modeling.


Chapters 2 and 3.
Desired Properties of Solid Modeling Systems

A. Domain – system can represent all objects


desired and perform all operations desired.
B. Closure – operations on valid objects
produce valid objects.
C. Unambiguous – one representation defines
one object.
D. Validity – only valid objects are stored.
E. Creation – easy to create new objects.
F. Accuracy – representation and operations
maintain the object close to exactly.
G. Efficiency – operations are quick and easy to
perform.
H. Compactness – representation does not use
unnecessary space
I. Uniqueness – an object can only be
represented in one way.
Key Solid Modeling Operations

A. Local Operations
1. Only affect one (local) portion of the solid.
2. May need to ensure validity – some local
operations have global consequences.
3. Example operations
a. Beveling
b. Rounding
c. Filleting
d. Face extrusion

B. Global Operations
1. Affect the overall solid.
2. Example operations
a. Translation
b. Rotation
c. Scaling
d. Operation undo
e. Offset surface
f. Boolean operations
Boolean Operations

A. 3 main operations, each takes two valid


solids as input and returns one new valid
solid.
B. Union, Intersection, and Difference
(sometimes Complement is allowed).
C. Natural way of design.
1. Union – glue/weld operation
2. Difference – cut/drill operation
D. Basic Boolean operations can produce
invalid results. e.g. hanging vertex/face
E. Regularized Boolean Operations are used
instead.
1. Perform “normal” Boolean operation.
2. Take interior of the result.
3. Add the boundary of the interior.
F. Regularized Boolean operations are a
conceptual way to understand, not usually
implemented that way.
Representations

A. Numerous potential representations – all


have various benefits/drawbacks.
B. Often, conversions between representations
and hybrid representations are needed or are
useful.
Primitive Instancing and Sweeps

A. Primitive Instancing
1. A certain (limited) set of predefined
primitives is allowed.
2. Each primitive may be governed by
parameters.
3. Set of operations is minimal (e.g. just
translation, scale, rotation).
4. Useful when domain is limited – e.g.
furniture placement in home design.

B. Sweeps
1. Start with a 2D “slice” or a 3D “tool”.
2. Define a path to sweep along.
3. The volume traced out by moving the slice
or tool along the path defines the solid.
4. Suffers from many practical problems –
few operations, possible invalid objects.
5. Common examples are solid extrusion,
rotational sweep, CAM tool paths.
CSG

A. Constructive Solid Geometry.


B. Direct representation based on Boolean
combinations.
C. Begin with simple, easy to define primitives,
often algebraically defined.
D. Solid is stored as a tree of Boolean
operations. Primitives are at the leaves, the
interior nodes are Boolean operations.
E. Transformations may be stored as unary
nodes in the tree.
F. Easy to understand, modify, design, and
perform certain queries.
G. Especially useful in ray-tracing applications.
Spatial Decomposition

A. Decompose space into simple, easy to


represent parts.
B. Uniform subdivision
1. Space divided into a regularly spaced grid,
each voxel is either in or out.
2. Useful when data is given that way – e.g.
MRI data
C. Octree
1. Analogous to quadtrees in 2D.
2. Hierarchical tree is created – each node of
the tree corresponds to a region of space.
3. Each node is either in, out, or both.
4. Nodes which are both have 8 children,
representing the 8 suboctants of that
region.
D. Binary Space Partition
1. Hierarchical binary tree which subdivides
space.
2. Interior nodes are associated with a plane,
children describe each side of plane
3. Leaf nodes are either “in” or “out”

You might also like