Overview of Geometric Modeling
Overview 3D Shape Primitives: Points Vertices. Curves Lines, polylines, curves. Surfaces Triangle meshes, splines, subdivision surfaces, implicit surfaces, particles. Solids
Basic Shapes
Fundamental Shapes
Fundamental Shapes
Fundamental Shapes
Points Very popular primitives for modeling, animation, and rendering.
Points
Points
Curves Lines. Polynomials. Lagrange curves. Hermite curves. Bezier curves. B-Splines. NURBS. Subdivision i i curves.
Polynomials No intuitive insight. Difficult for piecewise smooth curves.
Surfaces Planes Triangle meshes. Tensor-product surfaces. Hermite surface, Bezier surface, B-spline surfaces, NURBS. Non-tensor product surfaces. Sweeping surface, ruling surface, etc. Subdivision surfaces. Implicit surfaces. Particle systems.
Plane and Intersection
Plane Equations General plane equation ax+by+cz+d=0 Normal of the plane n=[a, b, c]
Quadratic Surfaces Implicit representation =0 Sphere Ellipsoid
Tensor Product Surface From curves to surfaces A simple curve example (Bezier) where u [0,1] Consider p i is a curve p i (v) In particular, if p i is also a bezier curve, where v [0,1]
From curve to surface Then we have
Bezier Surface
B-Splines Surface B-Spline curves c( u) n i Tensor product B-splines pibi k u 0, ( ) where u [0,1], and v [0,1] Can we get NURBS surface this way?
B-Splines Surface
Tensor Product Properties Inherit from their curve generators. Continuity across boundaries It Interpolation lti and approximation tools.
NURBS Surface
Triangular Surfaces
Triangular Bezier Surface
Barycentric Coordinates
Surface of Revolution
Surface of Revolution Geometric construction Specify a planar curve profile on y-z plane Rotate this profile with respect to z-axis Procedure-based model
Sweeping Surface
Sweeping Surface Surface of revolution is a special case of a sweeping surface. Idea: a profile curve and a trajectory curve. Move a profile curve along a trajectory curve to generate a sweeping surface.
Geometric Modeling Techniques Control Point Manipulation. Weight Modification. Knot tv Vector Variation. Dynamic Modeling
Control Point Manipulation
Weight Modification
Knot Vector Variation
Dynamic Modeling
Basic idea of subdivision Start from an initial control polygon. Recursively refine it by some rules. A smooth surface (curve) in the limit. it
Chaikin s corner cutting scheme
Chaikin s corner cutting scheme
Chaikin s corner cutting scheme
Chaikin s corner cutting scheme
Other modeling primitives Spline patches. Polygonal meshes.
Spline patches Advantages: High level control. Compact analytical representations. Disadvantages: Difficult to maintain and manage inter-patch smoothness constraints. Expensive trimming needed to model features. Slow rendering for large models.
Polygonal meshes Advantages: Very general. Can describe very fine detail accurately. Direct hardware implementation. Disadvantages: Heavy weight representation. A simplification algorithm is always needed. d
Subdivision schemes Advantages: Arbitrary topology. Level of fd detail. Unified representation. Disadvantages: Difficult for analysis of properties like smoothness and continuity.
Catmull-Clark Scheme Face point: the average of all the points defining the old face. Edge point: the average of two old vertices and two new face points of the faces adjacent to the edge. Vertex point: ( F 2E ( n 3) V ) / n F: the average of the new face points of all faces adjacent to the old vertex. E: the average of the midpoints of all adjacent edges. V: the old vertex.
Catmull-Clark Clark Scheme Initial mesh Step 1 Step 2 Limit surface
Catmull-Clark Cla Subdivision ision
Midedge scheme
Midedge scheme (a) (b) (c) (d)
Loop Scheme Rules 1/8 B B 3/8 3/8 1-nB B 1/8 B B B = 3/8n, for n>3 B = 3/16, for n=3
Loop Scheme Example
Butterfly Subdivision -w 0.5 -w 2w 2w -w 0.5 -w
Butterfly Scheme
Piecewise ise Smooth Subdivision ision (a) (b) (c) (d) Hoppe et al. Siggraph 94
Hybrid Subdivision i i Scheme (a) (b) (c) (d) DeRose et al. Siggraph 98
Geri s Game DeRose et al. Siggraph 98
Subdivision Solids
Implicit Surfaces
Design using Blobs None of these parameters allow the designer to specify exactly where the surface is located. Ad designer has only indirect control over the shape of a blobby implicit surface. Blobby models facilitate the design of smooth, complex, organic- appearing shapes.
Skeletal Design Global and local control in three separate ways: Defining or manipulating of the skeleton; Defining or adjusting those implicit functions defined for each skeletal element; Defining a blending function to weight the individual implicit functions.
Example - Kitchen Fiction
Solid Modeling Constructive Solid Geometry (CSG) Boundary representation Cell decomposition
Implicit it Functions Functions of the form f(x,y,z) <= 0 can be used to describe solid. Two types of implicit solid: constructive solid geometry (CSG) blobby models
Constructive ti Solid Geometry CSG builds solid models by combining primitive (implicit) objects with Boolean operators Objects: spheres, cubes, cylinders, etc. Operators: addition, i intersection, i union, etc. Assembled into CSG tree: internal nodes = operators leaves = objects
Constructive Solid Geometry
Constructive Solid Geometry Bottom-up evaluation of binary tree. Compute B-rep of the two child nodes to produce an intermediate result (Difficult and complex). Implicit models are numerically more stable than B-reps to represent those intermediate nodes.
Example BlobTree
Boundary Representations Represent only the boundary Polygonal, analytic and subdivision surfaces the most popular Polygon-based surfaces require special data structures, such as winged-edge: Baumgart (`75) quad-edge: Guibas and Stolfi (`85)
Cell Decompositions Objects expressed as cells or polyhedra attached to each other Voxel-based models very popular data arranged on a grid simple yet powerful and general intuitive and natural representation can represent details easily mature rendering algorithms
Cell Decompositions Voxel-based modeling systems: wax-like objects: Galyean and Hughes (`91) detailed objects: Wang and Kaufman (`95) deformable objects: Gibson (`95, `97, `99)