Modeling
Modeling
1/26
Indoors
Outdoors
Movies
Movies
Games
Games
Subdivision
•Procedural algorithm to automatically generate finer and smoother mesh from a coarser input
mesh
• Theoretically, a smooth limit surfaces can exist (depending on the algorithm used)
• After just a few refinements, additional changes often become too small to see/matter
8/31
Subdivision Curves
9/31
Subdivision Surfaces
10/31
Loop Subdivision
•Subdivide each triangle into 4 triangles, and move old and new vertices to new
positions (repeat until reaching the desired resolution)
•Generates a C2 continuous limit surface almost everywhere (except at some
extraordinary vertices where the limit is C1 continuous)
12/31
Move Old/New Vertices
•Perturb the position of each new vertex (black) using a weighted average of the four nearby
original vertices (grey)
•Perturb the position of each original vertex (grey) using a weighted average of the six adjacent
original vertices (grey), assuming the vertex is regular
• Repeat until converged (or a few times)
Extraordinary Points
• Most vertices are regular (degree 6), but not all
• if a mesh is topologically equivalent to a sphere, not all vertices can have degree 6
•At extraordinary points, Warren weights can be used to generate a smooth surface (i.e., the
tangent plane is continuous)
3 3
• When the number of points is 𝑛 = 3, 𝛽 = ; else 𝛽 =
&6 (𝑛
extraordinary
point
Initial Mesh
Add New Vertices
New Vertex and Stencil
Move New Vertex
Original (Regular) Vertex and Stencil
Move Original (Regular) Vertex
Original (Extraordinary) Vertex and Stencil
Move Original (Extraordinary) Vertex
Subdivided Surface
Subdivide Again
And Again
And Again
Final Limit Surface
B-Spline Basis Functions
• Knots – node locations 𝑢0 , 𝑢$ , … 𝑢𝑚
• Lowest level building blocks are piecewise constant (m of them):
i f 𝑢( ≤ 𝑢 < 𝑢 (0$
𝑛(,0 𝑢 = * 1
0 𝑜𝑡ℎ𝑒𝑟𝑤i𝑠𝑒
• Higher order building blocks are defined recursively (i-th basis function of order j is…):
𝑢 − 𝑢( 𝑢 (090$ − 𝑢
𝑛(,9 𝑢 = 𝑛 (,9;$ 𝑢 + 𝑛 (0$,9;$ 𝑢
𝑢(09 − 𝑢( 𝑢 (090$ − 𝑢 (0$
control point
m=10 intervals
order p=3
knots n+1=10-3 (n=6)
0 to 6 is 7 control points
𝑠0 𝑠1 𝑠& 𝑠3
parametric domain: 𝑢= 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
NURBS Curve
∑i𝑛&0 𝑛 i , 𝑝 𝑢 - i 𝑃 i
• NURBS (Non-Uniform Rational B-Spline) curve is defined by: 𝐶 𝑢 = ∑i𝑛&0 𝑛 i , 𝑝 𝑢 - i
•Increasing the weight 𝑤0on point 𝑃0 pulls the curve closer to 𝑃0, while decreasing 𝑤0releases
the curve to move farther away from 𝑃0
NURBS Surface
• Extending the ideas from curves to surfaces, a NURBS surface is defined as:
∑i(𝑚 ∑𝑛
) +( ) 𝑛 i,𝑝 𝑢 𝑛+,𝑞 𝑣 𝑤i,+𝑃i,+
𝑆 𝑢, 𝑣 = 𝑚 ∑𝑛
∑i( ) +( ) 𝑛 i,𝑝 𝑢 𝑛+,𝑞 𝑣 𝑤i,+
• A 2D array of control points 𝑃i,+ is associated with each basis function 𝑛 i,𝑝 𝑢 𝑛+,𝑞 𝑣
Subdividing Spline Curves
• Add more parametric knots and 2D/3D control points
• First, insert new knots without changing the shape of the curve
• When inserting a knot, add a control point as well
• The positions of the control points are updated to preserve the shape of the curve
• For example: given a spline curve of degree 𝑝 with knots {𝑢$, 𝑢&, … 𝑢 𝑚 } and control points
𝑃 $ , 𝑃 &, … , 𝑃 𝑛
• Insert a new knot 𝑢,between 𝑢𝑘and 𝑢 𝑘 . &
• Add one more control point obtaining the new set of control points 𝑃 ∗$, 𝑃 ∗&, … , 𝑃 ∗𝑛 . &
• After creating more control points, can modify the shape of the curve
Original Curve
Insert a Knot
Add/Adjust Control Points
Adjusting Control Points
• The positions of the new control points are computed using linear interpolation:
𝑃 ∗i = 1 − 𝛼i 𝑃 i ( ) + 𝛼 i 𝑃 i
1 +< 𝑘 − 𝑝 + 1
• Here, 𝛼i = 0 +> 𝑘
𝑢(𝑢31
𝑘 − 𝑝 + 1 ≤ +≤ 𝑘
𝑢 34𝑝 (𝑢 3
• 𝛼i = 1 sets 𝑃 ∗i = 𝑃 i leaving the control point as is (for the control points in the beginning of
the parametric domain)
• 𝛼i = 0 sets 𝑃 ∗i = 𝑃 i ( ) leaving the control point as is, but renumbering it based on the new
number of control points (for control points near the end of the parametric domain)
Mesh Editing
•Manipulate a few control/mesh points and use an algorithm to procedurally deform the mesh
(e.g., twist, bend, stretch, etc.)
• Fast, intuitive, preserves details, widely used in CAD software such as Blender, Maya, etc.
• Spline (e.g. B-spline, NURBS) mesh editing uses control points (as seen in previous slides)
• Laplacian mesh editing allows one to directly move mesh points