Présentation - Sandrine Lanquetin

publicité
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
Téléchargement