Surfaces à Subdivision Surfaces à subdivision • Approximer la courbe limite, au travers d’un processus itératif. Raffinement 1 Raffinement 2 Geri’s Game (1998) : Pixar Animation Studios Raffinement ! Master IVI, module M3DA, cours 2 Subdivision en 3D • Approche similaire But des surfaces à subdivision • Comment représenter efficacement des surfaces? – – – – Optimalité de la représentation Continuité Invariance affine Rendu peu coûteux • Lien avec splines/patches? • Pourquoi l’un plutôt que l’autre? Raffinement Types de Subdivision L’algorithme de Chaiken • Schéma d’interpolation P1 – La surface/courbe limite passe par les points initiaux. • Schéma d’approximation – L’autre cas Q2 Q3 P2 Q4 Q1 Q5 Q0 P3 P0 Application itérative Courbe limite Lien avec les fractales Subdivision de Loop Masques de subdivision de Loop • Fait pour maillages triangulaires • Schéma d’approximation • Continuité partout, sauf aux sommets singuliers Loop: Gestion des bords • Masque spécifique Expression matricielle • La subdivision peut être exprimé via une matrice Smask de poids w. – Smask est creuse – Pas pour l’implémentation – Permet l’étude analytique de • La courbure • La surface limite Loi d’aréte Smask les poids Loi de sommet Continuité et courbure.. Anciens points de Nouveaux contrôles points Points ordinaires et Singuliers • Les poids de subdivision sont dérivés de ceux utilisés par les B-splines. – Convergence vers du C2 presque partout. - les maths fonctionnent partout sauf pour les sommets de valence singulière. On peut montrer pour tous les processus de subdivision qu’ils ont une valence ideale, pour laquelle la surface tend vers une surface de type spline. Subdivision de Loop Valence 6 Subdivision de Catmull-Clark Valence 4 •Subdiviser un maillage ne crée pas de points singuliers. •Ca n’en enlève pas non plus. •Solution: adapter les regles a ces points, afin de garder la continuité de la surface. La subdivision en pratique • splines (NURBS) utilisées traditionnellement en animation. • Dans certains cas de figure, délicat a manipuler, par exemple pour l’animation de personnage.. Subdivision de Catmull-Clark (1978) FACE ARETE SOMMET (Geri’s Game, Pixar 1998) Arêtes vives… Interet de Catmull-Clark • Surfaces continues. • Comment contrôller la continuité (ex: arêtes vives)? . Solution: adapter le processus de subdivision 1. Marquer chaque arête comme “vive” ou “pas vives” • n = 0 – “pas vive” • n > 0 – vive Pendant la subdivision, 1. Marquer les aretes vives. 2. Si une arête est vive, utiliser la nouvelle regle de subdivision. 3. Sinon, lois classiques. Gestion des arêtes vives FACE (inchangé) ARETE SOMMET Nombre d’arête vives adjacentes pointe >2 angle 2 coin 0,1 2. Si une arête est “vive”, alors on utilise les nouvelles regles. Les nouvelles aretes crées sont associées à n-1. 3. Si une arête est “pas vive”, usage de la regle de subdivision normale. Angulosité non entière • Densité du maillage évolue rapidement. • En pratique, 2 ou 3 itérations suffisent. • Nécessité d’un meilleur contrôle. Principe: on interpole entre les regles classique, et les regles pour arêtes vives. Exemples Exemples Schémas locaux PN Triangles • Besoin d’une structure de donnée complexe. – Besoin du voisinage pour chaque polygone – Chaque sommet doit connaitre ses voisins • Schéma d’interpolation. • Exemple.. • Pour faire moins compliqué: – Utilisation des normales aux sommets pour “deviner” le comportement des voisins – Regles basées sur les normales subdivision Subdivision locale (PN triangles) • Definie à partir des “patches de Bézier triangulaires”. u,v,w coordonnées barycentriques w=1-u-v, u,v,w!1 Fonction de base de bézier Calcul du maillage de contrôle Subdivision locale • Avantages Subdivision adaptative • – Facile à mettre en place • Pas de structure de données sophistiquées – Facile à intégrer à des applications existantes – Peut être cablée • ATI Radeon 8500 – Allure correcte • Inconvénients – Pas de garantie de continuité élevée. – Limitation de courbure sur un patch. – Pas de validation mathématique. • Subdivision non-uniforme, en fonction de la zone considérée. Utilisation de critère de décision. – courbure – Résolution écran ( taille triangles < pixel ?) – Point de vue • Distance de vue • Silhouettes • Dans le cône de visue – Attention aux cracks crack subdivise Simplification de maillage Approche inverse de la précedente 55 sec 424,376 faces 8000 faces 1,765,388 faces 80,000 faces Et la texturation dans tout ca? Surfaces à subdivision implicitement paramétrées (ex: Lee&al, Siggraph 98) Jeu de données complet: entre 0.3 et 1 milliard de triangles 8.2 millions de triangles (2 mm de resolution) 6.8 millions de triangles (! mm de resolution)