CAD Surfaces 1
CAD Surfaces Parametric Coons patches Tensor product surfaces (Bézier triangle) Nurbs surfaces Procedural (non parametric) Subdivision surfaces 2
CAD Surfaces Coons patches 3
Coons patches Bilinear Coons patch Steven Anson Coons (published in 1967 but idea came from research done during WWII in aeronautics) Let 4 parametric curves (Bézier or B-Splines or other) passing trough 4 points (A,B,C,D) : P1(u)=P(u,0), P2(u)=P(u,1), Q1(v)=P(0,v), Q2(v)=P(1,v) such as P(0,0)=A P(1,0)=B P(1,1)=C P(0,1)=D The surface P(u,v) is carried by these 4 curves D P(0,v) =Q1 A P(u,1)=P2 P(u,v) P(u,0)=P1 C P(1,v) =Q2 B 4
Bilinear Coons patches We define 3 surfaces by linear interpolation: S 1 (u, v)=(1 v) P (u,0)+v P (u,1) S 2 (u, v)=(1 u) P (0, v)+u P (1, v) S 3 (u, v)=(1 u)(1 v) P (0,0)+u(1 v) P (0,1) +v (1 u) P (1,0)+ uvp (1,1) S 2 u, v S 1 u, v S 3 u, v 5
Bilinear Coons patches The Bilinear Coons patch is defined by : P (u, v)=s 1 (u, v)+ S 2 (u, v) S 3 (u, v) Why? S1 interpolates A,B,C,D and the curves P1 and P2 S2 interpolates A,B,C,D and the curves Q1 and Q2 S1+S2 does not interpolate A,B,C,D any more, one has to subtract a term depending on A,B,C,D and linear in u and v. S 2 u, v S 1 u, v S 3 u, v 6
Bilinear Coons patches Characteristics of a bilinear Coons patch Easy to build Based on any set of 4 boundary curves However, there is no precise control of the shape of the surface inside the patch e.g. it is impossible to impose a C1 continuity between two neighbouring patches without constraints on the network of curves 7
Bilinear Coons patches Systematic notation The surface may be expressed as : 0 P (u,0) P (u,1) 1 P (u, v)=(1 F 1 (u) F 2 (u)) P (0, v) P (0,0) P (0,1) F 1 (v) P (1, v) P (1,0) P (1,1) F 2 (v) ( )( ) In this notation, F1(x)=1-x and F2(x)=x are blending functions, (x is either u or v). They can be replaced by any function to achieve e.g. a better continuity (see later). In the matrix, the lower right 4-by-4 square corresponds to surface S3; the upper line to S1 and left column to S2. 8
Hermite blending 0 P (u,0) P (u,1) 1 P (u, v)=(1 F 1 (u) F 2 (u)) P (0, v) P (0,0) P (0,1) F 1 (v) P (1, v) P (1,0) P (1,1) F 2 (v) It is possible to carefully select F1 and F2 so that they are C1 continuous, like e.g. Hermite polynomials : F 1 ( x)=2 x 3 3 x 2 +1 F 2 ( x)= 2 x 3 +3 x 2 ( F {1,2}( x) Then, as x )( ) =0, the derivatives are x={0,1} continuous over patch boundaries. However, this is usually not sufficient : there are too many constraints on the derivatives (they vanish) and it yields a surface with flat regions along edges and at corners. 9
Hermite Blending Hermite interpolation H is Hermite's matrix C (u)=( A1, A2, A1u, Au2 ) 2 3 0 1 2 3 0 0 1 2 1 0 1 1 0 0 ( 3 u 2 u u 1 )( ) Au1 A2 A1 Au2 10
Hermite Blending Bicubic Hermite patch Hermite interpolation in 2D 4 positions at corners 8 normal derivatives 4 torsion vectors at corners S 3 u, v = u 3, u2, u, 1 H T S(u,v) A00 A10 Au00 Au10 A01 A11 Au01 Au11 Av00 v A10 Auv 00 uv A10 Av01 v3 2 Av11 v H uv v A01 1 Auv 11 11
Bicubic Coons patches Bicubic Coons patch One can build a surface that is based on any boundary curves as for the bilinear patch 8 curves are necessary : 4 positional curves + 4 curves depicting normal derivatives There are constraints between the derivative curve on one side and the positional curve on an incident side. There are also constraints on the derivative curves on each corner (cross derivatives must be equal) S(u,v) 12
Bicubic Coons patches As for the bilinear case, we need information on boundary curves : position + derivatives, and corresponding info at the corners. P v (u,1) [D] P u (0, v) P(u,1) P u (1, v) P(u,v) P(0, v) [A] [C] P (1, v) P (u,0) [B] P v (u,0) [X] = [P(i,j), P(i,j)u, P(i,j)v, P(i,j)uv], (i,j)={0,1}2 13
Bicubic Coons patches Systematic notation for the bicubic Coons patch P (u, v)=(1 F 1 (u) F 2 (u) F 3 (u) F 4 (u)) 0 P (0, v) P (1, v) P u (0, v) P u (1, v) ( P (u,0) P (u,1) P (0,0) P (0,1) P (1,0) P (1,1) P u (0,0) P u (0,1) P u (1,0) P u (1,1) P v (u,0) P v (0,0) P v (1,0) P uv (0,0) P uv (1,0) P v (u,1) P v (0,1) P v (1,1) P uv (0,1) P uv (1,1) 1 F 1 (v) F 2 (v) F 3 (v) F 4 (v) )( ) 14
Bicubic Coons patches =(1 u 3 u 2 u 1) (H *)T 0 P (0, v) P (1, v) P u (0, v) P u (1, v) ( P (u,0) P (0,0) P (1,0) P u (0,0) P u (1,0) with P (u,1) P (0,1) P (1,1) P u (0,1) P u (1,1) P v (u,0) P v (0,0) P v (1,0) P uv (0,0) P uv (1,0) P v (u,1) 1 3 P v (0,1) v * P v (1,1) H v 2 P uv (0,1) v 1 P uv (1,1) ) () 2 3 0 1 1 0 2 3 0 0 H *= and H= 0 H 1 2 1 0 1 1 0 0 ( ) ( ) 15
Bicubic Coons patches As for bilinear patches, it can be decomposed into three surfaces 3 v 2 v S 1 (u, v)=( P (u,0), P (u,1), P v (u,0), P v (u,1) ) H v 1 S 1 u, v () () u3 2 u S 2 (u, v)=( P (0, v), P (1, v), P u (0, v), P u (1, v ) ) H u 1 S 2 u, v 16
Bicubic Coons patches 3 2 S 3 (u, v)= ( u, u, u, 1 ) H T P (0,0) P (0,1) P v (0,0) P v (0,1) v3 2 P (1,0) P (1,1) P v (1,0) P v (1,1) v H P u (0,0) P u (0,1) P uv (0,0) P uv (0,1) v 1 P u (1,0) P u (1,1) P uv (1,0) P uv (1,1) ( ) () P (u, v)=s 1 (u, v)+ S 2 (u, v) S 3 (u, v) 17
Bicubic Coons patches Bicubic Coons patch P (u, v)=s 1 (u, v)+ S 2 (u, v) S 3 (u, v) 3 2 S 3 (u, v )=( u, u, u,1 ) H T ( A00 A 01 A00 v A 01 A10 u A00 A11 u A 01 A10 uv A00 v A11 uv A 01 u 10 u 11 uv 10 uv 11 A A A v v A 3 v 2 v H v 1 )() The terms of the matrix are computed with the help of boundary curves and verify the following conditions : v v A00= P(0,0) A01 =P (0,1) A00= P v (0,0) A01 =P v (0,1) A10= P(1,0) A11= P(1,1) Av10 =P v (1,0) Av11= P v (1,1) Au00 =P u (0,0) Au01=P u (0,1) A uv Auv 00= P uv (0,0) 01 =P uv (0,1) u A10 =P u (1,0) Au11=P u (1,1) uv Auv A11 =P uv (1,1) 10= P uv (1,0) 18
Bicubic Ferguson patch Ferguson patch P (u, v)=s 1 (u, v)+ S 2 (u, v) S 3 (u, v) 3 2 S 3 u, v = u, u, u,1 H T A00 A10 u A00 u A10 A01 A11 Au01 u A11 v A00 v A10 Auv 00 uv A10 v 3 A01 v v 2 A11 v H uv v A01 uv 1 A11 The terms of the matrix are computed with the help of boundary curves and verify the following conditions : A00= P(0,0) A10= P(1,0) u 00 A =P u (0,0) u A10 =P u (1,0) v A01 =P (0,1) A11= P(1,1) 2 P A =P u (0,1) A such that (0,0)=0 u v 2 P u uv A11=P u (1,1) A10 such that (1,0)=0 u v u 01 v A00 =P v (0,0) v A10 =P v (1,0) uv 00 A01=P v (0,1) v A11 =P v (1,1) 2 P A such that (0,1)=0 u v 2 P uv A11 such that (1,1)=0 u v uv 01 19
Bicubic Coons patches We can impose the position and the normal tangent along the boundaries Remain the problem of the continuity at every corner We usually impose that cross derivatives vanish Ferguson patch Other constraints may be found in the literature... 20
CAD Surfaces Tensor product surfaces 21
Tensor product surfaces Parametric surfaces as a polar form S (u, v)= N k (u, v ) P k k One shape function per control point If Nk is separable : «Tensor product» surface Combination of elementary curves/shape functions independently defined on u and v. S (u, v)= G i (u) H j (v) P ij i j Usually built upon Bézier and B-Splines curves/sfs The unique shape function is N k (u, v)=g i (u) H j (v) 22
B-Spline surfaces B-Splines surfaces uses 1D B-Spline shape fns. Definition as tensor product : n m S u, v = N ip u N qj v P ij i=0 j=0 Every variable u and v has a degree (p and q) and a nodal sequence U and V : U ={0,, 0, u p+ 1,, ur p 1,1,,1 } (r+ 1 nodes) p+ 1 p+ 1 V ={0,, 0, v q+ 1,, v s q 1, 1,,1 } q+ 1 (s+ 1 nodes) q+ 1 The control points forms a regular net Pij ( n+1 times m+1 ) values. We have the following relations : r=n+ p+ 1 s=m+ q+ 123
B-Spline surfaces Example of basis functions U ={0, 0, 0,0,1/4,1/ 2, 3/ 4,1,1,1,1} p=3 V ={0, 0, 0,1/5, 2/5, 3/5, 3/5, 4/5,1,1,1} q=2 N 24 v N 22 v N 34 u N 34 (u) N 24 (v) Basis function associated to P 44 N 34 u N 34 (u) N 22 (v) Basis function associated to P 42 L. Piegl «The NURBS Book» 24
B-Spline surfaces Properties of surface basis functions Extrema If p>0 and q>0, N ip u N qj v has a unique maximum. Continuity Inside rectangles formed by the nodes ui and vj, the SF are infinitely differentiable. At a node ui (resp. vj), N ip u N qj v is (p-k) (resp. (q-k) ) times differentiable, k being the node multiplicity ui (resp. vj) The continuity with respect to u (resp. v) depends solely on the nodal sequence U (resp. V). 25
B-Spline surfaces Properties of surface basis functions A consequence of properties of the 1D shape functions Non-negativity p q N i u N j v 0 i, j, p, q, u, v Partition of unity n m p q N u N i j v =1 u, v [u min, u max ] [v min, v max ] i=0 j=0 Compact support N ip (u) N qj (v)=0 outside (u, v) [ u i, u i+ p+ 1 [ [ v j, v j+ q+ 1 [ There are at most (p+1)(q+1) non zero SF in a given interval [ ui, ui 1 [ [ v j, v j 1 [. In particular N ip u N qj v 0 i 0 p i i 0 j 0 q j j 0 0 0 0 0 26
B-Spline surfaces Properties of surface basis functions Extrema If p>0 and q>0, N ip u N qj v has a unique maximum. Continuity Inside rectangles formed by the nodes ui and vj, the SF are infinitely differentiable. At a node ui (resp. vj), N ip u N qj v is (p-k) (resp. (q-k) ) times differentiable, k being the node multiplicity ui (resp. vj) The continuity with respect to u (resp. v) depends solely on the nodal sequence U (resp. V). 27
B-Spline surfaces N 32 u N 22 v N 34 u N 24 v U ={0, 0, 0,0,1, 2, 2, 2, 2} p=3 U ={0, 0, 0,0,1, 2, 3, 4, 5,6,6,6,6} V ={0,0, 0, 1, 2, 3, 3,3} q=2 V ={0, 0, 0,1, 2, 3, 4,5,6, 7, 7, 7} 28
B-Spline surfaces N 30 u N 28 v N 31 u N 27 v N 38 u N 28 v N 30 (u) N 20 (v) N 37 u N 27 v N 31 (u) N 12 (v) N 38 u N 20 v N 37 u N 21 v U ={0, 0, 0,0,1, 2, 3, 4, 5,6,6,6,6} p=3 V ={0,0, 0, 1, 2, 3, 4,5,6, 7, 7, 7} q=2 29
B-Spline surfaces Computation of a point on the surface 1 Find the nodal interval in which u is located u [ u i, u i 1 [ 2 Compute the non vanishing 1D shape functions p p N i u,, N p i u 3 Find the nodal interval in which v is located v [ v j, v j +1 [ 4 Compute the non vanishing 1D shape functions N qj q v,, N qj v 5 Multiply the SFs with the adequate control points S u, v = N kp u P kl N lq v k l i p k i, j q l j 30
B-Spline surfaces Control point Corresponding position at a couple (ui,vj) V ={0,0,0,1, 2,3,3, 3} p=2 U ={0,0,0,0,1, 2, 3, 3, 3, 3} q=3 Each coloured square has an independent polynomial expression 31
B-Spline surfaces U ={0, 0, 0,0,1, 2, 2, 2, 2} p=3 V ={0,0, 0, 1, 2, 3, 3,3} q=2 32
B-Spline surfaces Repetitions in the nodal sequence U or V Discontinuities along iso-v or iso-u U ={0, 0, 0,0, 2, 2, 2, 4, 4, 4, 4} p=3 V ={0,0, 0, 1.5,1.5, 3, 3,3} q=2 33
B-Spline surfaces Properties of the B-Spline surface Interpolate the 4 corners if the nodal sequences are of the form U ={0,, 0, u p 1,, ur p 1,1,,1 } p 1 p 1 V ={0,, 0, v q 1,, v s q 1,1,,1 } q 1 q 1 If the nodal sequences correspond to Bézier curves : U ={0,, 0,1,,1 } 0,1,,1 } V ={0,, p 1 p 1 q 1 q 1 then the surface is called a Bézier patch. 34
B-Spline surfaces Properties of the B-Spline surface The surface has the property of affine invariance (invariance by translation in particular) The convex hull of the control points contains the surface. In every interval (u, v) [ ui, ui +1 [ [ v j, v j +1 [, the portion of the surface is in the convex hull of the control points P ij, (i, j ) such that i 0 p i i 0 j 0 q j j 0 0 0 0 0 Control points may have a local control There is no variation diminishing property ( on the contrary to B-Spline/Bézier curves) 35
B-Spline surfaces Isoparametrics Computation of isoparametrics is easy : Set u=u0 n m p q C u v =S u 0, v = N i u 0 N j v P ij 0 i=0 j=0 m q j j=0 n m = N v N u0 P ij = N qj v Q j u 0 i=0 p i j=0 n with Q j (u 0 )= N ip (u 0 ) P ij i=0 same with v=v0 n C v (u)=s (u, v 0 )= N ip (u)qi (v 0 ) m i=0 with Q i (v 0 )= N qj (v0 ) P ij 0 j=0 36
B-Spline surfaces Derivatives of a B-Spline surface k l S u, v We want to compute k l u v Differentiation of basis functions : n k l m k l p q S u, v = N u N i j v P ij k l k l u v i=0 j=0 u v n m = i=0 j=0 n m k l q p N i u l N j v P ij k u v p k = N i i=0 j=0 q l u N j v P ij 37
B-Spline surfaces Derivatives expressed as B-Spline surfaces Let's derive formally S with respect to u: m n S (u, v) = N qj (v) N ip (u) P ij u u i=0 j=0 ( ) m = N qj (v) C j (u) u j=0 ( ) n with C j (u)= N ip (u) P ij i=0 We want to apply equations seen for curves : 38
B-Spline surfaces n Derivatives of the curve C j u = N ip u P ij i=0 U ={u u m p,, u m } 0,, u p,, p+ 1 times p+ 1 times ' ' ' ' ' U ' ={u,, u,, u,, u } with u 0 p 1 m p 1 m 2 i =u i+ 1 p times p times n 1 P ' (u)= N ip 1 (u)qi with N ip 1 defined on U ' i=0 P i 1 j P ij Qi = p u i d 1 u i 1 39
B-Spline surfaces We obtain : n 1 m S u, v = N ip 1 u N qj v P 1,0 ij u i=0 j=0 with P (1,0) ij P i+ 1 j P ij =p u i+ p+ 1 u i+ 1 U ={u u m p,, u m } 0,, u p,, p+ 1 times p+ 1 times (1) (1) (1) (1) (1) U (1)={u,, u,, u,, u } with u 0 p 1 m p 1 m 2 i =u i+ 1, 0 i m 2 p times p times 40
B-Spline surfaces Let's derive formally S with respect to v: n m 1 S u, v 0,1 = N ip u N q 1 v P j ij v i=0 j=0 with P (0,1) ij P i j+ 1 P ij =q v j+ q+ 1 v j+ 1 V ={v v n q,, v n } 0,, v q,, q+ 1 times (1) (1) q+ 1 times (1) (1) (1) (1) V ={v v n q 1,, v n 2 } with v j =v j+ 1,0 j n 2 0,, v q 1,, q times q times 41
B-Spline surfaces Let's derive formally S with respect to u, then v: n 1 m 1 2 S u, v 1,1 = N ip 1 u N q 1 v P j ij u v i=0 j=0 (1,0) (1,0) P P i j+ 1 ij with P (1,1) =q ij v j+ q+ 1 v j+ 1 (1) (1) (1) (1) (1) U (1)={u,, u,, u,, u } with u 0 p 1 m p 1 m 2 i =u i+ 1, 0 i m 2 p times p times (1) (1) (1) (1) (1) V (1)={v,, v,, v,, v } with v 0 q 1 n q 1 n 2 j =v j+ 1, 0 j n 2 q times q times 42
B-Spline surfaces General case : n k m l k l S u, v p k q l k, l = N u N v P i j ij uk vl i=0 j=0 (k,l 1) (k, l 1) P i j+ 1 P ij (k, l ) with P ij =(q l+ 1) v j+ q+ 1 v j+ l (k ) (k ) (k ) (k ) (k ) U (k )={u,, u,, u,, u } with u 0 p k m p k m 2k i =u i+ k, 0 i m 2 k p+ 1 k times p+ 1 k times (l ) (l ) (l) (l) (l) V (l )={v,, v,, v,, v } with v 0 q l n q l n 2l j =v j+ l, 0 j n 2l q+ 1 l times q+ 1 l times The derivative vector of a B-Spline surface also is a BSpline surface... 43
B-Spline surfaces Periodic surfaces Like for the curves, possibility to close a B-Spline surface by transforming the nodal sequence According to one parameter (u or v) Cylindrical surfaces A single periodic nodal sequence Control points on both sides of the seam are doubled According to both parameters (u and v) Toroidal surfaces Two periodic nodal sequences Some control points are repeated 4 times! 44
B-Spline surfaces v u v u Pipe Möbius strip 45
B-Spline surfaces U ={ 3, 2, 1,0,1, 2,3, 4,5, 6,7,8, 9,10,11,12,13,14,15} p=3 46 V ={0, 0, 0,1, 2,3, 4,5,6,7,7, 7} p=2
B-Spline surfaces U ={ 3, 2, 1,0,1, 2,3, 4,5, 6,7,8, 9,10,11,12,13,14,15} p=3 47 V ={0, 0, 0,1, 2,3, 4,5,6,7,7, 7} p=2
B-Spline surfaces v u v u Tore Twisted Tore... 48
B-Spline surfaces 49
B-Spline surfaces 50
B-Spline surfaces U ={ 3, 2, 1,0,1, 2,3, 4,5, 6,7,8, 9,10,11,12,13,14,15} p=3 51 V ={ 2, 1, 0, 1, 2, 3, 4,5, 6, 7, 8,9} p=2
B-Spline surfaces v u Klein's bottle 52
B-Spline surfaces Some manipulations Insertion of nodes Extraction of iso-parametrics Calculation of the position of a point on the surface Subdivision of the surface Transformation into Bézier patches 53
B-Spline surfaces Insertion of nodes We insert nodes In a nodal sequence (U ou V) The new nodal sequence replace the old one The control points are modified If U is modified, every series of control points corresponding to v=cst is independently modified If V is modified, every series of control points corresponding to u=cst is independently modified We use Boehm's algorithm as for curves v V ={0,0,0,1, 2,3,3, 3} p=2 U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 u 54
B-Spline surfaces Insertion of nodes in u U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 1, 2, 3, 3, 3} q=2 U ={0, 0, 0, 0, 0.4,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 1, 2, 3, 3, 3} q=2 55
B-Spline surfaces Insertion of nodes in v U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 1, 2, 3, 3, 3} q=2 U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 0.4, 1, 2, 3, 3, 3} q=2 56
B-Spline surfaces Extraction of iso-parametrics using node insertion We must saturate one node in u=uiso (resp. in v=viso ). The new control points obtained by Boehm's algorithm do form the control polygon of the iso-parametric curve. The nodal sequence of this curve is V (resp. U ). 57
B-Spline surfaces Extraction of an isoparametric in u uiso=0.4 U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 1, 2, 3, 3, 3} q=2 U ={0, 0, 0,0, 0.4, 0.4,0.4,1, 2, 3, 3,3,3} p=3 V ={0, 0, 0, 1, 2, 3, 3, 3} q=2 58
B-Spline surfaces Extraction of an isoparametric in v viso=0.4 U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 1, 2, 3, 3, 3} q=2 U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 0.4, 0.4, 1, 2, 3, 3, 3} q=2 59
B-Spline surfaces Computation of the position of a point on the surface u=0.4 U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 1, 2, 3, 3, 3} q=2 v=0.4 U ={0, 0, 0, 0, 0.4, 0.4, 0.4,1, 2, 3,3,3, 3} p=3 V ={0, 0, 0, 0.4, 0.4, 1, 2, 3, 3, 3} q=2 60
B-Spline surfaces Subdivision of the surface into independent patches U ={0.4, 0.4, 0.4, 0.4,1, 2, 3,3,3,3} p=3 V ={0.4,0.4,0.4,1, 2,3,3,3} p=2 U ={0, 0, 0, 0, 0.4, 0.4, 0.4, 0.4} p=3 V ={0,0,0,0.4,0.4,0.4 } p=2 U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 1, 2, 3, 3, 3} q=2 U ={0.4, 0.4, 0.4, 0.4,1, 2, 3,3,3,3} p=3 V ={0, 0, 0, 0.4, 0.4, 0.4} q=2 61
B-Spline surfaces Subdivision into Bézier patches... one must saturate every node of each nodal sequence U and V U ={0, 0, 0, 0,1, 2,3,3,3, 3} p=3 V ={0, 0, 0, 1, 2, 3, 3, 3} q=2 U ={0, 0, 0,0,1, 1, 1, 2, 2, 2, 3, 3, 3, 3} p=3 V ={0, 0, 0, 1,1, 2, 2, 3, 3, 3} q=2 62
B-Spline surfaces Continuity requirements for surfaces C1 vs C2 becomes visible when light interaction comes into play 63
CAD Surfaces Bézier triangle 64
Bézier triangle Need for specific topology Box corner aka «coin de valise» (in French) S. Hahmann 65
Bézier triangle There are several techniques to model the corner It's more difficult than one thinks... On may take a regular patch with 4 sides and «limit» it by a triangle in the parametric space Problem : The surface in question is not built with the control points of the other surfaces, so any continuity is difficult to enforce (minimization of a non linear functional) v u 66
Bézier triangle Degenerated quadrangular patch Normals and derivatives are undefined at the singular point 67
Bézier triangle 68
Bézier triangle Triangular B-splines 1992 : works of Dahmen, Micchelli et Seidel W. Dahmen, C.A. Micchelli and H.P. Seidel, Blossoming begets BSplines built better by B-patches, Mathematics of Computation, 59 (199), pp. 97-115, 1992 Extension of the definition of B-Splines on triangular surfaces of any topology Network of control points «Mesh» of non structured topology instead of a structured network as for B-splines surfaces Complex and not usually not implemented in current CAD software, therefore not a standard tool. 69
Bézier triangle Triangular Bézier Surfaces Example : surface of order 3 70
Bézier triangle a Barycentric coordinates p=u a v b w c u v w=1 p b Affine invariance 0 u, v, w 1 p is in the triangle u= c area ( p, b, c) area ( p, c, a) area ( p, a, b) v= w= area (a, b, c) area (a, b,c) area (a, b, c) 71
Bézier triangle Barycentric coordinates a w v w u b w v p u u v c 72
Bézier triangle Decomposition of the Bézier triangle Defined by the control points Pi,j,k Degree d : i+j+k=d Example with d=3 P0,3,0 P0,2,1 P1,2,0 P0,1,2 P1,1,1 P2,1,0 P0,0,3 P1,0,2 P2,0,1 P3,0,0 P0,0,3 Overall, d 2 d 1 control points. 2 P0,3,0 P1,2,0 P3,0,0 73
Bézier triangle De Casteljau's algorithm on the Bézier triangle The Pi,j,k are given We want to compute P(u,v,w) with u+v+w=1 We follow the following algorithm : initialize P 0i, j, k u, v, w = P i, j, k for r from 1 to d and for every triplet (i,j,k) s.t. i+j+k=d-r r r 1 r 1 r 1 P i, j, k u, v, w =u P i 1, j, k v P i, j 1, k w P i, j, k 1 The point on the surface is the last point : d P u, v, w = P 0,0,0 u, v, w 74
Bézier triangle De Casteljau's algorithm on the Bézier triangle d P 0,0,0 u, v, w 75
Bézier triangle Characteristics of the Bézier triangle Affine invariance Contained in the convex hull of the control points Interpolation of extremal vertices Edges of the Bézier triangle are in fact Bézier curves Algebraic form : another form of Bernstein polynomials P u, v, w = i j k =d with (recurrence) B d i, j,k B id, j, k u, v, w P i, j, k d! i j k u, v, w = uv w i! j!k! d 1 d 1 d 1 B id, j, k u, v, w =ub i 1, vb wb j,k i, j 1, k i, j, k 1 0 B 0,0,0 u, v, w =1 76
Bézier triangle Characteristics (following) On the contrary to tensor product surfaces, the Bézier triangle is variation diminishing. 77
Bézier triangle Degree elevation The Pi,j,k are given, we search the P' i,j,k corresponding to the same surface of degree d+1 Forrest's relations for the Bézier triangle P 'i, j, k = 1 i P i 1, j, k j P i, j 1, k k P i, j, k 1 d 1 B id, 1j, k u, v, w P 'i, j, k i j k =d 1 = B id, j, k u, v, w P i, j, k P u, v, w = i j k =d 78
Bézier triangle Subdivision 79
Bézier triangle Derivatives For tensor product surfaces, partial derivatives are computed along u=const or v=const Here, we express directional derivatives for u=const; v=const or w=const. - these are not partial derivatives! P u, v tdv, w tdw P u, v, w D u P u, v, w =lim t t 0 80
Bézier triangle Case of a surfaces of degree 3 P 0,1,0 = P 0,3,0 P0,3,0 D u P u, v, w 0,1,0 =3 P 0,2,1 P 0,3,0 P0,2,1 P1,2,0 D v P u, v, w 0,1,0 =3 P 1,2,0 P 0,2,1 P0,1,2 P1,1,1 P2,1,0 P0,0,3 P1,0,2 P2,0,1 P3,0,0 D w ( P (u, v, w))(0,1,0)=3( P 1,2,0 P 0,3,0 ) D uu P u, v, w 0,1,0 =6 P 0,1,2 2P 0,2,1 P 0,3,0 D vv P u, v, w 0,1,0 =6 P 2,1,0 2P1,1,1 P 0,1,2 Same at other corners D ww P u, v, w 0,1,0 =6 P 2,1,0 2P 1,2,0 P 0,3,0 D uv P u, v, w 0,1,0 =6 P 1,1,1 P 0,2,1 P 0,1,2 P 1,2,0 D uw P u, v, w 0,1,0 =6 P 1,1,1 P 0,3,0 P 0,2,1 P 1,2,0 D vw P u, v, w 0,1,0 =6 P 2,1,0 P 0,2,1 P 1,2,0 P 1,1,1 81
CAD Surfaces NURBS surfaces
NURBS surfaces Definition and properties
NURBS surfaces NURBS surfaces As for rational curves, a weight is used (homogeneous coordinates) n w m p q w S u, v = N i u N j v P ij i=0 j=0 U ={0,, 0, u p+ 1,, ur p 1,1,,1 } p+ 1 p+ 1 V ={0,, 0, v q+ 1,, v s q 1, 1,,1 } q+ 1 x ij w ij P w y w P wij = ij ij = ij ij w ij z ij w ij w ij ( r+ 1 nodes, r=n+ p+ 1) (s+ 1 nodes, s=m+ q+ 1) q+ 1 We have the equivalence [wx, wy, wy, w ] [ x, y, z,1] n m N ip u N qj v P ij w ij S u, v = i=0n j=0m p q N k u N l v w kl k =0 l=0 w 0
NURBS surfaces NURBS Basis functions n m N ip u N qj v P ij w ij S u, v = i=0 j=0 n m p q N k u N l v w kl k =0 l=0 N ip u N qj v w ij p,q R ij u, v = n m p q N k u N l v w kl k =0 l =0 n m R ijp, q u, v P ij i=0 j=0
NURBS surfaces Properties of basis functions of 3D NURBS Partition of unity n m Rijp, q u, v =1 i=0 j=0 Positivity (if the w are positive) R ijp, q u, v 0 NO property of tensor product R ijp, q u, v Rip u R qj v except if the weights are all equal w ij =a 0 i, j {0 n} {0 m} R ijp, q u, v = N ip u N qj v
NURBS surfaces Properties of basis functions of 3D NURBS Compact support R ijp, q u, v =0 si u, v [ u i, u i p 1 [ [ v j, v j q 1 [ At the most (p+1)(q+1) non zero basis functions on an interval [ ui0, ui0 1 [ [ v j0, v j0 1 [ : R ijp, q u, v 0 si i, j {i0 p i0 } { j0 q j0} R ijp, q u, v has exactly a maximum if p>0 et q>0. If the nodal sequences with p+1 and q+1 repetitions : p,q p,q p,q p,q R 00 u, v =1, R n0 u, v =1, R0m u, v =1, R nm u, v =1 Infinitely differentiable functions for u {ui } and v {v j } otherwise they are (p-ku) times differentiable (direction u) and/or (q-kv) times differentiable (direction v)
NURBS surfaces Effect of the weight on a shape U ={0, 0,0, 0, 1, 2,3, 4, 4, 4, 4} V ={0, 0,0,1, 2, 3,3,3}
NURBS surfaces Effect of the weight on a shape w=1 w=2 w=5 w=10
NURBS surfaces Effect of the weight on a shape w=1 w=0.5 w=0.2 w=0.1
NURBS surfaces Derivatives of a NURBS surface It is easy to compute the derivatives in the space of homogeneous coordinates (4D) but...we obviously want derivatives in the 3D space... n m p q N i u N j v P ij w ij S u, v = i=0n j=0m N kp u N ql v w kl k =0 l=0 S u, v = A u, v w u, v A(u, v) w(u, v) S (u, v) S (u, v) α α =, α=u or v α w(u, v)
NURBS surfaces With a recursion, it is possible to show that : k +l k k +l i ( k i)+l S 1 A S k w = u k v l w u k v l i=1 i u i u k i v l ( l j () k +(l j) S l w j v j uk vl j () k l w + ( ) ( ) i j u v u j=1 k i=1 n! n = k k! n k! l j=1 i+ j i (k i)+(l j) j k i v S l j )
NURBS surfaces Second derivative 2 S 1 2 A 2 w w S w S = S u v w u v u v u v v u 2 S 1 2 A 2 w w S = S 2 u u u 2 w u 2 u2 2 S 1 2 A 2 w w S = S 2 v v v2 w v 2 v 2
CAD Surfaces Subdivision surfaces 94
Subdivision surfaces Parametric surfaces: an explicit representation Lightweight Discretization algorithms are non trivial... but it is necessary for display purposes and in computer graphics Generally, these surfaces are used in cases where the geometric accuracy is essential, as in the computation of intersections and other precise geometric primitives Modelling operators are not trivial In computer graphics, such accuracy is generally not needed. 95
Subdivision surfaces Subdivision surfaces Modelling basis = elementary mesh By successive iterations, this mesh is refined up to the accuracy needed for the application It is more like an algorithmic description vs. an algebraic representation, because the algorithm that is used to subdivide the mesh determines the final shape and the properties of the limiting surface (ie. when the number of subdivisions tends to the infinite) Some of these limiting surfaces are equivalent to regular parametric surfaces, therefore have the same accuracy. 96
Subdivision surfaces History 1974 George Chaikin An algorithm for high speed curve generation 1978 Daniel Doo & Malcolm Sabin (D) A subdivision algorithm for smoothing irregularly shaped polyhedrons (D&S) Behaviour of recursive division surfaces near extraordinary points. 1978 Edwin Catmull & Jim Clark Recursively generated B-Spline surfaces on arbitrary topological meshes 1987 Charles Loop Smooth subdivision surfaces based on triangles 2000 Leif Kobbelt 3 subdivision (interpolating scheme) 97
Subdivision surfaces Chaikin's scheme George Chaikin, An algorithm for high speed curve generation, Computer graphics and Image Processing 3 (1974), 346-349 98
Subdivision surfaces Chaikin's scheme or «Corner-cutting» 99
Subdivision surfaces Chaikin's scheme Chaikin's idea was simple : repeating the corner cutting, to the limit, one obtains a smooth curve 100
Subdivision surfaces Chaikin's scheme Starting from a polygon having n vertices {P0,P1, Pn-1}, one builds the polygon having 2n vertices {Q0,R0,Q1,R1, Qn-1,Rn-1}. This polygon serves as a basis for the next step of the algorithm : {P'0,P'1, P'2n-1} The new vertices are : P0 Q0 R0 3 1 Qi = P i P i 1 4 4 1 3 Ri = P i P i 1 4 4 P1 Q1 Pn R1 Rn-1 Qn-1 Pn-1 101
Subdivision surfaces Chaikin's scheme Riesenfeld (1978) has shown that this algorithm leads at the limit to an uniform quadratic B-spline, which exhibits a C1 continuity. P0 Q0 R0 3 1 Q i = P i P i 1 4 4 1 3 Ri = P i P i 1 4 4 P1 Q1 Pn R1 Rn-1 Qn-1 Pn-1 102
Subdivision surfaces Demonstration of the equivalence of Chaikin's scheme and uniform quadratic B-Splines The B-Spline curve is defined n by : P u = P i N 2i u i=0 u u i u i 3 u 1 1 N u = N i u N i 1 u u i 2 u i u i 3 u i 1 2 i 1 N i u = N 0i (u)= u u i u i 2 u 0 0 N i u N i 1 u u i 1 u i u i 2 u i 1 1 if 0 otherwise { u i u<u i+1 U ={u 0,, u n 2 }, u i 1 u i =1, i=0 n 1 103
Subdivision surfaces It can be rewritten as an assembly of curve parts : n 2 i n 2 «Portion» of curve P u = P i N u = P k u i=0 k =0 Pk with P k u =[1 u u ] M k P k 1 P k 2 2 [ ] The matrix Mk depends on the nodal sequence U. P1 P3 P4 P2(u) P0(u) P0 P1(u) P2 104
Subdivision surfaces Computation of shape functions of degree d 2 for u2= 0 u u3=1 U ={u 0 = 2, u 1 = 1, u 2 =0,u 3 =1,u 4 =2, u 5=3} 0 N 0=0 1 0 1 1 1 2 1 3 0 N =0 0 N =1 u N =u 0 N =0 N 1 =0 0 N 2 =1 N 3 =0 N 4 =0 General case : M k = with : =u k 3 u k 1 =u k 4 u k 2 1 u k +3 u k + 2 [ 1 N 20 = 1 2 u u 2 2 1 N 12 = 1 2 u 2 u 2 2 1 N 22 = u 2 2 1 0 1 1 Therefore, M 0 = 2 2 0 2 1 2 1 [ 2 u k +3 α u k +3 2 α 1 α 2 u k + 3 u k +1 u k +4 u k + 2 uk+2 α β β u k +3 +u k +1 u k +4 +u k + 2 u k +2 + 2 β α β 1 1 1 α β β ] ] 105
Subdivision surfaces Binary subdivision of a B-Spline curve for 0 u 1 One has to find the new set of control points for each halves of the curve We set n=2 (number of control points -1) P0 P u =[1 u u ] M P 1 P2 2 [] 1 0 1 1 M = 2 2 0 2 1 2 1 [ One wants to express P[0,1 /2] u and P[1 /2,1] u - on each subdivision, the parameter u shall be in between 0 and 1. P0 ] P1 P[0,1 /2] u P[1 /2,1] u P2 106
Subdivision surfaces Case of P[0,1 /2] u P0 P[0,1 /2] u = P u/ 2 =[1 u /2 u / 4] M P 1 P2 2 [] ] [] P0 1 0 0 =[1 u u ] 0 1/2 0 M P 1 0 0 1/4 P2 2 [ P0 1 0 0 =[1 u u ] M M 0 1/ 2 0 M P 1 0 0 1/4 P2 2 ] [] [] [] [ 1 Q0 =[1 u u ] M Q1 Q2 2 [ avec Q0 P0 1 0 0 1 Q1 =M 0 1/ 2 0 M P 1 0 0 1/ 4 Q2 P2 ] [] S [0,1 /2] 107
Subdivision surfaces Case of P[1 /2,1] u P0 P[1 /2,1] u = P 1 u / 2 =[1 1 u /2 1 u / 4] M P 1 P2 2 [] P0 1 1/2 1/4 =[1 u u ] 0 1/2 1/2 M P 1 0 0 1/4 P2 2 [ ] [] [ ] [] [] [] [ P0 1 1/2 1/ 4 =[1 u u ] M M 0 1/2 1/ 2 M P 1 0 0 1/ 4 P2 2 1 R0 =[1 u u ] M R 1 R2 2 avec R0 P0 1 1/ 2 1/4 1 R 1 =M 0 1/ 2 1/2 M P 1 0 0 1/4 R2 P2 ] [] S [1/ 2,1] 108
Subdivision surfaces Finally, Q0 P0 Q1 =S [ 0,1/2] P 1 Q2 P2 1 0 0 3 1 0 1 S [0,1/ 2]=M 0 1/ 2 0 M = 1 3 0 4 0 0 1/4 0 3 1 Q0 3 P 0 P 1 1 Q1 = P 0 3 P 1 4 Q2 3 P 1 P 2 R0 P0 R 1 =S [1/ 2,1] P 1 R2 P2 1 1/ 2 1/ 4 1 3 0 1 S [1/ 2,1]=M 0 1/ 2 1/ 2 M = 0 3 1 4 0 0 1/ 4 0 1 3 R0 P 3 P 1 1 0 R 1 = 3 P 1 P 2 4 R2 P 1 3 P 2 [] [] [] [] 1 1 [ [ ] [ ] [] [ ] ] [ ] [] [ ] P1 Q1 = R 0 Q2= R1 Q0 P0 One finds the same coefficients as in Chaikin's scheme... (except for the indices) R2 P[0,1 /2] u P[1 /2,1] u P2 3 1 Qi = P i P i 1 4 4 1 3 Ri = P i P i 1 4 4 109
Subdivision surfaces This can be extended to cubic B-Splines C2 continuity 1 1 E i = P i P i 1 2 2 1 3 1 V i = P i P i 1 P i 2 8 4 8 P1 P0 E0 V0 E1 Pn V1 En-1 Pn-1 110
Subdivision surfaces Doo-Sabin scheme This is an extension of Chaikin's scheme for a uniform biquadratic BSpline surface The new mesh is built using the control points resulting from the subdivision of the original patch into 4 new sub-patches. P02 P00 S1(u,v) S (u,v) 3 S2(u,v) P20 S4(u,v) P22 111
Subdivision surfaces Expression of the bi-quadratic patch as a monomial form for 0 u 1 and 0 v 1: 1 2 2 N t = 1 2 t t 2 2 0 2 2 2 S u, v = N i u N j v P ij 1 i=0 j=0 (with t = u or v ) N 21 t = 1 2 t 2t 2 2 U =V ={ 2, 1,0,1,2,3} 1 N 22 t = t 2 2 P 0 v P02 2 P00 S u, v =[1 u u ] M P 1 v v P 2 v u P 00 P 01 P 02 1 T S u, v =[1 u u ] M P 10 P 11 P 12 M v 2 v P 20 P 21 P 22 2 P20 [ ] [ ] [] P22 1 0 1 1 Again, M = 2 2 0 2 1 2 1 [ ] 112
Subdivision surfaces Subdivision - patch S1(u,v) 1 S 1 u, v =S u/ 2, v / 2 =[1 u /2 u /4] M P M v /2 2 v /4 P 00 P 01 P 02 P= P 10 P 11 P 12 P 20 P 21 P 22 1 S 1 u, v =S u/ 2, v / 2 =[1 u u ] C M P M C v 2 v 1 0 0 C= 0 1/2 0 0 0 1/ 4 2 T 2 P02 S1(u,v) P20 P22 [ T ] ] 1 =[1 u u ] M M C M P M C ( M ) M v 2 v 1 2 1 1 T T =[1 u u ] M ( M C M ) P ( M C M ) M v 2 v 1 2 T =[1 u u ] M P ' M v P ' =S P S T S =M 1 C M v2 113 2 P00 T [ [ ] [] T 1 [] T 1 T T [] []
Subdivision surfaces P02 P00 Finally, P ' =S P S T P'00 3 1 0 1 1 S =M C M = 1 3 0 4 0 3 1 [ ] ][ ] 3 1 0 P 00 P 01 P 02 3 1 0 1 P'= 1 3 0 P 10 P 11 P 12 1 3 3 16 0 3 1 P 20 P 21 P 22 0 0 1 [ ][ P'20 P'02 S1(u,v) P'22 P20 3(3 P 00 + P 10 )+3 P 01 + P 11 3 P 00 + P 10 +3(3 P 01+ P 11) 3(3 P 01 + P 11 )+3 P 02 + P 12 1 P'= 3( P 00 +3 P 10 )+ P 01 +3 P 11 P 00 +3 P 10 +3( P 01 +3 P 11) 3( P 01 +3 P 11 )+ P 02 +3 P 12 16 3(3 P 10 + P 20 )+3 P 11 + P 21 3 P 10 + P 20 +3(3 P 11 + P 21) 3(3 P 11 + P 21)+3 P 12 + P 22 [ Same developments should be done with the 3 other quadrants, and will lead to the same structure P22 ] 114
Subdivision surfaces Subdivision - patch S2(u,v) P 00 P 01 P 02 P= P 10 P 11 P 12 P 20 P 21 P 22 [ ] [ [] 1 2 T S 2 (u, v )=S (u/ 2,(1+v)/2)=[1 u/2 u /4] M P M (1+v)/ 2 (1+v)2 / 4 ] 1 S 2 (u, v )=S (u/ 2,(1+v)/2)=[1 u u ] C u M P M C v v2 2 T 1 0 0 C u = 0 1/ 2 0 0 0 1/ 4 [ T v 1 1/2 1/4 C v= 0 1/2 1/2 0 0 1/4 [ ] 1 =[1 u u ] M ( M C u M ) P ( M C v M ) M v v2 1 T 1 2 T Q ' =S u P S v S u =M C u M =[1 u u ] M Q ' M v 2 v S v= M 1 C v M 2 1 1 [] T T ] [] 115
Subdivision surfaces T Q ' =S u P S v 3 1 0 1 1 S u =M C u M = 1 3 0 4 0 3 1 [ ] [ ] ][ ] Q'00 S2(u,v) 1 3 0 1 S v= M C v M = 0 3 1 4 0 1 3 1 3 1 0 P 00 P 01 P 02 1 0 0 1 Q '= 1 3 0 P 10 P 11 P 12 3 3 1 16 0 3 1 P 20 P 21 P 22 0 1 3 [ ][ P02 P00 Q'02 Q'20 Q'22 P20 P22 Some of the points (2) are already computed, e.g. Q ' 00 =3( P 00 +3 P 01)+ P 10 +3 P 11 ( =P ' 01=3 P 00 + P 10 +3(3 P 01 + P 11 ) ) 116
Subdivision surfaces Extension to meshes showing an arbitrary topology P00 P20 P02 P22 The new vertices are obtained as a simple arithmetic mean of 3 categories of vertices : The vertices of the old mesh Vertices on the edges (barycentre of the extremities of the edge) Vertices inside a face (barycentre of the vertices of the face) 117
Subdivision surfaces Extension to meshes showing an arbitrary topology 1 Computation of the vertices P' (for each vertex P, compute the mean between P, the vertices on the adjacent faces, and the vertices on adjacent edges) 118
Subdivision surfaces Extension to meshes showing an arbitrary topology 2 For each face, link the corresponding vertices P' 119
Subdivision surfaces Extension to meshes showing an arbitrary topology 3 For each old vertex, connect the new ones that have been created for each adjacent face to this old vertex. 120
Subdivision surfaces Extension to meshes showing an arbitrary topology 4 For each old edge, connect the new vertices that have been created for each adjacent face to this old edge. 121
Subdivision surfaces Some points on the mesh and the limiting surface are «extraordinary» These are vertices with a valence (number of incident edges) that is different from 4. Everywhere the continuity of the limiting surface is C1 ; except at extraordinary points, where it decreases to C0. Image : wikipedia 122
Subdivision surfaces Catmull-Clark scheme Similar idea for bicubic B-Splines ( proof : Jos Stam, Siggraph 1998) P00 P03 P30 P33 123
Subdivision surfaces Three types of vertices - «Face» vertices are at the barycentre of the vertices of that face: P f =Q - «Edge» vertices are at the barycentre of the extremities of the edge and the two «Face» vertices of the adjacent faces : Q R P e= 2 - «Corner» vertices are positioned such that : Q 2 R n 3 S Pv= n Q = mean of the barycentre of the incident faces R = mean of the barycentre of the incident edges S = original vertex n = number of incident edges to S (Valence) «face» vertices «edge» vertices «corner» vertices 124
Subdivision surfaces 1/4 1/4 6/64 1/4 Face vertex 1/16 6/16 1/16 1/4 36/64 1/16 6/16 1/16 Edge vertex 1/64 6/64 1/100 6/100 6/100 65/100 6/36 1/36 15/36 6/36 Corner vertex (depends on the valence) 125
Subdivision surfaces Reconnecting the new vertices 1 Connect the «face» vertices to the «edge» vertices of neighbouring edges 2 Connect the «corner» vertices to the «edge» vertices of incident edges Images : Ken Joy - UCLA 126
Subdivision surfaces As with Doo-Sabin surface, the continuity is degraded for some extraordinary vertices. The bicubic surfaces are therefore C2 everywhere except at extraordinary points : it is then only C1. Images : Imorasa Suzuki 127
Subdivision surfaces Loop's scheme Allows to subdivide triangular meshes The limiting surface is C2, except at extraordinary vertices of valence <>6, where it is only C1. The principle is to subdivide triangles into 4 sub-triangles. Corner 1vertices (black) and1 edge vertices (red) are created. 2 1 1 V1 10 6 6 E1 2 1 1 V 1= 10 V +Q 1+Q 2 +Q3 +Q 4 +Q 5 +Q 6 16 5 3 = V+ Q 8 8 E 1= 6 V 1 +6 V 2 +2 F 1 + 2 F 2 16 128
Subdivision surfaces As such, works only for vertices with a valence equal to 6 It may be extended to other valences, but the formula has to be adapted such that the resulting surface is smooth. Let V 1 =α n V +(1 α n )Q 3 1 3π 2 3 with α n = + cos + 8 4 n 8 ( ) n is the valence of the original vertex. On boundaries : vertices should not move inside the surface, they should rather slide along the boundary. One recovers the classical cubic B-Spline scheme in that case E 1= 11 1 E V1 1 6 1 V 1 +V 2 2 * 1 Q +Q 6 V 1= V + 8 8 * 2 (only if the vertices are neighbours on the boundary) 129
Subdivision surfaces Loop's scheme 130
Subdivision surfaces Kobbelt's 3 scheme See paper on the course's website For a similar level of refinement, it generates less triangles than Loop's scheme 131
Subdivision surfaces Subdivision surfaces in CATIA A very easyto-use design tool As S-s are equivalent to some class of B-Spline surfaces, they retain a good degree of accuracy CATIA Shape module Imagine Shape (IMA) tool 132
Subdivision surfaces and in NX A very easyto-use design tool As S-s are equivalent to some class of B-Spline surfaces, they retain a good degree of accuracy NX Realize shape tool 133
Architectural applications Catia in architecture Frank O. Gehry (Fish sculpture, Barcelona,1992) 134
Architectural applications Catia in architecture Frank O. Gehry (Guggenheim museum, Bilbao,1997) 135
Architectural applications Catia in architecture Frank O. Gehry (Guggenheim museum, Bilbao,1997) 136
Architectural applications Catia in architecture Frank O. Gehry (Walt Disney concert hall, Los Angeles,2003) Carol M. Highsmith 137
Splines of all kinds Zoo of Splines... Lg-splines Analytic splines Parabolic Arc splines Beta splines B-splines Bernoulli splines Box splines Cardinal splines Circular splines Complete splines Nu-splines Natural splines L-splines Whittaker splines Nonlinear splines Dm splines Discrete splines Euler splines Exponential splines Gamma splines GB-splines HB-splines Hyperbolic Splines Complete Monosplines Tchebycheffian splines Tension splines Trigonometric splines Bézier splines One-sided splines Parabolic splines Perfect splines Periodic splines Poly-splines Rational splines Simplex splines Spherical splines Taut splines Complex splines Confined splines Deficient splines Thin plate splines 138