T-Splines_and_T-NURC..

advertisement
T-Splines and T-NURCCs
Toby Mitchell
Main References:
Sederberg et al, T-Splines and T-NURCCs
Bazilevs et al, Isogeometric Analysis Using T-Splines
What T-Splines Do
T-Juntions in NURBS Mesh
• Reduces number of
unnecessary control points
• Allows local refinement
– NURBS models
– Subdivision surfaces
• Can merge NURBS patches
• Unlike subdivision surfaces,
compatible with NURBS
(superset of NURBS)
• Much more acceptable to
engineering industry!
Overview: The Main Idea
Break-Down and Reassemble
• Start with B-spline or
NURBS mesh
• Write in basis function form
• Break apart mesh structure:
Point-Based (PB) splines
• Reassemble a more flexible
mesh structure: T-splines
Basis Functions Review:
b11
b1
p=3
b
1
0
b2
b 02
b12
b 10
b 30
2/3
b0
b0
b3
1
0
b1
b
b2
b11
b 02
b3
b12
b12
b 30
p
b 0p (t )   bi N ip (t )
i 0
• Done in terms of basis
functions
Linear interpolation by de Casteljau (Bezier)
or Cox-de Boor (B-spline) can be expanded
in terms of polynomial sum: basis functions
Start With B-Spline Surfaces
kt4
• B-spline surfaces are
tensor products of curves:
m
kt3
n
b( s, t )   bi , j N im ( s) N nj (t )
i 0 j 0
Nj
Ni
(s,t)
kt2
j,t
• Need local knot vectors
• Rewrite basis function
D
bi,j
kt1
i,s
ks1 ks2
ks3 ks4
Bip ( s, t )  N im ( s) N nj (t ),
D  kt  ku  domain of basis function :
(t, u) can only vary over ku, kt
b(s,t)
Break into Point-Based (PB) Splines
• Each control point and basis
function has own knot vectors
• No mesh, points completely
self-contained
• bi,j becomes ba: a loops over all
PB-splines in a given set
• Domains should overlap:
– One PB-spline = point
– Two = line
– Need at least 3 for surface
• Domain of surface = a subset
of the union of all domains
• No obvious best choice
ba
t
s
Build T-splines from PB-Spline Basis
Sederberg’s Key Insight:
• Can construct mesh-free
basis functions that still
satisfy partition of unity*
Bap ( s, t )  N im ( s ) N nj (t ),
Bap ( s, t )
R ( s, t ) 
 Bap (s, t )
p
a
a
• Normalized over domain
• Rational, but not NURBS
*Can represent any polynomial
up to the order of the basis
Building Blocks of T-splines
•
•
•
•
•
Need to impose structure(?)
Once done, have T-splines
Evaluate by PB-spline basis
Same as B-splines, except
One sum over all control
points in domain instead of
two in each direction:
n
b( s, t )   b a Rap ( s, t )
a 0
T-Meshes: Structure of the Domain
Define a T-mesh:
• Grid of airtight but possibly
non-regular rectangles: Rule 1
• Each edge has a knot value
• Control points at junctions
• Basis functions centered on
anchors*
• Knot values for basis functions
collected along rays
• Intersection of ray with edge:
add knot to local vector
• Rule 2 designed to avoid
ambiguity in knot collection
*Not discussed in paper!
Examples of Knot Construction
t :

 
k1  11  21  41  61  71
k2
2
2
 32  42  62  72 
t :

 
k 1  11 11  21  31  61
k 2
2
1


 22  32  42  52 
T-Spline Surfaces
Evaluating Points on Surface
• Query for all domains that
enclose point (s,t)
• Gives all basis functions and
points that must be summed
• Price for flexibility: more
complex data structure
T-NURBS:
• Group weight with control point
• Replace B-spline basis function
with NURBS basis functions
• Microwave 3 minutes and serve
Point
(s,t)
Relevant
control
point
Merging NURBS with T-Splines
• Insert new knots to align knots
between patches
• Create T-junctions to stitch
patches together
• Average boundary control
points across patches
• One row: C0 merge
• Three rows: C2 merge
• Resulting merge very smooth
Local Refinement with T-Splines
Figures from Doerfel, Buettler, & Simeon, Adaptive
refinement with T-Splines
Local Refinement for Subdivision
Surfaces
• T-NURCCs: Catmull-Clark
subdivision surfaces with nonuniform knots & T-junctions
• Do a few global refinements
• Subsequent steps can be
purely local (to smooth out
extraordinary points)
• Shape control available
through parameter in
subdivision rule
• Rather complex rules required
Finite Elements with T-Splines
Local Refinement
• Have a system to model
• Want a solution at a given
accuracy level
• Local refinement is tricky in
standard methods: get
excess DOFs, expense
• T-splines allow local
refinement around features
of interest
• Big savings…?
Regular
T-Spline
The Biggest Problem With T-Splines?
Refinement Isn’t THAT Local
• Need to keep T-mesh
structure with refinement
• Must add new knots
besides the ones you
actually want to add
• Sederberg et al. improved
this a bit in a later paper
• Better local refinement
algorithm, but with…
• No termination condition!
Local Refinement Test Problem
Advection-Diffusion Problem
• Pool with steady flow along
45-degree angle
• Pollutant flows in one side and
flows out the other
• No diffusion: line between
polluted and unpolluted water
should stay perfectly sharp
• Requires high refinement, but
only along boundary layer
• Perfect test for T-splines
Adaptive Refinement Blow-Up
Hughes et al: Stayed Local
Doerfel et al: Cascade Triggered
Good
FAIL
Conclusion
•
•
•
•
T-splines introduce T-junctions into NURBS
Reduce complexity by orders of magnitude
Allow smooth merges of NURBS patches
Pretty clever, careful formulation: props
• BUT local refinement requires more work,
especially for adaptive refinement
Download