0% found this document useful (0 votes)
108 views

Modelling and Representation 4 - Bezier, B-Spline and Subdivision Surfaces

This document discusses different techniques for modeling curves and surfaces, including Bezier curves, B-spline curves, and subdivision surfaces. It begins by introducing patch representations as alternatives to polygon meshes that can represent complex shapes with fewer elements. Bezier curves are then explained in terms of their geometric constraints, blending functions, polynomial form, and properties such as following the shape of the control polygon. B-spline curves are also covered, including uniform and non-uniform B-splines. Local control is highlighted as a key property of B-splines. Finally, subdivision surfaces are briefly mentioned as another modeling technique.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
108 views

Modelling and Representation 4 - Bezier, B-Spline and Subdivision Surfaces

This document discusses different techniques for modeling curves and surfaces, including Bezier curves, B-spline curves, and subdivision surfaces. It begins by introducing patch representations as alternatives to polygon meshes that can represent complex shapes with fewer elements. Bezier curves are then explained in terms of their geometric constraints, blending functions, polynomial form, and properties such as following the shape of the control polygon. B-spline curves are also covered, including uniform and non-uniform B-splines. Local control is highlighted as a key property of B-splines. Finally, subdivision surfaces are briefly mentioned as another modeling technique.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 134

Modelling and representation 4 – Bezier,

B-spline and subdivision surfaces


5.1 Introduction
5.2 Bezier curves
5.3 B-spline curves
5.4 Rational curves
5.5 From curves to surfaces
5.6 Modelling or creating patch surfaces
5.7 Rendering parametric surfaces
5.8 Practical bezier technology for games
5.9 Subdivision surfaces
5.10 Scalability – polygon meshes, patch meshes and
subdivision surfaces
5.1 Introduction
 This chapter is devoted entirely to a representational
form where the primitive element – a bi-cubic
parametric patch – is a curvilinear quadrilateral .
 Now patch representations are being used more and
more as alternatives to the polygon mesh model.
 A net of patches can represent a complex with far fewer
elements than a net of planar polygons.
5.1 Introduction
 Patch representations advantages:
 It has the potential of 3D shape editing or modelling. Real
time shape changing.

 By using a fast patch to polygon conversion algorithm, it


can be used with existing polygon rendering hardware.

 It facilitates an automatic LOD representation.


5.1 Introduction
 Patch representations advantages:
 If patch processing algorithms migrate onto hardware
then the inherent economy of representation implies a
solution to the CPU-graphics processor bus bottleneck .
 The lighting resolution for static objects can be made
independent of the LOD
 It is an exact analytical representation.
 It is a more economical representation.
Parametric Cubic Curves
 Curve and surface approximation:
 1st degree approximation: polygon mesh
 Higher degree approximation:
 explicit function: y=f(x),z=f(x)
 implicit equation: f(x,y,z)=0
 parametric representation: x=x(t),y=y(t),z=z(t)
Parametric Cubic Polynomials
 Q[t]=[x(t) y(t) z(t)]  M:
x(t) = axt3+bxt2+cxt+dx  4x4 basis matrix
y(t) = ayt3+byt2+cyt+dy  G:
z(t) = azt3+bzt2+czt+dz  geometry vector
 4 elements column
T t 3
t 2

t 1,
vector of geometric
ax ay
az 
b constraints.
bz 
by
C
x
,
 cx c y cz 
 
d x d y d z 
Q(t )  x(t ) y (t ) z (t )  T  C
C  MG
Three types of curves
 Hermit: G=[ P1 P4 R1 R4]T
 R1, R4 :the tagent vector constraint
 Bezier: G=[ P1 P2 P3 P4]T
 P2,P3 controls R1, R4
 splines: G=[ Pi-3 Pi-2 Pi-1 Pi]T
 uniform B-splines, nonuniform B-splines, -
splines
5.2 Bezier curves
 Definition
 Joining Bezier curve segments (5.2.1)
 Summary of Bezier curve properties (5.2.2)
5.2 Bezier curves
 Definition
 Geometric constraints and blending functions
 Polynomial form
 Matrix form
 Properties
 Applications
5.2 Bezier curves (Geometric
constraints )
 Geometric vector Gz includes :
 起點: P0
 終點: P3
 切線向量控制點: P1, P2
5.2 Bezier curves (blending functions)
 Blending function for each control point
B0 (u )  (1  u ) 3
B1 (u )  3u (1  u ) 2
B2 (u )  3u 2 (1  u )
B3 (u )  (u ) 3
 The curve is given by:
3
Q(u )   PiBi (u )
i 0
5.2 Bezier curves
 Polynomial form

Let Pi  xi , yi , zi , 0  i  3
3
Q (u )  x(u ) y (u ) z (u )   Pi Bi (u ), 0  u  1
i 0
3 3 3
 x(u )   xi Bi (u ), y (u )   yi Bi (u ), z (u )   zi Bi (u )
i 0 i 0 i 0
5.2 Bezier curves
 Matrix form

Q(u )  P 0(1  u ) 3  P13u (1  u ) 2  P 23u 2 (1  u )  P 3u 3


Q(u )  UBZ P
 1 3  3 1  P0 
 3 6 3 0  P1 

 u3 u 2 u 1 
 3 3 0

0  P2 
   
1 0 0 0  P3 
5.2 Bezier curves (Properties)
 Q(0) = P0
 Q(1) = P3
 B0(u) + B1(u) + B2(u) + B3(u) = 0
5.2 Bezier curves (Properties)
 When we move the inner control points P1 and P2 we
change the orientation of the tangent vectors to the
curves at the end points.
 The positions of P1 and P2 also control the magnitude of
the tangent vectors and it can be shown that:
 Qu(0)=3(P1-P0)

 Qu(1)=3(P2-P3)
 Where Qu is the tangent vector to the curve at the end
point.
5.2 Bezier curves (Properties)
5.2 Bezier curves (Properties)
 Another way of putting it is to say that the curve mimics the
shape of the control polygon.
 An important property from the point of view of the
algorithm that deal with curves (and surfaces) is that a curve
is always enclosed in the convex hull formed by control
polygon.
5.2 Bezier curves
 Applications
5.2.1 Joining Bezier curve segments
 Constraints at the joins
 positional continuity
 S3=R0
 first order continuity
 (S3-S2)=k(R1-R0)
5.2.1 Joining Bezier curve segments
 Possible Shape Editing Protocols
 Maintaining the orientation of the line R1,S2 and moving the join point up and
down.
 Maintaining the position of the join point and rotating the line R 1,S2 about
this point.
 Moving all three control points as a locked unit.
5.2.2 Summary of Bezier curve
properties
 A Bezier curve is a polynomial. The degree of the polynomial
is always one less than the number of control points.
 The curve follows the shape of the control point polygon.
 The control points do not exert local control. Moving any
control point affects all of the curve to a greater or lesser
extent.
 The first and last control points are the end points of the
curve segment.
5.2.2 Summary of Bezier curve
properties
 The tangent vectors to the curve at the end points are coincident
with the first and last edges of the control point polygon.
 Moving the control points alters the magnitude and direction of
the tangent vectors.
 The curve does not oscillate about any straight line more than
the control point polygon – this is known as the variation
diminishing property.
 The curve is transformed by applying any affine transformation
to its control point representation.
5.3 B-spline curves
5.3.1 Uniform B-splines
5.3.2 Non-uniform B-splines
5.3.3 Summary of B-spline curve properties
5.3 B-spline curves
 Composed of a series of m-2 curve segments, Q3,Q4,…,Qm
 controlled by (m + 1) control points P0, P1, ..., Pm
 each curve segment is controlled by 4 control points over a given
knot intervals:
 P0, P1, P2, P3 --->Q3 defined on [u3, u4]
 P1, P2, P3, P4 --->Q4 defined on [u4, u5]
 ...
 Pm-3, Pm-2, Pm-1, Pm --->Qm defined on [um, um+1]

 each control point influences four curve segments. (local control


property)
5.3 B-spline curves
 Entire set of curve segments as one B-spline curve in u:
m
Q(u )   PiBi (u )
i 0

 i=[0,m], the non-local control point number


 u=[3, m+1], global parameter
5.3.1 Uniform B-splines (Definition)
 The joint point on the value of u between segments is called the knot
value.
 Uniform B-spline means that knots are spaced at equal intervals of the
parameter u.
 Basis functions are defined over 4 successive knot intervals:
 B0(u): [u0, u1, u2, u3, u4]
 B1(u): [u1, u2, u3, u4, u5 ]
 ...
 Bm(u): [um-3, um-2, um-1, um, um+1]
 (m-2) curve segments
 Q3: P0,P1,P2,P3 u = [3,4]
 Q4: P1,P2,P3,P4u = [4,5]
 ……
 Qm: Pm-3,Pm-2,Pm-1,Pmu = [m,m+1]
5.3.1 Uniform B-splines
 An example of a B-spline curve
5.3.1 Uniform B-splines
(Basis functions and curve computation)
 Basis function for Qi(u): (0≤u≤1)
1 3
Bi  u
6
1
Bi  1  (3u 3  3u 2  3u  1)
6
1
Bi  2  (3u 3  6u 2  4)
6
1
Bi  3  (1  u )3
6
Qi (u )  Pi Bi (u )  Pi 1 Bi 1 (u )  Pi  2 Bi  2 (u )  Pi 3 Bi 3 (u )
 It is important to note that this definition gives a single segment from each
of the 4 B-spline basis functions over the range 0≤u≤1.
 It does not define a single B-spline basis function which consists of four
segments over the range 0≤u≤4.
5.3.1 Uniform B-splines
 Uniform cubic B-spline blending function
 Blending function is used to weighing specific control point of a
curve. So there is a one-to-one correspondence between the control
points and the blending functions.
 The blending function Bi(u) is used to weighing Pi, the ith control
point of the entire curve.
5.3.1 Uniform B-splines
 Parameter range and the basis functions for curve segment
Q3(u)
 B3 的第一個區間 , B2 的第二個區間
 B1 的第三個區間 , B0 的第四個區間
5.3.1 Uniform B-splines
 The local control property
5.3.1 Uniform B-splines
 The effect of multiple end control points
5.3.1 Uniform B-splines
 The effect of multiple intermediate control points
5.3.2 Non-uniform B-splines
 The parametric interval are not necessarily equal.
 The parametric intervals are defined by the knot vector.
 Knot vector [0,0,0,0,1,2,…,n-1,n,n,n,n] is often used to
offer interpolation at the end points.
 As we seen, successive knot values can be equal and the
number of identical values is called the multiplicity of
the knot.
 控制 knot 間距是用以調節控制點 blending
function 的方法 . 因此 , 可以使不同控制點有不
同的 blending function. (uniform 的曲線中每一個
控制點的 blending function 均相同 )
5.3.2 Non-uniform B-splines
 Basis function B0(u)
5.3.2 Non-uniform B-splines
 因為 knot 間距會造成 blending function 的變化 . 故需要一個由 knot 間
距計算 blending function 的方法 .(Cox-De Boor Algorithm)
 Cox-De Boor Algorithm

Degree 1

order
Degree 2

Degree 3

Degree 4
5.3.2 Non-uniform B-splines
 Non-uniform B-splines using a knot vector [0,0,0,0,1,2,3,3,3,3]
5.3.2 Non-uniform B-splines
 Flexibility of the B-splines (knot vector is [0,0,0,0,1,2,3,4,5,6,6,6,6])
5.3.2 Non-uniform B-splines
 Multiple knots vs. Multiple control points
5.3.2 Non-uniform B-splines
 Effect of knot multiplicity
5.3.2 Non-uniform B-splines
 The effect of interior multiplicity (a)
5.3.2 Non-uniform B-splines
 The effect of interior multiplicity (b) , Knot vector = [0,1,2,3,4,4,5,6,7,8,9]
5.3.2 Non-uniform B-splines
 The effect of interior multiplicity (c), Knot vector = [0,1,2,3,4,4,4,5,6,7,8]
5.3.2 Non-uniform B-splines
 The effect of interior multiplicity (d), Knot vector = [0,1,2,3,4,4,4,4,5,6,7,8]
5.3.3 Summary of B-spline curve
properties
 The curve follows the shape of the control point polygon
and is constrained to lie in the convex hull of the control
points
 The curve exhibits the variation diminishing property.
 The curve is transformed by applying any affine
transformation to its control point representation.
 A B-spline curve exhibits local control – a control point
connected to four segments (in the case of a cubic) and
moving a control point can only influence these
segments.
5.4 Rational curves
 5.4.1 Rational Bezier curves
 5.4.2 NURBS
5.4 Rational curves
 A rational curve is a curve defined in four-
dimensional space – known as projective
space – which is then projected into three-
dimensional.
5.4.1 Rational Bezier curves
 Consider the projection of a 3D Bezier curve in to 2D space:
(z=1)
 We do this by dividing by z(u) to define a 2D curve R(u):

x(u ) y (u )
R(u )  ( , )
z (u ) x(u )
 The 3D curve:

3
Q(u )   PiBi (u )
i 0

Pi  ( xi, yi, zi )
5.4.1 Rational Bezier curves (cont.)
 Now a special notation is used for writing the 3D control points of a
rational curve in 2D space:

Pi w  ( wixi, wiyi, wi )
 We write our 3D curve as:

3
 wixi 
Q (u )    wiyi  Bi (u )
i 0
 wi 

 which is projected into 2D space as:

  wixiBi (u )  wiyiBi (u ) 
R(u )   , 
  wiBi (u )  wiBi (u ) 
 
5.4.1 Rational Bezier curves
 We project a 4D curve into 3D space
 Each control point is now:

Pi w  ( wixi, wiyi, wizi, wi )


 And we have:

R(u ) 
 w P B (u )
i i i

 w B (u) i i
5.4.1 Rational Bezier curves
 The effect of changing weight wi
5.4.1 Rational Bezier curves
 The different effect of control point movement and weight
adjustment
5.4.2 NURBS
 NURBS stands for Non-Uniform Rational B-
Splines.
 admits the following possibilities:
 Interactive placement and movement of control points.
 Interactive placement and movement of knots.
 Interactive control of control-point weights.
5.4.2 NURBS (Formulation of NURBS)
 Let Pi  ( xi, yi, zi )be a 3D point projected from a 4D point
Pi w  ( wixi, wiyi, wizi, wi )
 The 3D curve of NURBS
 n w 
R(u )  H  Pi Bi , k (u )
 i 0 
n

PwB i i i, k (u )
 i 0
n

wB
i 0
i i, k (u )
 If wi = 1, for all i, then Ri,k(u)=Bi,k(u)
 The curve is pulled towards a control point Pi if wi increases.
5.5 From curves to surfaces
 Cubic Bezier patch surface  The matrix specification
formulation of Equation
3 3
Q(u, v)   PijBi (u ) Bj (v)
i 0 j 0
5.5 From curves to surfaces
 Cubic Bezier patch surface
5.5 From curves to surfaces
 The effect of lifting one of the control points
5.5 From curves to surfaces
 Vectors at the corner of a patch.
 The tangent vector at Q(0,0) in the u parameter direction.
Qu (0,0)  3( P10  P 00)
 The tangent vector at Q(0,0) in the v parameter direction.
Qv (0,0)  3( P 01  P 00)
 The cross-derivatives at each end point, sometimes called twist
vectors, specify the rate of change of the tangent vectors with respect
to u and v.
Quv(0,0)  9( P 00  P 01  P10  P11)
5.5 From curves to surfaces
 Vectors at P00
5.5 From curves to surfaces (zero twist
surface)
 If we set Quv(i,j) = 0 then se have a so-called zero twist
surface or a surface with four zero twist vectors.
 若已知在邊緣的 12 個點 , 可求出中間四點 :
 0= 9(P00-P01- P10 + P11) => P11=P01+ P10 - P00

 0= 9(P03-P02- P13 + P12) => P12=P02+ P13 - P03


 0= 9(P30-P31- P20 + P21) => P21=P31+ P20 - P30
 0= 9(P33-P32- P23 + P22) => P22=P32+ P23 - P33
5.5 From curves to surfaces (Patch
specification)
 Each patch is specified by:
 4 end points
 8 tangent vectors
 4 twist vectors
5.5 From curves to surfaces (calculate
surface normal)
 Subdivision:
 Subdivide patch until the products of the sub-division
are approximately planar. The patches can then be
treated as planar polygons.
 Apply polygon shading algorithm to each polygon.
 vertex normal can be calculated from:
a  ( P 01  P 00)
b  ( P10  P 00)
N  ab
5.5 From curves to surfaces (calculate
surface normal)
 At each point of the patch:
Q Q
N 
u v
 The surface normal at any point on the patch surface:
5.5.1 Continuity and Bezier patches
 Join two patches
5.5.1 Continuity and Bezier patches
 Positional or zero-order continuity:
 S(1,v) = R(0,v) for 0 < v < 1
 S3i = R0i i = 0,……, 3
5.5.1 Continuity and Bezier patches
 First-order (C1) continuity
5.5.2 A Bezier patch object – the Utah
teapot
 32 patches  16 control points/patch
= 288 vertices
= 288  3 real numbers
5.5.3 B-spline surface patches
 To form a bicubic B-spline surface patch we need to evaluate:
n m
Q(u , v)   PijBi , j (u , v)
i 0 j 0

 Pij is an array of control points


 Bi,j is a bivariate basis function
Bi , j (u , v)  Bi (u ) Bj (v)
 Thus
n m
Q(u , v)   PijBi (u ) Bj (v)
i 0 j 0
5.5.3 B-spline surface patches
5.5.3 B-spline surface patches
 Single B-spline patch segment
5.6 Modelling or creating patch
surfaces
 In this section we will look at the following design or creation
methods:
 Cross-section design: here we will look at a simplification of the
sweeping techniques described in the previous chapter, restricting the
objects to linear axis design.
 Interactive design by manipulating the control point polyhedron.
 Creating a patch net or mesh from a set of 3D points representing a real
object. We could call this surface interpolation, or surface fitting.
5.6.1 Cross-section modelling with
patches
 Linear axis design – scaled circular cross-sections
 Linear axis design – non-circular scaled cross-
sections
 Linear axis design - non-circular varying cross-
sections
5.6.1 Cross-section modelling with
patches
 Linear axis design – scaled circular cross-sections
5.6.1 Cross-section modelling with
patches
 Linear axis design – non-circular scaled cross-sections
5.6.1 Cross-section modelling with
patches
 Linear axis design - non-circular varying cross-sections
5.6.1 Cross-section modelling with
patches
 Blending two different cross-sections using the profile curve.
5.6.2 Editing a patch net – altering an
existing net
 Problems in editing mesh of patches
 Fine control
 Coarse control
Problems in editing mesh of patches
 四個連接在一起的 Bezier patch 及其控制點
 連續性的限制條件導致中間點的移動必須考慮其週邊八點
 九個點一起移動則可保有連續性
Plateaux effect ( 高原效應 )
 如果 , 我們想將 (b) 中的直線變形成 (d) 中的直線 . 使用一次移動一組控
制點的方法無法產生如 (d) 之效果 . 僅能產生如 (c) 之效果
Fine control
 Local shape deformation
 Locality of control
 B-spline
 control the scale of deformation by locally subdividing the patches within
the region of the deformation.
Hierarchical B-spline deformation
 In 1988, Forsey and Bartels introduced Hierarchical B-Splines
 Definition of a B-spline patch:
n m
Q(u , v)   PijBi (u ) Bj ( y )
i 0 j 0

 Redefined by knot Insertion (Farin, 1990) to a patch:


N M
Q(u, v)   RijBi (u ) Bj ( y )
i 0 j 0

 N > n and M > m


Hierarchical B-spline deformation
 The new control points are derived as described in Forsey and
Bartels. The problem is how to apply this strategy to the region of
a surface that interests us. Forsey and Bartels do this by defining a
minimal surface – the smallest section of the surface to which this
refinement of control points can be applied. This minimal surface
satisfies two constraints:

 Movement of the new control points produces deformations that are


localised to this minimal surface.
 The derivatives at the boundary of the minimal surface remain unchanged.
Hierarchical B-spline deformation
 A minimal surface is 16
patches defined by a 7*7
control points matrix.
 The control points that are
required if the centre four
patches are refined to 16.
Coarse control
 Global shape changing
 operate on all control points simultaneously
 deform Q(t) defined by control points Pi to Q’(t) defined by control points Pi’:
 enclose the curve Q(t) in a unit square and divide up this region in
to a regular grid of points Rij; i=0,….,3;j=0,….,3. If we consider
the square to be uv space then we can write:
3 3
(u , v)   RijBi (u ) Bj (v)
i 0 j 0

 deform the patch by changing Rij to R’ij.


Coarse control
5.6.3 Creating patch objects by surface
fitting
 Interpolating curves using B-splines
 Interpolating surfaces
Interpolating curves using B-splines
 Two applications
 Modelling
 Computer animation
 Problem
 給定一組資料點 , 我們要求出一組控制點 , 使所
定義出的曲線通過所有或部份的資料點
 方法可參考 Bartels et al. (1987)
Formal definition for the problem
 Consider the data points to be knot values in u then we have
for a cubic:
m
Q (u p )   Pi Bi (u p )  D p for all p  3,..., m  1
i 0

where :
D p is a data point
u p is the knot value corresponding to the data point

 The problem we now have is to determine up


Solution for determine up
 Uniform parametrisation
 Set up to p
 Completely ignores the geometric relationship between data
points and is usually regarded as giving the poorest
interpolant in a hierarchy of possibilities described in detail in
Farin (1990).
 Chord length parametrisation proportional
 Set the knot intervals proportional to the distance between the
data points.
Solving control points Pxi
 Consider x component of Dp:
m
x(up )   PxiBi (up )  Dxp
i 0

for all p = 3,….,m+1


Where Dxp is the x component of the data point.
 A system of equations that we solve Pxi is:
Interpolating surfaces
 2 stages
 find fit B-spline curves
 B-spline curves are converted to Bezier curves
A schematic representation of surface
fitting
 Converting a
B-spline curve
network to
Bezier patches
5.7 Rendering parametric surfaces
 The rendering algorithms are divided into
two categories:
 Rendering directly from the parametric
description, or the equation describing the patch.
 Rendering by approximating the surfaces with
polygon meshes.
5.7.1 Patch to polygon conversion
 How to derive the polygon mesh approximation
 Iteratively applies subdivision to the pathces to
sufficient accuracy.
 When to stop the subdivisions
 Depends on the criterion used to determine the depth
of the subdivision and where its is applied on the
surface.
 Types of criterions
 Screen space
 Object space
The patch splitting process
Object space subdivision
 Dealing with object space first we can list the following simple
categories:
 Uniform subdivision
 This is the simplest case and involves a user specifying a level at which
uniform subdivision of all patches is to terminate.
 Non-uniform subdivision
 This mean stopping the subdivision when the subdivision products meet
a patch flatness criterion.
Uniform subdivision
 Iteratively divide the patches using iso-parametric
curves for a fixed level of iteration.
 Use the derived net of points to define the vertices
for the mesh of polygons.
 Disadvantages
 Visible boundary and silhouette edges may exhibit
discontinuities.
 Internal silhouette edges will generally be of higher
degree than cubic.
Non-uniform subdivision
 The patch is subdivided to a degree that depends on local
curvature
 Areas of the patch that are flattish are subject to few subdivision
 Areas where local curvature is high are subject to more subdivisions.
 Advantage
 Fast
 Allow LOD control for interactive system
 Disadvantage
 Holes may appear between patches with different level of subdivision.
Curve subdivision
 By Lane et al.(1980)
 Given a Bezier curve segment Q defined by
Q0,Q1,Q2,Q3, the subdivision of Q can be given by:

R0  Q0 S 0  R3
R1  (Q 0  Q1) S 1  (Q1  Q 2)  S 2
2 4 2
R 2  R1  (Q1  Q 2) S 2  (Q 2  Q 3)
2 4 2
R1  ( R 2  S 1) S 3  Q3
2
Curve subdivision
Using curve splitting to subdivide a
patch into four
Linearity criterions
 Curve subdivision
 Distances from the middle two points to the end point
joining line.
Image space subdivision
 Controlling the depth of subdivision using
screen space criteria.
 Called view dependent or screen space
controlled
 Three ways to do this
 Minimum space of the patch
 Screen space flatness of the patch
 Screen space flatness of the silhouette edge
Screen space flatness of the patch
5.8 Practical Bezier technology for
games
 Down-sampling bi-quadratic meshes
 Curves, objects and subdivision
5.8.1 Down-sampling bi-quadratic
meshes
 A bi-quadratic patch is defined as:
2 2
Q(u , v)   PijBi (u ) Bj (v)
i 0 j 0

 Where the quadratic blending functions are:


2
B 0(u )  (1  u )
B1(u )  2(1  u )u
2
B 2(u )  u
5.8.1 Down-sampling bi-quadratic
meshes
 Example
5.8.2 Curves, objects and subdivision
 Converting a ducted solid generator
Non-uniform curve subdivision
2 levels of uniform subdivision
2levels of non-uniform subdivision
No subdivision in the cross-section
5.9 Subdivision surfaces
5.9.1 Catmull-Clark subdivision
5.9.2 Butterfly subdivision
5.9.3 Modified butterfly
5.9.1 Catmull-Clark subdivision
 Catmull-Clarks‘ original convention:
 New vertices are placed at the centre of each original face. These are
calculated as the average of the positions of original vertices of the face.
 New edge points are created. These are calculated as the average of the mid-
points of the original edge with the average of the two new face points
sharing the edge.
 New vertex points are formed as the average:
 Q/n+2R/n+S(n-3)/n
 Q is the average of the new face points surrounding the old vertex
 R is the average of the midpoints of the edges that share the old vertex
 S is the old vertex point
 n number of edges that share the vertex
 The new mesh is then formed by :
 Connecting each new face point to the new edge points of the edges that form
the original face
 Connecting each new vertex point to the new edge points of all original edges
forming the original vertex.
5.9.1 Catmull-Clark subdivision
 De Rose et al. (1998) formulated these rules in a succinct convention
notates the subdivision level and the vertices
 Denote the control mesh as M 0 and subdivision meshes as M 1 , M 2 ,......
 They generated formulae for edges and vertices as :
i 1
v i  eij  f ji11  f ji 1
e j 
4
n2 i 1 1
v i 1 
n
v  2
n
ej
i
j 
n2
f
j
j
i 1
Mask notation
 Mask is shown simply as a
black dot together with a set of
coefficients.
 The vertices of the mask
indicates where it is to be
placed on the mesh and the
coefficients define the
subdivision rule.
Valence of vertex
 The valence of a vertex is defined as the number of edges incident on it and
the vertices corresponding to the original control points retain the valance of
these points.
 Vertices in the surface which do not have valence 4 are called extraordinary
points and it is only at these points that the subdivision surface is not a
standard B-spline surface.
5.9.2 Butterfly subdivision
 Butterfly scheme (Dyn et al., 1990) is a popular
subdivision approach method.
 This is an interpolating method – the limit surface
passes through the M 0 points.
 This mean it can be used to refine existing models.
5.9.2 Butterfly subdivision
 To implement a butterfly scheme we can processed as follows (Figure
5.65 (a) ):
5.9.2 Butterfly subdivision
Mesh refinement using butterfly
scheme
Bezier patch subdivision
Objects after three levels of butterfly
subdivision
The mask for butterfly subdivision
Varying w in the Butterfly scheme
Four levels of sub-division using the
Butterfly scheme
5.9.3 Modified butterfly
 Zorrin et al. (1996) developed a modification
of the butterfly scheme.
 Retained its advantage of interpolation and
locality.
 Dealt with the artefacts that the original
scheme introduces.
Masks for the modified butterfly
scheme
The modified butterfly
5.10 Scalability – polygon meshes,
patch meshes and subdivision surfaces
5.10.1 LOD polygon meshes
5.10.2 Patch meshes
5.10.3 Subdivision surfaces
5.10.1 LOD polygon meshes
 The object is modelled to a degree of accuracy that depends on the
number of polygons used. The generality of the representation
means that there are no restrictions on the shapes representable and
detail is easy to add.

 The database representation of the high-resolution mesh is


straightforward.

 Generation of lower-resolution meshes in a way that keeps as close


as possible to original surface is difficult and is generally done
offline.

 Pre-processed LOD structures are bi-directional. From the current


level we can go to a higher or lower level.
5.10.2 Patch meshes
 Depending on the object this can be an exact representation. There
are difficulties in building a mesh because of continuity constraints .

 The database representation is simple – a 2D array – and


memory/bandwidth requirements are low.

 Subdivision is fast and, depending on the complexity, can processed


in real time.

 Non-uniform subdivision is possible, which optimises the


representation’s scalability, but cracking problems must be dealt
with.
5.10.3 Subdivision surfaces
 The object is modelled as a low-resolution mesh using software
that enables the creator to visualise the limit surface.

 The database representation can be any subdivision level from M 0


upwards. The memory/bandwidth requirements are low.
Although the refinement rules are straightforward, the arbitrary
topology makes the data structure manipulations difficult. A
vertex edge and edge vertex map need to be maintained.

 Subdivision is fast and, depending on the complexity, can


proceed in real time.

 Only uniform subdivision is possible.

You might also like