Techniques de compression de représentation 3D appliquées aux
modèles CAO
Bernard [email protected]
Tel: 06 76 87 76 05
A quoi ça sert?Mettre la Représentation 3D des piéces
mécaniques au coeur de tous les processus industriels:ConceptionAménagementSimulation FabricationDocumentationDevis, Appels d’offres
Un Exemple de Documentation 3D
Serviceabilité et Maintenabilité des avions de ligne..\..\BernardVERMERSCH\3DXML\avi\Demo DA
R17 Pre GA\Falcon-IBO_final 3DXML R17.exe
BesoinsLarge Spectre d’utilisation:
Précision des représentations en fonction des processus visés
Disponibilité sur toutes les plateformes informatiques: Du PC Haut de Gamme au Pocket PC
Disponibilité à travers n’importe quel réseau étendu: Extranet Internet Depuis n’importe quel site
ConséquencesUne représentation 3D:
Flexible en fonction des besoinsUtilisant toutes les techniques de compression:
Optimisation du codage Réduction de la taille par dégradation maîtrisée de
l’information Compression de la forme à l’aide de schémas de
subdivision
Convergence avec d’autres industries
Jeux VideoAnimation 3D
(http://pages.cpsc.ucalgary.ca/~samavati/cpsc589/papers/derose98.pdf)
Publicité Design…..Numérisation du Patrimoine
Objectifs du ProjetIllustration des techniques de compression de
representation 3D:Application aux aretes vives:
Utilisation des courbes de subdivision en 2D et 3DRemplissage des faces planes: triangulation de
DelaunayApplication aux surfaces 3D canoniques:
Utilisation des surfaces de subdivision Codage optimal des maillagesCodage des informations géomètriques
Courbes de subdivision: Principe (1/3)Courbe de subdivision = courbe limite générée
par une infinité de raffinements appliqués à un polygone de contrôle
Courbes de subdivision: Principe (2/3)Schéma de subdivision = Règle de calcul des
nouveaux points issus du raffinement
P0 P’0
P’1
P’2
P’4P’3 P’5
P’6
P’7
P’8 P4
P1
P2
P3
P’0=P0 (point fixe) P’8=P0 (point fixe)
P’1=(P0+P1)/2
P’3=(P1+P2)/2 P’5=(P2+P3)/2
P’7=(P3+P4)/2
P’2=(P0+6P1+P2)/8
P’4=(P1+6P2+P3)/8
P’6=(P2+6P3+P4)/8
Courbes de subdivision: Principe (3/3)Problème= Trouver le polygone de contrôle initial
P0P1P2P3P4 qui converge vers la courbe cible en 3 itérations maxi à une précision près
Courbes de Subdivision: Algorithme
1. Trouver un polygone initial (plusieurs méthodes et la qualité de l’initalisation influe sur la convergence)
2. Construire le systéme linéaire qui donne les points de l’itération n en fonction du polygone initial
3. Construire la fonction quadratique qui donne la somme des distance au carré des points de l’iteration n à la courbe cible
4. Minimiser cette fonction qui donne un nouveau polygone initial
5. Itérer6. Rajouter un point dans le polygone si nécessaire et
itérer à nouveau
Distance au carré à la courbe cible (1/2)Formes canoniques: trivialCourbe décrite par un maillage:
P1
P2P3
C
Cercle Osculateur
P1, P2,P3:Trois points successifs du maillage
Q (x1, x2)
da
r
da²=(√x1² + (x2-r)² - |r|)²
Distance au carré à la courbe cible (2/2)Piège:
Le bon point projeté n’est pas toujours le plus proche…
Comment prendre le bon Point?
Initialisation du Polygone de controle
Quelques pistes:Le premier et le dernier côté du polygone sont
les tangentes de la courbe cibleLa courbure joue un rôle essentielGarder le nombre de points de contrôle
minimal
Triangulation de Delaunay Diagramme de Voronoi
On désigne par P un ensemble composé de n points Pi de l’espace IR2 appelés aussi sites
On appelle polygone de Voronoï associé au site Pi la région Vor(Pi) (chaque région étant l'ensemble de points (x,y) les plus proches à un point de P) telle que chaque point de P a pour plus proche site Pi.
Le diagramme de Voronoi représente l’ensemble des régions de Voronoi
Triangulation de Delaunay: C’est le dual du diagramme de Voronoi, c’est-à-dire un nouveau
diagramme où cette fois, on relie par un segment toutes les paires de sites dont les régions de Voronoï correspondantes sont adjacentes, c’est à dire séparées par une arête de Voronoï.
Delaunay contraint: des arêtes sont imposées, ce sont les arêtes des limites de la face plane
Utilisation de 3D Blender
FonctionnementUn chef de Projet (Matthieu Lecce)Construire d’abord une tour fonctionnelle:
Construire l’architecture de la solutionFaire fonctionner l’ensemble des composants sur
des scénarios simples: Courbe 2D Stratégie d’utilisation du raffinement dans la visualisation Courbe 3D Remplissage des faces Planes Surfaces Canoniques (Presentation lors de la sceance 2
ou 3) Pinocchio
Application aux formes canoniques développables
La topologie d’une face est définie par : Contour extérieur Des contours intérieurs optionnels
Orientation des contours: Nz= Normale a la face orientée vers l’extérieur N=Normale au contour orientée vers l’intérieur de la face T= Tangente au contour Le trièdre T, N, Nz est direct
Les geodesiques: Sont des droites sur la surface mise à plat: Forment un angle constant avec:
La generatrice: lieu des points de courbure min La directrice : lei des points de courbure max
TN
Nz
T
NNz
<
<
<
<
<
Maillage Polygonal Initial (1/4) Point du polygone intial de chaque contour
Position limite de ce point
<
<
<
<
<
Maillage Polygonal Initial (2/4) D’une topologie muli contour a une topologie mono contour:
Pour Chaque couple de points (Pi, Pj) où Pi appartient au contour externe, Pj appartient au contour interne, on recherche la geodesique qui minimise l’angle entre les lignes de courbure min ou max
En cas d’egalite, on prend la geodesique qui fait l’angle le plus proche de PI/2 avec le contour interne ou externe
On double les points Pi, Pj choisis et on rajoute deux geodesiques identiques mais parcourues dans le sens oppose pour maintenir une orientation correcte du contour resultant
On procede ainsi jusqu’à élimination de tous les contours externes
<
<
<
<
<
<
<
Maillage Polygonal Initial (3/4) Construction du Maillage Initial:
Pour Chaque couple de points (Pi, Pj), on recherche la geodesique qui minimise l’angle entre les lignes de courbure min ou max
En cas d’egalite, on prend la geodesique qui fait l’angle le plus proche de PI/2 avec le contour interne ou externe
On double les points Pi, Pj choisis et on rajoute deux geodesiques identiques mais parcourues dans le sens oppose pour maintenir une orientation correcte du contour resultant
On cree deux contours disjoints<
<
<
<
<
<
<
< <
<
<
<
< <
<
<
<
On itere ainsi jusqu’ a ce qu’il ne reste:
Des triangles Des quadrangles convexes
avec un critere de qualité
Maillage Polygonal Initial (4/4) Construction du Maillage Initial:
Un processus de fusion des quadrangles et triangles permet d’obtenir le maillage recherche en rpenant soin de raccorder les arêtes aux points des polygones initiaux des frontieres
Schéma de subdivision3 catégories de points:
Points fixesPoints frontieres (arêtes vives) (subdivision des
courbes)Points internes aux contours
Points internes: Schema de Subdivision ne =Nbre d’aretes nq = Nbre de quadrangles
β
Point à lisser entouré de triangles (Loop)
Point à lisser entouré de Quadrangles (Catmull-
Clark)
Point à lisser entouré de triangles et de
Quadrangles (Stam et Loop)
α = 2( 3/8 + (cos(2∏/ne))/4)**2 - 1/4
β = ( 1 – α ) / ne
α = ( ne – 3 ) / ne
β = 2 / ne**2
γ = 1 / ne**2
α = 1 / ( 1 + ne / 2 + nq / 4 )
β = α / 2
γ = α / 4
α
β
β
β
β
β
β β
β
β
γ
γ
γ
γ γ
γ
γ
γ
γ
β
γ
α
β
γ
γ
γ
β
β
β β β
β
β
γ
γ
γ
β
α
β
β
β β
β
β
β
β
ExempleP0
0
P10
P20
Q10
Q00 Q2
0
Q12
Q02
Q22
P01
P11
P21
Q11Q0
1Q21
P31
P41
Q31 Q4
1
R11
R01
R21
R31
R41
S02
P02 P1
2 P22 P3
2 P42
Q32 Q4
2
P52
Q52
P62 P7
2P8
2
Q72Q6
2Q8
2
R12
R02
R32 R4
2R5
2
R72R6
2
R82
S12
S32S4
2S5
2
S72S6
2
S82
T12
T02
T32 T4
2T5
2T7
2T62
T82
R22
S22
T22
P11= (P0
1 + P21) /2
P21 = P0
1/8 + 6*P21/8 + P4
1 /8
P31= (P2
1 + P41) /2
Q11= (Q0
1 + Q21) /2
Q21 = Q0
1/8 + 6*Q21/8 + Q4
1 /8
Q31= (Q2
1 + Q41) /2
R01= (P0
1 + Q01) /2
RR11= (P1
1 + Q11) /2
RR21= (P2
1 + Q21) /2
RR31= (P3
1 + Q31) /2
R41= (P4
1 + Q41) /2
R11= γP0
1 + βP11 + γP2
1 + βR01 + αRR1
1 + βRR21 +
γQ01 + βQ1
1 + γQ21
R21= γP1
1 + βP21 + βR1
1 + αRR21 + βRR3
1 + γQ11 +
βQ21 + β Q3
1
R31= β P2
1 + βP31 + βR2
1 + αRR31 + βR4
1 + βQ31 + β
Q41
Approximation Quadratique
Courbes:Fd(x1, x2, x3) = (d/(d + ρ))*x1**2 + x2**2 + x3**2
Surfaces:Fd(x1, x2, x3) = (d/(d + ρ1))*x1**2 + (d/(d + ρ2))*x2**2 +
x3**2
RépartitionStructure de donnees raffinement en memoire:
MatthieuBounaBenoit
Parser xmlRémi
Courbes subdivision 3D:PaulineYassineYoan
Visualisation+ DelaunayBenoitElodieJoseph
1
2 3
4
5
67
8
9
V x y Z
1 1
2 4 3 1
3 4
4 6 5 3 4
5 6
6 2 5 6
7 2
8 1 3 5 2
9 1 2
Q
1 1 2 8 9
2 9 8 6 7
T
3 2‘4
8
4 2 3 4
5 8 4 6
6 4 5 6
10
11
12
1314
15
16
17
18
19
21
2022
23
24
25
26
27
28
29
3031
3233 34
35 3637
3839
40 41
42 43 4445
46
47
48 49 50 51
52 53
54
55
56 57 58 59 60 61 62 63 64
6566 67 68
69 70 7172 73 74 75
76
7778
79
80
81
Top Related