Een goeie titel. Promotor: Prof. dr. Bekaert Philippe Begeleider: Nulens Johan. Auteur: Czubin Mark



Vergelijkbare documenten
Gradiënt domein mesh manipulatie.

Basiskennis lineaire algebra

3 De duale vectorruimte

Functies van vectoren

ONBETWIST ONderwijs verbeteren met WISkunde Toetsen Voorbeeldtoetsen Lineaire Algebra Deliverable 3.10 Henk van der Kooij ONBETWIST Deliverable 3.

11.0 Voorkennis V

Ter Leering ende Vermaeck

Numerieke aspecten van de vergelijking van Cantor. Opgedragen aan Th. J. Dekker. H. W. Lenstra, Jr.

Een andere codering. Hannes Stoppel Max-Planck-Gymnasium, Gelsenkirchen Duitsland (Vertaling: L. Sialino)

Lineaire Algebra en Vectorcalculus 2DN60 College 5.a Basis en dimensie

Gaap, ja, nog een keer. In één variabele hebben we deze formule nu al een paar keer gezien:

Opgaven bij de cursus Relativiteitstheorie wiskunde voorkennis Najaar 2018 Docent: Dr. H. (Harm) van der Lek

3.2 Vectoren and matrices

Blokmatrices. , I 21 = ( 0 0 ) en I 22 = 1.

Beknopte handleiding voor Derive 5.0 for Windows

Eerste orde partiële differentiaalvergelijkingen

Quantum-computing toegepast op het n-queens probleem

Wiskunde D vwo Lineaire algebra. Presentatie Noordhoff wiskunde Tweede Fase congres 19 november 2015 Harm Houwing en John Romkes

Praktische informatie m.b.t. College Lineaire Algebra en Beeldverwerking Bachelor Informatica en Economie 2 e jaar Voorjaar semester 2013 Docent:

Stelsels Vergelijkingen

WI1808TH1/CiTG - Lineaire algebra deel 1

NUMERIEKE METHODEN VOOR DE VAN DER POL VERGELIJKING. Docent: Karel in t Hout. Studiepunten: 3

Vierde huiswerkopdracht Lineaire algebra 1

Matrices en Grafen (wi1110ee)

Lineaire Algebra voor ST

Examen Lineaire Algebra en Meetkunde Tweede zit (13:30-17:30)

Calculus, A Complete Course, Adams

Linalg.nb 1. Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes!

Lineaire afbeeldingen

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik

Introductie in R.

TENTAMEN LINEAIRE ALGEBRA 1 donderdag 23 december 2004,

Overzicht. Lineaire vergelijkingen. Onderwerpen & Planning. Doel. VU Numeriek Programmeren 2.5

5 Automatische partitionering van softwaresystemen

Lineaire Algebra voor ST

Lineaire Algebra voor ST

Lineaire Algebra voor ST

Elliptische krommen en digitale handtekeningen in Bitcoin

Bekijk nog een keer het stelsel van twee vergelijkingen met twee onbekenden x en y: { De tweede vergelijking van de eerste aftrekken geeft:

High Performance Computing

Meetkunde en lineaire algebra

Samenvatting Lineaire Algebra, periode 4

Lineaire Algebra WI1048WbMt. I.A.M. Goddijn, Faculteit EWI 4 september 2016

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

Discrete Wiskunde 2WC15, Lente Jan Draisma

Toepassingen op discrete dynamische systemen

Vector-en matrixvergelijkingen. Figuur: Vectoren, optellen

Antwoorden op de theoretische vragen in de examen voorbereiding

Lineaire Algebra voor ST

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

vandaag is Annie twee jaar jonger dan Ben en Cees samen

2IV10 Instructie 3: Transformaties en viewing

DEC SDR DSP project 2017 (2)

CTB1002 deel 1 - Lineaire algebra 1

Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b

te vermenigvuldigen, waarbij N het aantal geslagen Nederlandse munten en B het aantal geslagen buitenlandse munten zijn. Het resultaat is de vector

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Discrete Wiskunde 2WC15, Lente Jan Draisma

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Praktische informatie. m.b.t. College. Lineaire Algebra en Beeldverwerking. Bachelor Informatica. 1e jaar. Voorjaar semester 2012

ZW3D CAD/CAM. Andere producten van 4C. (klik voor meer informatie)

PROEFEXAMEN LINEAIRE ALGEBRA dinsdag 22 november 2016

Improving parallelism for the. NEMO ocean model. Hind Shouli. NEMO ocean model

Lineaire Algebra (2DD12)

Beeldverwerking. Scientific Computing. sleij101/ Program. WISB356, Utrecht, najaar WISB356, Utrecht, najaar 2010

Complexe eigenwaarden

1 Eigenwaarden en eigenvectoren

Tentamen (2DE04) van Lineaire Algebra voor E, op vrijdag 27 januari 2012, ( )

Lineaire Algebra (2DD12) Laatste nieuws in 2012

Lineaire algebra I (wiskundigen)

Wiskunde voor relativiteitstheorie

Wiskunde voor relativiteitstheorie

Definities, stellingen en methoden uit David Poole s Linear Algebra A Modern Introduction - Second Edtion benodigd voor het tentamen Matrix Algebra 2

Lineaire Algebra voor ST

Voorbeeld theorie examen

Numerieke Wiskunde, Computeropgave A0 Projectie op Continue Stuksgewijs Lineaire Functies

Hoofdstuk 9. Vectorruimten. 9.1 Scalairen

Computer Vision: Hoe Leer ik een Computer Zien?

Cover Page. The handle holds various files of this Leiden University dissertation

Wiskunde voor relativiteitstheorie

Coëfficiënten matrix = matrix waarin de rechterkolom geen oplossing van de vergelijking is. 1. Lineair systeem = Stelsel van lineaire vergelijkingen

Matrixoperaties. Definitie. Voorbeelden. Een matrix is een rechthoekig array van getallen, die kentallen of elementen heten.

De dimensie van een deelruimte

CTB1002 deel 1 - Lineaire algebra 1

Matrixalgebra (het rekenen met matrices)

Het XOR-Netwerk heeft lokale Minima

Het mysterie der fixpunten Wiskundige Basistechniek

Neurale Netwerken en Deep Learning. Tijmen Blankevoort

Mengen van scheikundige stoffen en het oplossen van scheikundige reacties, een wiskundig model. Wiskens&co Yoeri Dijkstra en Loes Knoben

Lineaire vergelijkingen

Opgaven bij het vormen van ruimte: van Poincaré tot Perelman

Technische Universiteit Delft. ANTWOORDEN van Tentamen Gewone differentiaalvergelijkingen, TW2030 Vrijdag 30 januari 2015,

Lineaire Algebra voor ST

Opgaven bij Numerieke Wiskunde I

11. Multipele Regressie en Correlatie

UITWERKINGEN d. Eliminatie van a geeft d. Eliminatie van b,

Eindtermen Lineaire Algebra voor E vor VKO (2DE01)

Appendix Inversie bekeken vanuit een complex standpunt

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN

Transcriptie:

Een goeie titel Auteur: Czubin Mark Promotor: Prof. dr. Bekaert Philippe Begeleider: Nulens Johan 22 mei 2009 academiejaar: 2008-2010 Universiteit Hasselt

Inhoudsopgave 1 Inleiding 1 1.1 Achtergrond.............................. 1 1.2 Toepassingen............................. 1 1.3 Hardware acceleratie......................... 1 1.4 Wiskundige notatie.......................... 1 2 Modellerings metaforen 3 2.1 Deformation constraints....................... 3 2.2 Handles selections.......................... 3 3 Onderzocht mesh deformation algos 4 3.1 Surface en space deformation.................... 4 4 Gradient domain mesh deformation 5 4.1 Wat is het............................... 5 4.2 Analyse verschillende methoden................... 5 4.3 Constraints.............................. 5 4.3.1 Skeleton constraint...................... 5 4.3.2 Positionele constraint.................... 6 4.3.3 Laplaciaanse constraint................... 6 4.3.4 Samenvoegen van de constraints.............. 9 5 Vector field shape deformation 10 6 Kleinste-kwadraten methode 11 6.1 lineair, quasi-lineair, non-lineair................... 11 6.2 Lineair kleinste-kwadraten methode................ 11 6.3 Niet-lineaire kleinste-kwadraten methode............. 12 6.4 Pseudo-inverse matrix........................ 12 7 misc 13 7.1 subdivision.............................. 13 7.2 Verdere optimalisaties........................ 13 I

Hoofdstuk 1 Inleiding 1.1 Achtergrond Wat is shape deformation. 1.2 Toepassingen Modellering Animatie Een voorbeeld beschreven voor animatie is Zhou et al. (2005). Hierbij wordt 2D animatie gedaan via deformation waardoor de animatie realistisch en sneller gedaan kan worden. 1.3 Hardware acceleratie We zijn geintresseerd in twee soorten voordelen van GPU. Sneller dan cpu voor data parallelle problemen En overzet van mesh naar gpu is goeikoper als reeds op gpu is. 1.4 Wiskundige notatie Er wordt in deze eindwerk een kennis van lineaire algebra aangenomen. volgende conventie wordt gebruikt tenzij anders vermeld: De Hoofdletters voor matrices, bijv. Λ, A. Kleine letters voor vectoren, matrix en vector elementen, bijv. λ, a ij. λ i. Dikke letters voor scalaire getallen, bijv. λ, a. Per default zal een vector een kolomvector zijn. Een rijvector zal dan gemarkeerd worden door T transpose symbool. Verder definiëren we een mesh M bestaande uit een tupel (K, V ). Hierbij stelt V = {v 1,..., v n } met v i R 3 de vertices voor en K de mesh connectiviteit. 1

Voor elke vertex v i definieren we ook de verzameling N i dat alle directe buren van v i bevat. 2

Hoofdstuk 2 Modellerings metaforen 2.1 Deformation constraints Bijvoorbeeld: energy constraints zijn veelal gebruikt. Voornaamste constraints: Er zijn ook constraints in de tijd bijvoorbeeld X zoals aangetoond in Adams et al. (2008)/ Positionele constrains ook wel bekend als Handle constraints Rigidity of stijfheid Behoud van volume. Geen zelfintersecties. Behoud van detail of van topologische continuïteit. bijv.: C 1 Een duidelijk voorbeeld hiervan is de laplaciaanse constraint Skeleton constraint.... 2.2 Handles selections Points, curves etc curve is nadelig voor surface omdat curve moet geplaatst worden op de vertices van de mesh. 3 types: fixed, handle, control. zoals beschreven in Botsch and Kobbelt (2005) Fairness? zoals beschreven in Botsch and Kobbelt (2005) 3

Hoofdstuk 3 Onderzocht mesh deformation algos welken? waarom? wat is voordeel en nadeel van elkaar? Achtergrond van soorten algoritmen. squares shape functions, etc. Bijvoorbeeld points, moving least 3.1 Surface en space deformation Wat is het verschil tussen surface en space deformation. Enkele voordelen en nadelen van de twee types. bv: Voordeel van space is dat de mesh kwaliteit niet langer afhangt van de surface representatie. Nadeel is dat er geen detail preservation meer is. etc. space is goed voor non-uniform tesselated of kleine meshes anders is surface beter De meeste surface deformations lossen een sparse matrix lineaire systeem op. 4

Hoofdstuk 4 Gradient domain mesh deformation 4.1 Wat is het we kijken naar laplaciaan waarom gaat het: sparse matrix oplossen sectie voordelen en nadelen waarom? ideaal voor detail preservation het is een surface deformation 4.2 Analyse verschillende methoden Er werd in kleine vergelijking gedaan tussen (noem alle 3) De laatste is de meest interessante, vanwege performance oudste niet ideaal omdat het fout gaat bij large handles 4.3 Constraints Voor deze eindwerk zijn we geintresseerd in 3 constraints, namelijk de laplaciaanse constraint, positioneele constraint en skeleton constraint. De positioneele is lineair De andere quasi lineair Er is een expliciete reden dat er niet meer constraints gebruikt worden zoals volume constraint. Voor onze least squares solver gebruiken we non-lineaire constraints! Hierdoor moet er een iteratieve linear least squares solver gebruikt worden maar dit is meestal te zwaar om met een interactieve snelheid op te lossen. Ref naar twee papers. gebruiken ze inexact gauss-newton ref naar sectie. Hiervoor moeten de constraints quasi lineair zijn. Het is interessant om skeleton opnieuw in te voeren want is hoort minder erg te zijn dan laplacian 4.3.1 Skeleton constraint Het moeilijke hiervan is hoe dit op de GPU te doen? ΓV = 0, ΘV = ρ, ρ ΘV ΘV = ΘV 5

Twee soorten van constraints. 1 koppel aan vertices bijvoorbeeld mocap animatie en kan opgelost worden met positionele constraints tweede is zoals uitgelegt in supsace, deze is krachtiger 4.3.2 Positionele constraint De positionele constraint laat toe om enkele vertices van de mesh te fixeren op een bepaalde positie. In geval van fairness (zie 2.2) zal dit dus de fixed en control vertices zijn. Een mapping van vertex i naar i accent zal dus behouden moeten blijven. Nergens wordt er in de literatuur ecpliciet de positionele constraint formule opgegeven. Maar vertrekend vanuit Sorkine et al. (2004); Lipman et al. (2005); Huang et al. (2006); Zhou et al. (2007) kan er zelf een simpele constraint gedefinieerd worden. Hiervoor wordt er vertrokken vanuit de positionele constraint formule gegeven in Zhou et al. (2007). Hierbij is C de positionele constraint matrix en ˆV de target posities van de vertices zijn. Cx = ˆV (4.1) Voor C gebruik ik een eenheidsmatrix waardoor elke afbeelding van Cx elke vertex in x afbeeld wordt naar een rij in de matrix ˆV. Indien er gekozen wordt voor afbeelding V zal de constraint ervoor zorgen dat de matrix niet veranderd. Maar sinds we enkel een selectief aantal vertices willen constrainen kan er simpel gekozen worden om enkel de rijen van C en ˆV te kiezen met die vertices. Hiervoor moet er opgelet worden dat het systeem niet onderbepaald wordt. Het voordeel is dat de rekentijd korter wordt omdat de twee matrices kleiner zijn. Ook globale model, projectie, etc. operaties kunnen opgevangen worden door de operaties toe tepassen op x na de berekening van de constraint. Dit is handig indien de gebruiker de mesh van een andere opzicht wil bekijken zonder handmatig de matrices aan te passen. Het is verder makkelijk in te zien dat deze constraint lineair is en de positionele constraint matrix sparse is. 4.3.3 Laplaciaanse constraint De discrete Laplaciaan Bij de Laplaciaanse constraint is het doel om de detail van een mesh te behouden. Deze detail kan uit een mesh gefilterd worden door het gebruik van de Laplaciaan. De Laplaciaan geeft weer de dalingen en stijgingen in een signaal. Dit is net hetgeen dat behouden moet worden om details te beschrijven! Voor een mesh is de Laplaciaan als volgt gedefinieerd: L(v i ) def = 1 N i ω ij 0 L(v i ) = v i 1 N i ω ij (v j v i ) (4.2) j N i v j (4.3) j N i 6

(a) Origineel (b) Verscherpt (c) Laplaciaan zonder schalering (d) Laplaciaan Figuur 4.1: Illustratie van de discrete Laplaciaan op Lenna. Hierbij zijn ωij gewichten voor elke edge tussen twee vertices vi en vj. Dit kan zeer interessant zijn want hierdoor wordt er een onderscheid gemaakt tussen verschillende frequenties in de mesh Desbrun et al. (1999). Maar voor nu gebruiken we uniforme gewichten en daardoor versimpeld de formule 4.2 tot 4.3. Om deze operatie op een intuı tieve manier te illustreren wordt de Laplaciaan uitegevoerd op een beeld. Hiervoor gebruiken we de Laplaciaan als een convolutie bewerking, geven in 4.4, op het beeld. De resultaten zijn te zien in figuur 4.1. Hierbij is de verscherpte beeld gewoon de laplaciaan toegevoegd aan het beeld zodat de details versterkt worden! Verder bevat de Laplaciaan zowel positieve als negatieve waarden. De afbeelding links beneden toont alleen de positieve waarden terwijl bij de afbeelding rechts beneden de waarden gecentreerd zijn rond 0.5 met zwart en wit de negatieve respectievelijk de positieve waarden illustreren. 7

image h 3 3 def laplacian = image 1 8 Laplaciaanse coördinaten = image 1 1 1 1 8 1 1 1 1 0 0 0 0 1 0 0 0 0 1 8 1 1 1 1 0 1 1 1 1 (4.4) We definiëren de Laplaciaanse coördinaat δ i als de Laplaciaan van vertex v i : def δ i = L(v i ) = v i 1 N i j N i v j (4.5) De mesh = {δ 0,..., δ n } wordt hier de differential mesh genoemd. De differential mesh kunnen we ook vormen via matrix operaties! Er bestaat namelijk een matrix L genaamd de Laplace-matrix dat indien vermenigvuldigd wordt met de vertices van mesh M de differential mesh oplevert. Indien de mesh connectiviteit niet veranderd is de matrix L constant en moet maar éénmaal berekend worden. = LV (4.6) L = I D 1 A (4.7) De Laplace-matrix kan berekend worden vanuit de adjaceny en degree matrix van mesh M. Dit is weergegeven in formule 4.7 waarbij A de adjaceny en D de degree matrix is. Een belangrijke eigenschap is dat de operatie LV lineair is en de laplaciaanse coördinaten translatie invariant. Het nadeel is wel niet rotatie invariant. Hierdoor locale rotaties kunnen niet negeert worden. Reconstructie Reconstructie van de mesh met de differential mesh kan gemakkelijk gedaan worden door een lineaire stelsel op te lossen met de kleinste-kwadraten methode. Zie sectie 6 voor uitleg over de kleinste-kwadraten methode. Om deze stelsel op te lossen moet er minstens één vertex bepaald worden want het stelsel is onderbepaald. Dit is logisch gezien laplaciaanse coördinaten translatie invariant zijn en dus oneindig veel afbeeldingen hebben in de globale coördinaten stelsel. Dus als we de positionele constraint toevoegen Cv = U waarbij C de vertices aanduid en U hun posities bepaald kunnen we het stelsel oplossen. Zie sectie 4.3.2 voor meer uitleg over de positionele constraint. ( ) ( ) L V = C U } {{ } Ax = b Deze stelsel kan opgelost worden door de normaal vergelijkingen op te lossen van een lineaire kleinste-kwadraten methode: A T Ax = A T b. Om het simpel te houden kan er opgelost worden door A + b = x uit te rekenen. 8

Rotatie invariant laplaciaanse coördinaten Zoals eerder vermeld zijn de laplaciaanse coördinaten rotatie variant. Daarom werd er in Huang et al. (2006) rotatie en schaal invariant coördinaten geïntroduceerd. δ i = u ij ((v j 1 v i ) (v j v i )) = u ij N(v j ) (4.8) j N i j N i De u i kunnen gevonden worden door een lineaire stelsel op te lossen. Zelf gevonden: dit werkt niet voor een vertex dat op een border ligt. Dit kan ook voor gewoone border vertices (proof by example) Een vertex met valence 3 op een border dus 2 normals. Bv: vertex1 in werk.m 4.3.4 Samenvoegen van de constraints L C Γ V = ˆV 0 Θ ρ ΘV ΘV } {{ } Ax = b(x) (4.9) Het grootte probleem is dat de laplacian constraint zwaarste en soms niet convergeert dus moet men technieken toepassen zoals in cite cite 9

Hoofdstuk 5 Vector field shape deformation 1. Vector Field Based Shape Deformations, 2. Explicit Control of Vector Field Based Shape Deformations (Zelfde auteurs) Het idee: Er wordt een continu vector veld opgebouwd met bepaalde eigenschappen(c1 smoothness etc). Aan deze vector veld wordt een transformatie door gevoerd zoals translatie en rotatie. Elke vertex in contact met de vector veld ondergaat een line-path integratie. (http://en.wikipedia.org/wiki/ Line_integral) Zo kan de nieuwe positie van de vertex berekent worden. Na alle nieuwe posities berekent te hebben wordt de vector veld opnieuw berekend voor de volgende operatie. 1ste paper: voordelen: no-self intersection en volume preservation nadelen: GPU implementatie is vrij zwak doordat er feedback terug naar de CPU geleverd moet worden. (maar 10x sneller) Er is ook geen expliciete controle over de deformation en dus zeer moeilijk om meshes te modellen. 2de paper: Er is nu expliciete controle over modeling door het opbouwen van een invloed veld S. Een curve kan de deformation translatie en rotatie bepalen. En belangrijkste is een volledige GPU algoritme met alle data structuren via textures. nadeel: Er is geen globale volume preservation meer en self intersectie mogelijk. 10

Hoofdstuk 6 Kleinste-kwadraten methode 6.1 lineair, quasi-lineair, non-lineair Jacobiaan is zeer klein B(x). 6.2 Lineair kleinste-kwadraten methode De probleem is het minimaliseren van de fout van Ax = b. Waarbij r = Ax b de residual error is. Hierbij min Ax b 2 min r 2, waarbij A een constante x x matrix is en b de bekenden. Als A lineair independent is dan A T A is inverteerbaar. Als Ax = b lineair is dan bestaat er een oplossing A T Ax = A T b voor de associated normal system. Hierdoor is ˆx = (A T A) 1 A T b de oplossing voor de least squares problem met de kleinste oplossing. De deformation problemen komen vaak voor als niet-lineaire problemen. Maar de niet-lineair solvers zijn enorm traag. Daarom worden bij alle papers dat realtime resultaten willen verkrijgen een manier gezocht om deze problemen zo veel mogelijk lineair te krijgen. Maar hierdoor kunnen artefacten ontstaan doordat bijvoorbeeld algoritmen niet convergeren of een foutief en onrealistisch resultaat produceren. 11

6.3 Niet-lineaire kleinste-kwadraten methode Voor het berekenen van de niet-lineaire kleinste-kwadraten methode wordt er gebruik gemaakt van de inexact Gauss-Newton iteratie. Deze staan beschreven in Huang et al. (2006); Zhou et al. (2007). Hierbij is het doel de residu fout te minimaliseren, namelijk min r(x) 2 waarbij de residu fout r(x) = Ax b(x) x voor de niet-lineaire constraint Ax = b(x) is. Gauss-Newton methode: x i+1 = x i + xi (J T r J r ) xi = J T r r(x i ) J r = A J b J b = J b (x) (6.1) Inexact Gauss-Newton methode: J b A J r A (A T A) xi = A T r(x i ) xi = (A T A) 1 A T r(x i ) xi = (A T A) 1 A T (Ax i b(x i )) xi = (A T A) 1 A T Ax i + (A T A) 1 A T b(x i ) xi = (A T A) 1 (A T A)x i + (A T A) 1 A T b(x i ) xi = Ix i + (A T A) 1 A T b(x i ) xi = x i + (A T A) 1 A T b(x i ) x i+1 = x i x i + (A T A) 1 A T b(x i ) 6.4 Pseudo-inverse matrix x i+1 = (A T A) 1 A T b(x i ) (6.2) In deze eindwerk wordt de pseudo inverse berekent via SVD. Dit kan gedaan worden op de volgende manier. De SVD van M is M = UΣV. Waarbij M de complex transpose matrix is en de pseudo inverse symbool M + is. Hierbij is de pseudo inverse M + = V Σ + U waarbij Σ + berekent kan worden als Σ met elke niet nul waarde gelijk te stellen aan de omgekeerde waarde. { Σ + = 0 for Σ ij = 0 1/Σ ij for Σ ij 0 Als er een inverse voor matrix M bestaat dan is M 1 = M +. Dit wordt momenteel berekent met de LAPACK software pakket. 12

Hoofdstuk 7 misc 7.1 subdivision Shiue et al. (2005) Huang et al. (2007) Waarom? veel details toevoegen, kan progressief zijn (lod), niet veel ruimte overhead, en ten slotte kan leuk zijn voor DX11 samen met tesselation en displacement Voor ons? modeling wil je C1 en C2 smoothness modelen, later kan er naar game exported Watis het? vertex displacement normaal berekenen? via basis functies en op de gpu drie papers : realtime en subdivision modeling en een andere met inexact calculated normals voordeel: je krijgt normalen, je moet niet approximaten. realtime versie misschien beste sinds normals simpeler berekent kunnen worden vanuit de texture en niet opnieuw met basis functies soorten? loop catmul-clark etc hoe wij? interessant voor matrix vorm voor laplacian subdisivion surf 7.2 Verdere optimalisaties Adaptive subdivision en adaptive tesselation gebruiken om de render tijd te verhogen en artefacten te vermijden. Desbrun et al. (1999) Dit kan toegepast worden op bijna alle algoritmen. 13

Bibliografie Adams, B., Ovsjanikov, M., Wand, M., Seidel, H.-P., and Guibas, L. 2008. Meshless modeling of deformable shapes and their motion. In ACM SIGGRAPH/Eurographics Symposium on Computer Animation. ACM/Eurographics, Eurographics Association, Dublin, Ireland, 77 86. Bolz, J., Farmer, I., Grinspun, E., and Schröder, P. 2005. Sparse matrix solvers on the gpu: conjugate gradients and multigrid. In SIGGRAPH 05: ACM SIGGRAPH 2005 Courses. ACM, New York, NY, USA, 171. Botsch, M. and Kobbelt, L. 2005. Real-time shape editing using radial basis functions. In Computer Graphics Forum. 611 621. Botsch, M. and Sorkine, O. 2008. On linear variational surface deformation methods. IEEE Transactions on Visualization and Computer Graphics 14, 1, 213 230. Boubekeur, T. and Schlick, C. 2008. A flexible kernel for adaptive mesh refinement on gpu. Computer Graphics Forum 27, 1, 102 114. doi: 10.1111/j.1467-8659.2007.01040.x. Desbrun, M., Meyer, M., Schröder, P., and Barr, A. H. 1999. Implicit fairing of irregular meshes using diffusion and curvature flow. In SIGGRAPH 99: Proceedings of the 26th annual conference on Computer graphics and interactive techniques. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 317 324. Funck, W. v., Theisel, H., and Seidel, H.-P. 2007. Explicit control of vector field based shape deformations. In PG 07: Proceedings of the 15th Pacific Conference on Computer Graphics and Applications. IEEE Computer Society, Washington, DC, USA, 291 300. Huang, J., Shi, X., Liu, X., Zhou, K., Wei, L.-Y., Teng, S.-H., Bao, H., Guo, B., and Shum, H.-Y. 2006. Subspace gradient domain mesh deformation. In SIGGRAPH 06: ACM SIGGRAPH 2006 Papers. ACM, New York, NY, USA, 1126 1134. Huang, X., Li, S., and Wang, G. 2007. A gpu based interactive modeling approach to designing fine level features. In GI 07: Proceedings of Graphics Interface 2007. ACM, New York, NY, USA, 305 311. Krüger, J. and Westermann, R. 2005. Linear algebra operators for gpu implementation of numerical algorithms. In SIGGRAPH 05: ACM SIGGRAPH 2005 Courses. ACM, New York, NY, USA, 234. 14

Lipman, Y., Kopf, J., Cohen-Or, D., and Levin, D. 2007. Gpu-assisted positive mean value coordinates for mesh deformations. In SGP 07: Proceedings of the fifth Eurographics symposium on Geometry processing. Eurographics Association, Aire-la-Ville, Switzerland, Switzerland, 117 123. Lipman, Y., Sorkine, O., Alexa, M., Cohen-Or, D., Levin, D., Rössl, C., and Seidel, H.-P. 2005. Laplacian framework for interactive mesh editing. International Journal of Shape Modeling 11, 1, 43 61. Marinov, M., Botsch, M., and Kobbelt, L. 2007. Gpu-based multiresolution deformation using approximate normal field reconstruction. journal of graphics tools 12, 1, 27 46. Paries, N., Degener, P., and Klein, R. 2007. Simple and efficient mesh editing with consistent local frames. In PG 07: Proceedings of the 15th Pacific Conference on Computer Graphics and Applications. IEEE Computer Society, Washington, DC, USA, 461 464. Ritschel, T., Botsch, M., and Müller, S. 2006. Multiresolution gpu mesh painting. In Eurographics 2006 Short Papers. 17 20. Shiue, L.-J., Jones, I., and Peters, J. 2005. A realtime gpu subdivision kernel. ACM Trans. Graph. 24, 3, 1010 1015. Sorkine, O., Cohen-Or, D., Lipman, Y., Alexa, M., Rössl, C., and Seidel, H.-P. 2004. Laplacian surface editing. In SGP 04: Proceedings of the 2004 Eurographics/ACM SIGGRAPH symposium on Geometry processing. ACM, New York, NY, USA, 175 184. von Funck, W., Theisel, H., and Seidel, H.-P. 2006. Vector field based shape deformations. In SIGGRAPH 06: ACM SIGGRAPH 2006 Papers. ACM, New York, NY, USA, 1118 1125. Zhou, K., Huang, J., Snyder, J., Liu, X., Bao, H., Guo, B., and Shum, H.-Y. 2005. Large mesh deformation using the volumetric graph laplacian. ACM Trans. Graph. 24, 3, 496 503. Zhou, K., Huang, X., Xu, W., Guo, B., and Shum, H.-Y. 2007. Direct manipulation of subdivision surfaces on gpus. In SIGGRAPH 07: ACM SIGGRAPH 2007 papers. ACM, New York, NY, USA, 91. 15