Splines for Engineers (With Selected Applications in Numerical
Total Page:16
File Type:pdf, Size:1020Kb
Splines for engineers With selected applications in numerical methods and computer graphics With 120 figures Interested in a printed copy (paperback, full colour) of this PhD dissertation? I might have some left! Please send an email to [email protected] for information regarding the shipping costs. i The research for this dissertation was conducted at the Scientific Visualization and Computer Graphics (SVCG) research group, part of the Bernoulli Institute and the Fac- ulty of Science and Engineering, University of Groningen, the Netherlands, as well as at the Basque Center for Applied Mathematics (BCAM), Bilbao, Spain. Text, illustrations and layout by P.J. Barendrecht (unless otherwise indicated). Typeset in XƎTEX using the Linux Libertine font. Printed by ProefschriftMaken. ISBN 978-94-034-2166-7 (printed version) ISBN 978-94-034-2165-0 (digital version) ii Splines for engineers With selected applications in numerical methods and computer graphics Proefschrift ter verkrijging van de graad van doctor aan de Rijksuniversiteit Groningen op gezag van de rector magnificus prof. dr. C. Wijmenga en volgens besluit van het College voor Promoties. De openbare verdediging zal plaatsvinden op vrijdag 6 december 2019 om 16:15 uur door Pieter Jaap Barendrecht geboren op 21 februari 1988 te Bennekom, gemeente Ede Promotor Prof. dr. J.B.T.M. Roerdink Copromotor Dr. J. Kosinka Beoordelingscommissie Prof. dr. K. Hormann Prof. dr. G. Vegter Prof. dr. A.C. Telea Dedicated to the development of free and open-source software everywhere. v Summary There are many interesting aspects and applications of splines, in particular inthecon- text of arbitrary manifold topology. Starting from the elementary Bézier curve, the journey towards subdivision surfaces takes us through the steps of smoothly connect- ing individual segments into B-splines or box splines, the uniform refinement of those splines (i.e. their two-scale relation) and ultimately the tuning of stencil coefficients that allows us to associate meshes of arbitrary manifold topology with surfaces that are globally at least C1 continuous. The mathematical principles involved in these steps include elegant concepts such as directional convolution, projection of polytopes and (discrete) Fourier transforms. Regarding subdivision surfaces, we propose two scientific contributions. First, we complete a subdivision scheme based on half-box splines, which provides us with a way to subdivide three-valent meshes of arbitrary manifold topology and define asso- ciated piecewise cubic surfaces (composed of triangular patches) that connect with C1 continuity. It provides us with insight regarding the (artificial) connection of control points into a control net — which in this case generally consists of mostly hexagons — as well as so-called ineffective eigenvectors, which are related to the locally linearly de- pendent blending functions. It also completes the list of low-degree (box) spline-based subdivision schemes. Secondly, we study improved quadrature rules for the subdivision splines associ- ated with the Catmull–Clark subdivision scheme. The first approach exploits the C2 continuity across patch borders to integrate strips composed of multiple patches more efficiently compared to a per-patch integration approach using e.g. Gauss–Legendre quadrature. The integration points and -weights are computed by means of homotopy continuation, though preliminary results show that a purely numerical optimisation approach yields the same results. The latter brings us to a second approach tofur- ther optimise the quadrature rules based on non-linear optimisation, which indicates that very efficient rules exist to numerically integrate the subdivision splines tohigh precision. Both approaches contribute towards overall more efficient numerical simu- lations when using spline-based methods such as isogeometric analysis on geometries modelled as (Catmull–Clark) subdivision surfaces. A third contribution, not related to subdivision surfaces, lies in the realm of vector graphics. Here, we show that local refinement of bicubic patches facilitates the cre- ation of resolution-independent illustrations that can be (close to) photorealistic. In addition to this improvement to the gradient mesh primitive, we propose support for more flexible topologies (something which can still be generalised even further) aswell as sharp colour transitions. Although web browsers currently lack built-in support to render these types of vector graphics, an implementation in WebGL 2 shows that fast and accurate renderings can indeed be achieved. In addition to the above, various topics from computer graphics, including (non- uniform) tessellation of quadrilateral and multi-sided domains, as well as (subdivision) shading, are improved upon and applied in these diverse contexts. vi Samenvatting Splines hebben vele fascinerende kenmerken en toepassingen, vooral in het kader van variëteiten met een arbitraire topologie. De weg van een eenvoudige Bézierkromme naar een onderverdelingsvlak (Engels: subdivision surface) leidt ons via glad aaneen- geschakelde segmenten, die B-splines of box splines vormen, naar verfijningsrelaties voor deze splines. De verfijningsrelaties kunnen vervolgens worden veralgemeniseerd naar de bovengenoemde variëteiten. Door de bijbehorende coëfficiënten van deze re- laties zorgvuldig te kiezen kunnen netwerken of mazen (Engels: meshes) met wille- keurige connectiviteit worden geassocieerd met oppervlakken die globaal ten minste C1-continu zijn. De verschillende stappen in dit proces maken gebruik van diverse wiskundige principes, waaronder richtingsconvolutie, de projectie van polytopen en (discrete) Fouriertransformaties. Wat betreft onderverdelingsvlakken presenteren we twee wetenschappelijke bij- dragen. Allereerst beschouwen we een nieuw schema gebaseerd op half-box splines wat het mogelijk maakt om netwerken waarbij in elk knooppunt drie lijnen samenko- men (en over het algemeen grotendeels uit zeshoeken bestaan) te associëren met stuks- gewijs derdegraads oppervlakken bestaande uit driehoekige segmenten die onderling C1-continu verbonden zijn. Het schema vertoont enkele bijzondere eigenschappen, waaronder de zogeheten ineffectieve eigenvectoren die te maken hebben met de plaat- selijke lineaire afhankelijkheid van de vormfuncties. Tevens voltooit dit schema de lijst van (op box splines gebaseerde) onderverdelingsschema’s van lage graad. Ten tweede bestuderen we verbeterde kwadratuurformules voor splines die ge- associeerd zijn met het Catmull–Clark schema. In de eerste aanpak wordt de C2- continuïteit tussen de segmenten gebruikt om groepen van deze segmenten op effi- ciënte wijze tegelijk te integreren (een verbetering vergeleken met het gebruik van bij- voorbeeld Gauss–Legendre kwadratuur voor elk segment afzonderlijk). Een alternative benadering die nog verder moet worden onderzocht is gebaseerd op een puur nume- rieke aanpak en gebruikt niet-lineaire optimalisatie om integratiepunten en -gewichten te vinden die de splines met hoge nauwkeurigheid numeriek kunnen integreren. De toegenomen efficiëntie is van groot belang voor numerieke methoden zoals isogeome- trische analyse voor objecten die als onderverdelingsvlak zijn gemodelleerd. Ten slotte leveren we een bijdrage in het rijk der vectorgrafiek. We tonen aandat het plaatselijk verfijnen van elementen in een zogeheten gradiëntenmaas (Engels: gra- dient mesh) het vervaardigen van resolutieonafhankelijke en natuurgetrouwe illustra- ties sterk vereenvoudigt. Daarnaast stellen we voor om de strenge eisen aan de topolo- gie van een dergelijke maas te verzachten en om de mogelijkheid om de maas plotseling van kleur te veranderen gebruiksvriendelijker te maken. Ondersteuning van webbrow- sers voor dergelijke afbeeldingen ontbreekt momenteel nog, al laat een implementatie in WebGL2 zien dat er zeker mogelijkheden zijn. In aanvulling op de bovenstaande bijdragen worden er enkele onderwerpen uit de computergrafiek besproken en verbeterd, waaronder de (ongelijkmatige) betegeling (Engels: tessellation) van vier- en veelhoekige domeinen op de GPU en de belichting van onderverdelingsvlakken. vii Contents Summary vi Samenvatting vii Preface 1 1 Introduction 2 1.1 Content and contributions ......................... 4 1.2 About the writing style ........................... 5 1.3 About the illustrations ........................... 6 2 Spline basics 8 2.1 Spline curves ................................. 10 2.1.1 Bézier curves ............................ 10 2.1.2 B-spline curves ........................... 14 2.1.3 Alternative representations .................... 19 2.2 Spline patches ................................ 22 2.2.1 Bézier patches ............................ 22 2.2.2 B-spline patches .......................... 25 2.2.3 Simplex splines ........................... 25 2.2.4 Box splines ............................. 27 2.2.5 Half-box splines ........................... 31 2.2.6 Alternative representations .................... 33 2.3 Refinement .................................. 37 2.3.1 Knot insertion ............................ 37 2.3.2 Two-scale relation ......................... 40 3 Constructing smooth surfaces of arbitrary manifold topology 44 3.1 G1 composite surfaces ........................... 46 3.1.1 Interpolating curve networks with Bézier patches ........ 46 3.1.2 Interpolating curve networks with Gregory patches ....... 58 3.2 Subdivision surfaces ............................. 61 3.2.1 Half-box spline subdivision .................... 63 3.2.2