Algorithmes d’intersection de surfaces de subdivision Sandrine LANQUETIN 11/12/02 AFIG 2002 - Lyon Problème 11/12/02 AFIG 2002 - Lyon Problème 11/12/02 AFIG 2002 - Lyon Problème 11/12/02 AFIG 2002 - Lyon Plan Surfaces de subdivision Principe de Loop Intersection Algorithmes proposés : 11/12/02 Algorithme naturel Algorithme de voisinage Algorithme de graphe Comparaison Conclusion AFIG 2002 - Lyon Surface de subdivision M0 11/12/02 Maillage initial Règles de subdivision AFIG 2002 - Lyon Surface de subdivision M1 Maillage initial Règles de subdivision M1 = S´ M0 11/12/02 AFIG 2002 - Lyon Surface de subdivision M2 Maillage initial Règles de subdivision M2 = S´ M1 = S ´ M0 2 11/12/02 AFIG 2002 - Lyon Surface de subdivision M3 Maillage initial Règles de subdivision M k = S ´ M k- 1 = S ´ M0 k Surface lisse 11/12/02 AFIG 2002 - Lyon Principe de Loop Principes [Zor00] : Velho [Vel00], Kobbelt [Kob00]… Loop 11/12/02 Doo-Sabin [Doo78] Catmull-Clark [Cat78] Loop [Loo87] Faces triangulaires B-spline triangulaire quartique AFIG 2002 - Lyon Principe de Loop 11/12/02 Étape 1 : AFIG 2002 - Lyon Principe de Loop Étape 2 : Masques 1-k 1/8 11/12/02 AFIG 2002 - Lyon 1/8 3/4 Principe de Loop Étape 1 : Étape 2 : Masques 1/8 3/8 3/8 1/8 1/2 11/12/02 AFIG 2002 - Lyon 1/2 Intersection Analytique Discrétisation Suivi Subdivision 11/12/02 Linsen [Lin00] Bierman [Bie00] O’Brien [Obr00] Opérations booléennes AFIG 2002 - Lyon Algorithme naturel 11/12/02 Intersection entre tous les couples de faces des deux surfaces Complexité O (n ´ m ) AFIG 2002 - Lyon Algorithme naturel Intersection face/face r uuuur Face/arêtes Plan/droite uuuur X = O V i + tV iV j Vi r n r r n .X = - d r uuuur - d - n .O V i t = r uuuur n .V iV j Vj uuuur r Rque : Si n ^ V iV j , on ne fait rien 11/12/02 AFIG 2002 - Lyon Algorithme naturel Intersection face/face Face/arêtes de la face Plan/droite Plan/arête : t Î éë0, 1ù û Face/arête : aires V1 V1 Pi V2 11/12/02 Pi 1 V3 V2 AFIG 2002 - Lyon V3 1 Algorithme naturel Evaluation de(s) courbe(s) polygonale(s) d’intersection 1 Ei F Pk G Pj Point d’intersection Coordonnées Faces F et G Arête Winged edge 2 Ei 11/12/02 AFIG 2002 - Lyon Algorithme naturel 11/12/02 Pas de distinction de cas Croissance rapide du nombre d’intersection face / face Accélération : boites englobantes Calcul très lent AFIG 2002 - Lyon Comment l’améliorer ? Durée d’une intersection Intersection polygones 11/12/02 AFIG 2002 - Lyon Comment l’améliorer ? Durée d’une intersection Nombre d’intersections Intersection polygones 11/12/02 AFIG 2002 - Lyon Comment l’améliorer ? 11/12/02 Durée d’une intersection Nombre d’intersections Intersection polygones O’Brien & Manocha AFIG 2002 - Lyon Algorithme de voisinage Voisinage V1 (F) V2 (F) W1 (F) F W2 (F) F 11/12/02 AFIG 2002 - Lyon Algorithme de voisinage 1. Faces intersectantes Courbe d’intersection & Faces intersectantes au niveau n 11/12/02 AFIG 2002 - Lyon Algorithme de voisinage 11/12/02 1. Faces intersectantes 2. 1-voisinage V1 AFIG 2002 - Lyon Algorithme de voisinage 11/12/02 1. Faces intersectantes 2. 1-voisinage V1 3. 1-voisinage W1 AFIG 2002 - Lyon Algorithme de voisinage 4. Intersection des W1 des deux surfaces Courbe d’intersection & Faces intersectantes au niveau n+1 11/12/02 AFIG 2002 - Lyon Comment l’améliorer ? Durée d’une intersection Intersection polygones 11/12/02 Nombre d’intersections Voisinage AFIG 2002 - Lyon Parcours Algorithme du graphe biparti Graphe biparti 3 Sommets répartis en 2 groupes : Chaque arête a une extrémité dans chacun de ces groupes 11/12/02 Faces intersectantes de la première surface Faces intersectantes de la seconde Symbolise l’intersection entre les faces AFIG 2002 - Lyon Algorithme du graphe biparti Exemple de construction du graphe biparti F2 F1 G1 3 G3 F1 G1 F2 G2 G2 G3 11/12/02 AFIG 2002 - Lyon Algorithme du graphe biparti 11/12/02 Voisinage et subdivision W1 (F1 ) F1 G1 W1 (G 1 ) W1 (F2 ) F2 G2 W1 (G 2 ) G3 W1 (G 3 ) AFIG 2002 - Lyon Comparaison sur un exemple Intersection au niveau initial 694 faces & 128 faces 11/12/02 AFIG 2002 - Lyon Comparaison sur un exemple Intersection Intersection Intersection au niveau 1 au niveau 2 au niveau 3 11/12/02 AFIG 2002 - Lyon Nombre de tests par algorithmes Algo Naturel Algo Voisinage Algo Graphe Nombre de tests 30 000 000 25 000 000 20 000 000 15 000 000 10 000 000 5 000 000 0 0 1 2 3 Niveau de subdivision 11/12/02 AFIG 2002 - Lyon 4 5 Temps de calcul Algo Naturel Algo Voisinage Temps de calcul en secondes Algo Graphe 250 20% 200 150 100 50 0 0 1 2 Niveau de subdivision 11/12/02 AFIG 2002 - Lyon 3 4 Conclusion Nombre de couples de faces à tester réduit : Calculs accélérés 11/12/02 Voisinage Graphe biparti Réduction du nombre de tests Boites englobantes AFIG 2002 - Lyon Perspectives Réduire encore le nombre de tests 11/12/02 Parcours AFIG 2002 - Lyon Perspectives Réduire encore le nombre de tests 11/12/02 Parcours Incorporer dans les opérations booléennes AFIG 2002 - Lyon Perspectives Réduire encore le nombre de tests Parcours Incorporer dans les opérations booléennes Estimer la courbe d’intersection au niveau k+1 à partir de la courbe au niveau k Ck 11/12/02 AFIG 2002 - Lyon C k+ 1 ? = S ´ Ck Perspectives Réduire encore le nombre de tests 11/12/02 Parcours Incorporer dans les opérations booléennes Estimer la courbe d’intersection au niveau k+1 à partir de la courbe au niveau k Multirésolution AFIG 2002 - Lyon 11/12/02 AFIG 2002 - Lyon