3D Object Representations • Points • Solids o Range image o Voxels o Point cloud o BSP tree Parametric & Implicit o CSG o Sweep Surfaces • Surfaces o Polygonal mesh Adam Finkelstein & Tim Weyrich o Subdivision • High-level structures Princeton University o Parametric o Scene graph o Implicit o Application specific COS 426, Spring 2008
1 2
Surfaces Parametric Surfaces • What makes a good surface representation? • Boundary defined by parametric functions:
o Accurate o x = fx(u,v) o Concise o y = fy(u,v) o Intuitive specification o z = fz(u,v) o Local support y o Affine invariant Parametric functions v define mapping from o Arbitrary topology (u,v) to (x,y,z): v o Guaranteed continuity o Natural parameterization x o Efficient display u u o Efficient intersections z
H&B Figure 10.46 FvDFH Figure 11.42
3 4
Parametric Surfaces Parametric Surfaces • Boundary defined by parametric functions: • Example: surface of revolution
o x = fx(u,v) o Take a curve and rotate it about an axis
o y = fy(u,v)
o z = fz(u,v)
• Example: ellipsoid
H&B Figure 10.10 Demetri Terzopoulos
5 6 Parametric Surfaces Parametric Surfaces • Example: swept surface • Example: swept surface o Sweep one curve along path of another curve o Making sea shells
Demetri Terzopoulos Fowler
7 8
Parametric Surfaces Piecewise Polynomial Parametric Surfaces • How do we describe arbitrary smooth surfaces • Surface is partitioned into parametric patches: with parametric functions?
Same ideas as parametric splines! H&B Figure 10.46 Watt Figure 6.25
9 10
Parametric Patches Parametric Patches • Each patch is defined by blending control points • Point Q(u,v) on the patch is the tensor product of parametric curves defined by the control points
Q(u,v)? Q(0,1) Q(1,1)
Q(0,0)
Q(1,0)
Same ideas as parametric curves! FvDFH Figure 11.44 Watt Figure 6.21
11 12 Parametric Patches Parametric Patches • Point Q(u,v) on the patch is the tensor product of • Point Q(u,v) on the patch is the tensor product of parametric curves defined by the control points parametric curves defined by the control points
Q(0,1) Q(0,1) Q(1,1) Q(1,1)
u=0.4 u=0.4 Q(0,0) Q(0,0)
Q(1,0) Q(1,0)
Watt Figure 6.21 Watt Figure 6.21
13 14
Parametric Patches Parametric Patches • Point Q(u,v) on the patch is the tensor product of • Point Q(u,v) on the patch is the tensor product of parametric curves defined by the control points parametric curves defined by the control points
Q(u,v) Q(0,1) Q(0,1) Q(1,1) Q(1,1)
u=0.4 u=0.4 v=0.5 u=0.4 u=0.4 Q(0,0) Q(0,0)
Q(1,0) Q(1,0)
Watt Figure 6.21 Watt Figure 6.21
15 16
Parametric Bicubic Patches B-Spline Patches Point Q(u,v) on any patch is defined by combining control points with polynomial blending functions:
Where M is a matrix describing the blending functions for a parametric cubic curve (e.g., Bezier, B-spline, etc.) Watt Figure 6.28
17 18 Bezier Patches Bezier Patches • Properties: o Interpolates four corner points o Convex hull o Local control
FvDFH Figure 11.42 Watt Figure 6.22
19 20
Bezier Surfaces Bezier Surfaces
• Continuity constraints are similar to the ones for • C0 continuity requires aligning boundary curves Bezier splines
FvDFH Figure 11.43 Watt Figure 6.26a
21 22
Bezier Surfaces B-Spline Patches
• C1 continuity requires aligning boundary curves and derivatives
Watt Figure 6.26b Watt Figure 6.28
23 24 Parametric Surfaces 3D Object Representations • Advantages: • Points • Solids o Easy to enumerate points on surface o Range image o Voxels o Possible to describe complex shapes o Point cloud o BSP tree o CSG • Disadvantages: o Sweep o Control mesh must be quadrilaterals • Surfaces o Continuity constraints difficult to maintain o Polygonal mesh o Hard to find intersections o Subdivision • High-level structures o Parametric o Scene graph o Implicit o Application specific
25 26
Implicit Surfaces Implicit Surfaces • Represent surface with function • Surface defined implicitly by function over all space
Kazhdan Kazhdan
27 28
Implicit Surfaces Implicit Surfaces • Surface defined implicitly by function: • Normals defined by partial derivatives o f (x, y, z) = 0 (on surface) o normal(x, y, z) = (df/dx, df/dy, df/dz) o f (x, y, z) < 0 (inside) o f (x, y, z) > 0 (outside)
f(x,y) = 0 on curve
Normals Tangents Curvatures f(x,y) < 0 inside
f(x,y) > 0 outside Turk Bloomenthal
29 30 Implicit Surface Properties Implicit Surface Properties (1) Efficient check for whether point is inside (2) Efficient surface intersections o Evaluate f(x,y,z) to see if point is inside/outside/on o Substitute to find intersections
Ray: P = P0 + tV Sphere: |P - O|2 - r 2 = 0
Substituting for P, we get: ! |P + tV - O|2 - r 2 = 0 P" 0 P V Solve quadratic equation: r 2 ! at + bt + c = 0 P O where: 0 ! a = 1
! b = 2 V • (P0 - O) H&B Figure 10.10 2 2 ! c = |P0 - C| - r = 0
31 32
Implicit Surface Properties Implicit Surface Properties (3) Efficient boolean operations (CSG) (4) Efficient topology changes o Union, difference, intersect o Surface is not represented explicitly!
Union Difference
Bloomenthal Bourke
33 34
Implicit Surface Properties Comparison to Parametric Surfaces (4) Efficient topology changes • Implicit o Surface is not represented explicitly! o Efficient intersections & topology changes • Parametric o Efficient “marching” along surface & rendering
Bloomenthal Bloomenthal
35 36 Implicit Surface Representations Implicit Surface Representations • How do we define implicit function? • How do we define implicit function? o Algebraics ! Algebraics o Blobby models o Blobby models o Skeletons o Skeletons o Procedural o Procedural o Samples o Samples o Variational o Variational
37 38
Algebraic Surfaces Algebraic Surfaces • Implicit function is polynomial • Most common form: quadrics o f(x,y,z)=axd+byd+czd+dxd-1y+dxd-1z +dyd-1x+... o f(x,y,z)=ax2+by2+cz2+2dxy+2eyz+2fxz+2gx+2hy+2jz+k
• Examples o Sphere o Ellipsoid o Torus o Paraboloid o Hyperboloid
H&B Figure 10.10 Menon
39 40
Algebraic Surfaces Algebraic Surfaces • Higher degree algebraics • Function extends to infinity o Must trim to get desired patch (this is difficult!)
Cubic Quartic Degree six
41 42 Algebraic Surfaces Algebraic Surfaces • Equivalent parametric surface • Intersection o Tensor product patch of degree m and n curves o Intersection of degree m and n algebraic surfaces yields algebraic function with degree 2mn yields curve with degree mn
Bicubic patch has degree 18! Intersection of bicubic patches has degree 324!
43 44
Implicit Surface Representations Blobby Models • How do we define implicit function? • Implicit function is sum of spherical basis functions o Algebraics ! Blobby models o Skeletons o Procedural o Samples o Variational
45 46
Blobby Models Blobby Models • Sum of two blobs • Sum of four blobs
Turk Turk
47 48 Blobby Models: radial basis funcs Blobby Model of Face • Blobby molecules
• Meta balls
• Soft objects
Bourke
49 50
Blobby Model of Face Blobby Model of Face
51 52
Blobby Model of Head Blobby Model of Head
53 54 Blobby Model of Head Blobby Models
Objects resulting from CSG of implicit soft objects and other primitives
Menon
55 56
Implicit Surface Representations Skeletons • How do we define implicit function? • Bulge problem o Algebraics o Blobby models ! Skeletons o Procedural o Samples o Variational
57 58
Skeletons Skeletons • Bulge problem • Convolution surfaces
Bloomenthal
59 60 Implicit Surface Representations Procedural Implicits • How do we define implicit function? • f(x,y,z) is result of procedure o Algebraics o Example: Mandelbrot set o Blobby models o Skeletons ! Procedural o Samples o Variational
H&B Figure 10.100
61 62
Implicit Surface Representations Sampled Functions • How do we define implicit function? • Most common example: voxels o Algebraics o Interpolate samples stored on regular grid o Blobby models o Isosurface at f(x,y,z) =0 defines surface o Skeletons o Procedural 2.3 1.7 0.9 0.2 ! Samples o Variational 1.2 0.4 0.1 -0.8
0.3 -0.5 -0.7 -1.4
0.2 -0.9 -1.7 -2.5
63 64
Sampled Functions Implicit Surface Representations • Acquired from simulations or scans • How do we define implicit function? o Algebraics o Blobby models o Skeletons o Procedural o Samples ! Variational
Airflow Inside a Thunderstorm Visible Human (Bob Wilhelmson, (National Library of Medicine) University of Illinois at Urbana-Champaign)
65 66 Variational Implicit Surfaces Example Implicit Surface
Turk Turk
67 68
Implicit Surface Summary Summary • Advantages: o Easy to test if point is on surface o Easy to compute intersections/unions/differences Feature Polygonal Mesh Parametric Surface Subdivision Surface o Easy to handle topological changes Implicit Surface Accurate! No! Yes! Yes! Yes • Disadvantages: Concise! No! Yes! Yes! Yes o Indirect specification of surface Intuitive specification! No! No! Yes! No o Hard to describe sharp features Local support! Yes! No! Yes! Yes Affine invariant! Yes! Yes! Yes! Yes o Hard to enumerate points on surface Arbitrary topology! Yes! No! No! Yes » Slow rendering Guaranteed continuity ! No! Yes! Yes! Yes Natural parameterization! No! No! Yes! No! Efficient display! Yes! No! Yes! Yes Efficient intersections! No! Yes! No! No
69 70