Readig Recommeded: Stollitz, DeRose, ad Salesi. Wavelets for Computer Graphics: Theory ad Applicatios, 996, sectio 6.-6.3, 0., A.5. Subdivisio curves ad surfaces Note: there is a error i Stollitz, et al., sectio A.5. Equatio A.3 should read: V = VΛ This is already fixed i the hadout. Subdivisio curves Idea: repeatedly refie the cotrol polygo 3 P P P curve is the limit of a ifiite process = lim P j j Chaiki s algorithm Chaki itroduced the followig corer-cuttig scheme i 974: Start with a piecewise liear curve Isert ew vertices at the midpoits (the splittig step) Average each vertex with the ext (clockwise) eighbor (the averagig step) Go to the splittig step 3 4
Averagig masks The limit curve is a quadratic B-splie! Istead of averagig with the earest eighbor, we ca geeralize by applyig a averagig mask durig the averagig step: r = (, r, r, r, ) 0 I the case of Chaiki s algorithm: Lae-Riesefeld algorithm (980) Use averagig masks from Pascal s triagle: r =,,, 0 Gives B-splies of degree +. =0: r = =: =: 5 6 Subdivide ad auseum? After each split-average step, we are closer to the limit curve. How may steps util we reach the fial (limit) positio? Recipe for subdivisio curves Ca we push a vertex to its limit positio without ifiite subdivisio? Yes! After subdividig ad averagig a few times, we ca push each vertex to its limit positio by applyig a evaluatio mask. Each subdivisio scheme has its ow evaluatio mask, mathematically determied by aalyzig the subdivisio ad averagig rules. For Lae-Riesefeld cubic B-splie subdivisio, we get: ( ) 4 6 Now we ca cook up a simple procedure for creatig subdivisio curves: Subdivide (split+average) the cotrol polygo a few times. Use the averagig mask. Push the resultig poits to the limit positios. Use the evaluatio mask. 7 8
DLG iterpolatig scheme (987) Buildig complex models Slight modificatio to subdivisio algorithm: splittig step itroduces midpoits averagig step oly chages midpoits We ca exted the idea of subdivisio from curves to surfaces For DLG (Dy-Levi-Gregory), use: r old = () rew = (,5,0,5, ) 6 Sice we are oly chagig the midpoits, the poits after the averagig step do ot move. 9 0 Subdivisio surfaces Chaiki s use of subdivisio for curves ispired similar techiques for subdivisio surfaces. Iteratively refie a cotrol polyhedro (or cotrol mesh) to produce the limit surface S= lim j usig splittig ad averagig steps. j Triagular subdivisio There are a variety of ways to subdivide a poylgo mesh. A commo choice for triagle meshes is 4: subdivisio each triagular face is split ito four subfaces: 0
Loop averagig step Loop evaluatio ad taget masks Oce agai we ca use masks for the averagig step: As with subdivisio curves, we ca split ad average a umber of times ad the push the poits to their limit positios. where ( β ( )) α( ) = β ( ) α( ) + α( ) + 5 (3+ cos(π / )) β ( ) = 4 3 These values, due to Charles Loop, are carefully chose to esure smoothess amely, taget plae or ormal cotiuity. Note: taget plae cotiuity is also kow as G cotiuity for surfaces. 3 ε( ) + = ε( ) + = τ + τ τ = τ + τ τ T ( ) ( ) ( ) T ( ) ( ) ( ) where 3 ε() = τi () = cos(πi/) β() How do we compute the ormal? 4 Recipe for subdivisio surfaces As with subdivisio curves, we ca ow describe a recipe for creatig ad rederig subdivisio surfaces: Subdivide (split+average) the cotrol polyhedro a few times. Use the averagig mask. Compute two taget vectors usig the taget masks. Compute the ormal from the taget vectors. Push the resultig poits to the limit positios. Use the evaluatio mask. Reder! Addig creases without trim curves I some cases, we wat a particular feature such as a crease to be preserved. With NURBS surfaces, this required the use of trim curves. For subdivisio surfaces, we ca just modify the subdivisio mask: This gives rise to G 0 cotiuous surfaces (i.e., havig positioal but ot taget plae cotiuity) 5 6
Catmull-Clark subdivisio Creases without trim curves, cot. 4: subdivisio of triagles is sometimes called a face scheme for subdivisio, as each face begets more faces. A alterative face scheme starts with arbitrary polygo meshes ad iserts vertices alog edges ad at face cetroids: Here s a example usig Catmull-Clark surfaces (based o subdividig quadrilateral meshes): Catmull-Clark subdivisio: Note: after the first subdivisio, all polygos are quadilaterals i this scheme. 7 8 Iterpolatig subdivisio surfaces Summary Iterpolatig schemes are defied by splittig averagig oly ew vertices The followig averagig mask is used i butterfly subdivisio: What to take home: The meaigs of all the boldfaced terms. How to perform the splittig ad averagig steps o subdivisio curves. How to perform mesh splittig steps for subdivisio surfaces, especially Loop. How to costruct ad reder subdivisio surfaces from their averagig masks, evaluatio masks, ad taget masks. Settig t=0 gives the origial polyhedro, ad icreasig small values of t makes the surface smoother, util t=/8 whe the surface is provably G. 9 0