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 : k1 11 21 41 61 71 k2 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