CS 285: SOLID MODELING
Lecture #7 -- We, Feb. 8, 2006.
PREVIOUS < - -
- - > CS 285 HOME < - -
- - > CURRENT < - -
- - > NEXT
Warm-up Exercise: Consider making Escher tiles on Klein's genus-3 quartic surface.
What are the additional difficulties that you would encounter,
beyond what has already been done in the "Escher-Sphere Construction Kit."

Still an open question: -- Why does an ordinary wall mirror reverse left and right, but not up and down ?
Hint: Consider the mathematical transformation ( in the
computer graphics sense ), that corresponds to mirroring on a plane.
Representations for Solid Modeling
Design-Level Representations
- (Parameterized) Primitives
Cubes, spheres, cylinders, cones, tori, ...
(semi-)regular polyhedra), ...
Look at the
SLIDE Language.
-
CSG -- Constructive Solid Geometry
Combine solids with regularized boolean operations
-
B-rep, Boundary Representation
The surface of the solid described as a collection of planar polygons
and/or curved (spline) patches.
Subdivision surfaces ! (example: K3GQ48param.slf)
-
Voxels
Partially occupied array of solid volume elements (Key issue: efficiency).
- Instancing
--> This is the primary way to enforce symmetry in a design.
Atoms (an extreme example of instancing) for
Nanotech Machines (
Differential Gear,
Motion Controller,
Atom Pump )
Parametrized primitives, previously defined objects, ...
- Parameterized objects, "auto-shapes"
2D: drafting symbols: n-gons, stars, "banners", ...
(available in most drawing programs).
3D: gear wheels, ...
(often custom-built, not yet readily available).
- Features for manufacturing
Through-holes, sink-holes, pockets, slots, shoulder pockets, ...
(No consistent nomenclature or definitions; should also be parameterized).
- Procedural generation
Spline patches -- defined by their type, control points, ...
Sweeps -- defined by cross section and sweep path.
L-systems -- parameterized instantiation based on expression trees.
Wavy surface of the sea, fractal mountains, ...
- Procedural shape modification
Edge bevelling or rounding.
Subdivision -- procedural smoothing, related to splines.
Offset surfaces -- turn a thin mathematical surface into a thick, physically realizable sheet.
-
Structure of a design
Scene hierarchy (logical/functional).
Dynamic grouping during editing.
Constraints -- (e.g., Pro-E.)
-
The SLIDE Language
combines many of the above representations.
Many of the statements that have to do with rendering
can be ignored for CS285.
How to convert between these different representations ?
If you could have only ONE of the above paradigms -- which one would you choose ?
Data Structures for CAD/Graphics Systems (Overview)
-
Non-hierarchical Boundary Representations
- Winged-edge data structure for orientable 2-manifolds (Baumgart)
- -- every edge connects to exactly two polygons, one on each side.
- Radial-edge data structure for non-manifolds (Weiler, UniGrafix)
- -- edges can connect to arbitrarily many polygons.
- Half-edge data structure (e.g. http://www.flipcode.com/articles/article_halfedge.shtml)
- -- a lean and regular variant for 2-manifolds..
- Quad-edge data structure (Guibas and Stolfi)
- -- a dual/symmetric treatment of vertices and faces.
- Polygon soup ( .STL)
- -- not really a "data structure" -- but useful for "display lists"
- -- or for sending a part description to an RP machine.
- Cellular/Simplex Decompositions
-- the 3D equivalent of a triangulated 2D polygon.
-- finite-element meshes for structural analysis.
-- (possible project: generate these directly in SLIDE for sound analysis, e.g., bells).
-
Voxel-based Representations
-- for 3D raster data from ultra-sound or Magnetic Resonance Imaging (MRI).
-- also important as a general spatial reference frame when data is unevenly distributed.
"Tabulates" spatial occupancy. For efficient encoding use:
- Run-length encoding
- Octrees
- Wavelet-based (kD-tree-based) generalizations
- Adaptively Sampled Distance Fields
- An indirect representation of a B-rep by a judiciously placed set of sample points,
each recording the distance to the closest surface point.
- Hierarchical Combinations of the above with Instancing and with Boolean Operations
Which is the right one for what purpose ?
Due Wednesday 2/15/2006.
PREVIOUS < - -
- - > CS 285 HOME < - -
- - > CURRENT < - -
- - > NEXT
Page Editor:
Carlo H. Séquin