B-Spline and Subdivision Surfaces
Mirela Ben‐Chen
Images from: 3drender.com & sunflow.sourceforge.net Today
• B‐Spline surfaces – NURBS surfaces
• Subdivision surfaces – Theory – Zoo
• Recent trends – Non linear subdivision – T‐Splines 2 Images from: 3drender.com , sunflow.sourceforge.net , www.tsplines.com Reminder: Bezier & B‐Spline Curves
Bezier Curve
Cubic curve, 4 control points:
Applet (Curves) AlApplet (Bas is fi)functions)
3 Reminder: Bezier & B‐Spline Curves
B‐Splin e Curv e
Decouple number of control points from degree of curve
“Glue” a few degree p Bezier curves, with continuity conditions
Applet (Curve)
4 Reminder: Bezier & B‐Spline Curves
B‐Spline Curve
P P Building blocks: 2 5 P6 P n + 1 control points Pi 1 P P P P 3 4 7 Knot vector U = { u0 , u1 , … , um } 0 The degree p m, n, p satisfy m = n + p -1
Applet (Basis functions) 5 Reminder: Bezier Surfaces
Bezier surface ‐ tensor product surface of Bezier curves
Control points of one curve move along a set of Bezier curves
Applet
6 B‐Spline Surfaces
A collection of Bezier patches, with continuity conditions
Decoupling the degree and the number of control points
7 B‐Spline Surfaces
B‐Splin e sur face ‐ tenso r pr oduct surface of B‐Spline curves
Building blocks:
Control net, m + 1 rows, n + 1 columns: Pij
Knot vectors U = { u0 , u1 , … , uh }, V = { v0 , v1 , … , vk } The degrees p and q for the u and v direc tions
8 Basis Functions
Cubic × Quadratic basis functions:
9 Boundary Knots
In each direction, the B‐spline curve can be closed, clamped or open
Closed Clamped Open
10 Properties
• Non negativity
• Partition of unity
• Affine invariance
11 Properties
• If n = pmp, m = q, U = { 0,…,0,1,…,1} and V = {0,…,0,1,…,1} then
and S(u,v) is a Bezier surface
• S(u,v) is Cp-k continuous in the u direction at a u knot of multiplicity k, and similar for v direction
12 Properties
• Compact support
• Local modification scheme
– Moving Pij affects the surface only in the rectangle
13 Properties
• Local definition – In any rectangle the only non‐zero basis functions are
• Strong convex hull property – If then S(u,v) is in the convex
hull of the control points Pij and
14 Reminder: NURBS Curves
• B‐spline curves cannot represent exactly circles and ellipses
p = 2 p = 3 p = 5 p = 10 • Generalize to rational ppyolynomials
15 Reminder: NURBS Curves
A weight per control point allows to change the influence of a point on the curve, without moving the point
16 NURBS Surfaces
Add a weight for every control point of a B‐ spline surface, and normalize
Is not a tensor product patch
17 NURBS Surface Example
Control net NURBS Surface
wij( ) = 10, wij( ) = 1 18 NURBS Surfaces
19 Problems with NURBS
• A single NURBS patch is either a topological disk, a tube or a torus
• Must use many NURBS patches to model complex geometry
• When deforming a surface made of NURBS patches, cracks arise at the seams
20 Subdivision “Subdivision defines a smooth curve or surface as the limit of a sequence of successive refinements”
21 Subdivision Rules
• How the connectivity changes
• How the ggyeometry changes – Old points – New points
22 Design Goals for Subd Rules
• Efficiency
• Compact support
• Local definition Same properties NURBS have, but will work for • Affine invariance any topology
• Simplicity
• Smoothness
23 An Example – Loop Scheme
• Connectivity
1/8 β β • Geometry 3/8 3/8 β β 1-kβ
1/8 β • Analysis? – Does it converge? – Is the limit surface smooth? – Any problems at extraordinary (valence != 6) vertices?
24 Parameterization of Subd Surfaces
• B‐spline curves and surfaces are parameterized
• To analyze subd schemes, we need a similar parameterization
• Which domain to use? A planar rectangle cannot work
• Solution: Use initial control mesh as the domain
25 Parameterization of Subd Surfaces
• Apply subd rules to initial mesh, without updating the geometry
• Use resulting polyhedron as the didomain
26 Definitions
f j (|K|)
K The domain polyhedron v A vertex of K |K| The surface of K as a subset of R3 pj (v) The control point corresponding pj (v) to v after j subd steps j j f (|K|) The subdivided mesh after subd v steps, as a piecewise linear function on |||K| K
27 Convergence
• The subd surfaces are a sequence of linear maps ‐ f i :|K|→ R3
• The subd scheme converges uniformly to a lim it fifunction f if for all ε > 0,
there exists n0 > 0, s.t. for all n > n0
28 Smoothness of Surfaces C1 continuity A surface f :|||K|→ R3 is C1 continuous if for every point x ∈ |K| there exists a regular parameterization π : D → f(Ux), over a unit disk D in the plane, where Ux is the neighborhood in |K| of x.
A regular parameterization π is one that is continuously differentiable, one‐to‐one, and has a Jacobi matrix of maximum rank.
29 Smoothness of Surfaces Tangent Plane Continuity
A surface f :|K|→ R3 is tangent plane continuous at x ∈ |K| if and only if surface normals are defined in a neighborhood around x, and there exists a limit of normals at x
Tangent plane continuous, but not C1 continuous
30 Subdivision Properties
• How can we prove properties of a subdivision scheme?
• Express the subdivision as a local matrix operation
• Prove properties (convergence, continuity, affine invariance, etc.) using eigen‐analysis.
31 1/8
β β
3/8 3/8
β β Subdivision Matrix 1-kβ 1/8
β • Look at the local neighborhood of an extraordinary vertex v
• Let Uj be the set of vertices in the 2‐ring neighborhood of v after j Loop subdivision steps
Step j Step j + 1
j • Let pi be the corresponding control points
j+1 j • We can compute pi using only pi
32 Subdivision Matrix
• An extraordinary vertex of degree k has vertices in its 2‐ring neighborhood
k+3 2k+2 k+2
3 2 2k+3 2k+1
4 1 k+4 0 k+1
k 3k
• S depends on k 2k
33 Subdivision Matrix
• Assume S has a full set of eigenvectors {ϕi} with corresponding real eigenvalues {λi}, arranged in non‐increasing order
• We can express p0 in terms of the eigenvectors of S:
• Where:
34 Subdivision Matrix
j • Now we can express p using only ai and the eigenvalues and eigenvectors of S:
• We used the fact:
35 Subdivision Properties
• Convergence: We need |λi| ≤ 1 for all i (and only one eigenvalue can be exactly 1)
• Affine invariance: If for all A,B:
For affine invariance we need
→ λ0 = 1
36 Subdivision Properties
• Limit position:
Since |λi| <1 for all i > 0, we have:
In the limit the 2‐neighborhood of v is mapped to the same position: a0
We can compute the limit positions without recursively applying the subdivision
37 Subdivision Properties
• Limit tangent plane:
Since scheme is translation invariant, fix a0 = 0
Assume λ = λ1 = λ2 > λ3
For large enough j, the 2‐neighborhood of v is
mapped to linear combinations of a1 and a2
a1 and a2 span the tangent plane of the limit surface at v 38 Piecewise Smooth Surfaces
• So far, only considered closed smooth surfaces • Surfaces have boundaries and creases • A subdiv is ion scheme shhldould have rules for all the following cases:
Smooth Convex Concave Interior Crease boundary boundary boundary 39 Subdivision Zoo • Can be classified according to: Primal (face split)
Triangular meshes Quad Meshes Approximating Loop(C2) Catmull‐Clark(C2) Interpolating Mod. Butterfly (C1) Kobbelt (C1)
Dual (vertex split) Doo‐Sabin, Midedge(C1) • Many more... Biquartic (C2)
40 Terminology
• Regular vertices – Tri meshes • In the interior ‐ degree 6 • On the boundary –degree 4 – Quad meshes • In the interior ‐ degree 4 • On the boundary – degree 3
• Extraordinary vertices – all the rest
41 Terminology
• Odd vertices – new vertices at current subdivision level
• Even vertices – vertices inherited from previous level
• Face vertices –odd vertices inserted in a face
• Edge vertices –odd vertices inserted on an edge
42 Boundaries and Creases
• Speci al subdivi si on ruesules will be gegiven for each scheme for the boundary vertices
• The boundary curve of the limit surface: – Should not depend on interior control vertices • In case two surfaces will be merged along the boundary – Should be C1 or C2
• Use boundary rules for edges tagged as creases
43 Loop Scheme
• Possible choices for β – Original (by Loop):
– Or (by Warren):
Odd vertices Even vertices
44 Loop Scheme
• Limits for interior vertex v (using control points from any subd level j ) – Position
– Tangents
j Where vi for i = {0,..,k – 1} are the one ring neiihbghbors of the j vertex v at subd level j, and pi are the corresponding control points
45 Modified Butterfly Scheme
• Interpolating scheme – Even vertices don’t move
Butterfly (not C1)
Modified Butterfly
46 Catmull‐Clark Quad Scheme
Can be modified to work on general polygons 47 Kobbelt Scheme
Main observation ‐ to compute a face control point:
• compute all edge control points
• compute face control points using the edge rule applied to edge control points on same level
48 Scheme Comparison
• Subdividing a cube – Loop result is assymetric, because cube was triangulated first – Both Loop and Catmull‐Clark are better then Butterfly (C2 vs. C1 ) – Interpolation vs. smoothness
49 Scheme Comparison
• Subdividing a tetrahedron – Same insights – Severe shrinking for approximating schemes
50 Scheme Comparison
• Spot the difference? • For smooth meshes with uniform triangle size, different schemes provide very similar results • Beware of interpolating schemes for control polygons with sharp features
51 So Who Wins?
• Loop and Catmull‐Clark best when interpolation is not required • Loop best for triangular meshes • CtCatmu ll‐Clar k bbtest for quad meshes – Don’t triangulate and then use Catmull‐Clark
52 The Dark Side of Subd Surfaces
• Problems with curvature continuity – Requires either very large support, or forces 0 curvature at extraordinary vertices – Generates ripples near vertices of large degree
53 The Dark Side of Subd Surfaces
• Decreased smoothness with degree – For large degg,rees, third eigenvalue approaches second and first eigenvalues – Generates creases
• Can fix by modifying scheme – Creates more ripples 54 Beyond Subdivision Surfaces
• Non‐linear subdivision [Schaefer et al. 2008] Idea: replace arithmetic mean with other function
de Casteljau with
de Casteljau with
55 Beyond Subdivision Surfaces
• T‐Splines [Sederberg et al. 2003] – Allows control points to be T‐junctions – Can use less control points – Can model different topologies with single surface
NURBS T‐Splines
NURBS T‐Splines 56 Beyond Subdivision Surfaces
• How do you subdivide a teapot?
57 Images, Applets and Ideas From:
• http://www.vis.uni‐stuttgart.de/~kraus/LiveGraphics3D/cagd/ • http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/ • http://ibiblio.org/e‐notes/Splines/Intro.htm • http://3drender.com • httpp//://sunflow.sourcefor ge.net • http://www.tsplines.com • http://www.cs.utah.edu/gdc/projects/alpha1/help/man/html/model_repo/model_teapot/model_t eapot.html • http://en. wikipedia.org/wiki/Non ‐uniform_rational _ B‐spline • http://slipperypixels.com/ • http://www.mathworks.com/matlabcentral/fileexchange/24942 • http://graphics.stanford.edu/~dzorin/multires/butterfly/index.html • “Subdivision for Modeling and Animation” SIGGRAPH00 Course Notes • “Nonlinear Subdivision Through Nonlinear Averaging”, Schaefer et al., 2008 • The NURBS book, by Piegl & Tiller
58