Vous êtes sur la page 1sur 5

Maillages Polygonaux

Les maillages polygonaux sont la

Plans, polygones, et représentation la plus commune

maillages

Alexandre Meyer
http://www710.univ-lyon1.fr/~ameyer/cours

Souvent des triangles


ou des quadrilatères.
1 Cours de synthèse d’images 2

Par exemple en OpenGL Plan


glBegin(GL_POLYGONS);  Polygones
glVertex3f( 1.0f, 1.0f, 1.0f);  Plans
glVertex3f( 1.0f,-1.0f, 1.0f);  Polyèdres
glVertex3f( 1.0f,-1.0f,-1.0f);
glVertex3f( 1.0f, 1.0f,-1.0f);  Format de fichier
glEnd();  OpenGL

Cours de synthèse d’images 3 Cours de synthèse d’images 4

Polygones Convexe, Concave


 Convexe
 Un polygone (face) Q est défini par
une série de points
[ p0 , p1 , p2 ,..., pn−1, pn ]  Concave

pi = ( xi , yi , zi )  SI préfère les polygones convexes


 Les points doivent être co-planaires  SI préfère les triangles!!
 Conversion facile d’un polygone convexes en triangles
 3 points définissent un plane. Un 4e  Difficile pour les concaves

point ne sera pas forcement sur ce


plan

Cours de synthèse d’images 5 Cours de synthèse d’images 6

1
Équation d’un plan Calculer a,b,c & d (1)

 Le produit vectoriel
ax + by + cz = d p2 n = ( p1 − p0 )× ( p2 − p0 )
 a,b,c et d sont des constantes qui p p p défini la normal au plan
0 1
définissent un plan unique  Il y a deux normales
(opposées)
 Les vecteurs du plans sont
tous orthogonaux au vecteur
normal du plan.
Cours de synthèse d’images 7 Cours de synthèse d’images 8

Calculer a,b,c & d (2) Demi-espace


 Un plan coupe l’espace en 2 demi-plans
 Le vecteur p0p est normal à n
 Définition
n ⋅ ( p − p0 ) = 0
 n1   x  x0 
 n1   x − x0        l ( x, y, z) = ax + by + cz − d
   avec n =  n2  p =  y  p0 =  y0 
  n2 . y − y0  = 0 n   z z 
n  z − z   3    0  Si l(p) =0
 3  0   point est sur le plan
 ax + by + cz = d  Si l(p) > 0
 Le point est dans le demi-espace positif
a = n1 , b = n 2 , c = n 3  Si l(p) <0
avec
d = n.p0 = n1 × x 0 + n 2 × y0 + n3 × z0  le point est dans le demi-espace négatif

Cours de synthèse d’images 9 Cours de synthèse d’images 10

Plan Polyèdres
 Polygones  Les polygones sont souvent groupés pour
 Plans former des polyèdres
 Chaque arête est connectée à 2 sommets et
 Polyèdres connecte 2 polygones
 Format de fichier  Chaque sommet connecte 3 arêtes
 OpenGL  Les faces ne s’intersectent pas

 V-E+F=2 (V=Vertex, E=Edge, F=Face)


 Pour cubes, tétraèdres, vaches, etc...

Cours de synthèse d’images 11 Cours de synthèse d’images 12

2
Exemple Polyèdre (1)

v4 e7  F0=v0v1v4  Exhaustif (Tableau de listes de


v3  F1=v5v3v2 sommets)
 F2=v1v2v3v4  faces[1] = (x0,y0,z0),(x1,y1,z1),(x3,y3,z3)
e9  F3=v0v4v3v5  faces[2] = (x2,y2,z2),(x0,y0,z0),(x3,y3,z3)
e5
e6 e8  F4=v0v5v2v1  etc. ….

v5 e3 v2  Très coûteux en mémoire car chaque


e4 V=6,F=5, E=9 
v
o e1 v1
e2
 V-E+F=2 sommet apparaît au moins 3 fois!!
 Si un point bouge, un trou apparaît!
Cours de synthèse d’images 13 Cours de synthèse d’images 14

Polyèdres (2) Ordre des sommets


Face à base d’indice de sommets (Indexed Face Set)  Polygone v0,v1,v4 != v0, v4, v1
 Tableau de sommets (Vertex array)  Le vecteur normal pointe dans
 vertices[0] = (x0,y0,z0) des directions opposées
v
 vertices[1]= (x1,y1,z1) 4
 etc. … v v0 v1 x v0 v4 = - v0 v4 x v0 v1
3
 Habituellement un polygone
 Tableau de faces (liste d’indices dans le tableau de n’est visible que depuis les
sommets) points de son demi-espace
faces[0] = 0,2,1 v

5 v positif
 faces[1] = 2,3,1
2  Back-face culling
 etc. ... v v
o 1
(cf. OpenGL)

Cours de synthèse d’images 15 Cours de synthèse d’images 16

Structure d’arêtes ailées (1) Structure d’arêtes ailées (2)


 Face =une liste d’indices (pointeurs) sur des arêtes
 Dans la structure IndexedFaceSet
 Arête =
 Chaque arête est représentée 2 fois
 2 indices (pointeurs) de sommets
 Comment trouver deux faces cotes à  2 indices (pointeurs) sur des polygones
cotes?
 Structure d’arêtes ailées (Winged Edge) Les polygones partageant un côté sont identifiés
 Liste de sommets (vertex list) Difficile de connaître les voisins d’un sommet
 Liste d’arêtes (=paire de sommets) (edge donné
list) → Stockage d’informations supplémentaires
 Liste de faces (face lists) → Compromis entre coût mémoire et temps de calcul!

Cours de synthèse d’images 17 Cours de synthèse d’images 18

3
Plan Format OBJ (AliasWavefront)
 Polygones
 # Commentaires jusqu’à la fin de la ligne
 Plans  v float float float
Vertex (sommet). Le 1er vertex a pour numéro 1
Polyèdres


 vn float float float
 Format de fichier  Vecteur normal. La 1ere normale a pour numéro 1
 vt float float
 OpenGL  Coordonnée texture. La 1ere coordonnée a pour numéro 1
 f int int int ...
 f int/int int/int int/int ...
 f int/int/int int/int/int int/int/int ...
 Face. Les numéros correspondent respectivement au indice
de Vertex/VecteurNormal/CoordTexture

Cours de synthèse d’images 19 Cours de synthèse d’images 20

Format OBJ : exemple (cube) Formats : OBJ et VRML


# Ceci est un cube
# 8 sommets  OBJ
v111  Format efficace, simple à gérer et standard
 Pour la description d’une face des
v 1 1 -1 champs peuvent éventuellement être
v 1 -1 1 vide  VRML (fichier.WRL)
v 1 -1 -1  VRML=Virtual Reality Modeling Language
v -1 1 1
Par exemple :  Egalement, listes de sommets et de polygones
v -1 1 -1
v -1 -1 1
f 1//7 2/3/5 3// 4/6/8 Coordinate3 {
v -1 -1 -1 point [ -2.250000 3.110000 -0.350000,
# 6 faces -2.170000 3.070000 -0.520000,
f1342 ...
]
f5786 }
f1562 IndexedFaceSet {
f3784 coordIndex [ 0, 1, 2, 2, -1,
3, 2, 4, 4, -1,
f1573 ...
f2684 ]
}

Cours de synthèse d’images 21 Cours de synthèse d’images 22

Plan OpenGL
 Polygones  glBegin(GL_QUADS); //GL_POLYGON,
 Plans etc.
 Polyèdres glVertex3f( 1.0f, 1.0f, 1.0f);
glVertex3f( 1.0f,-1.0f, 1.0f);
 Format de fichier glVertex3f( 1.0f,-1.0f,-1.0f);
 OpenGL glVertex3f( 1.0f, 1.0f,-1.0f);
 glEnd();

Cours de synthèse d’images 23 Cours de synthèse d’images 24

4
Exo : affichage d’un cube

Cours de synthèse d’images 25 Cours de synthèse d’images 26

Vous aimerez peut-être aussi

  • c01 Image Intro
    c01 Image Intro
    Document4 pages
    c01 Image Intro
    Cyrille Lamassé
    Pas encore d'évaluation
  • SI Exos
    SI Exos
    Document5 pages
    SI Exos
    Cyrille Lamassé
    Pas encore d'évaluation
  • coursDiagClasses1 7p
    coursDiagClasses1 7p
    Document7 pages
    coursDiagClasses1 7p
    Cyrille Lamassé
    Pas encore d'évaluation
  • c05 Image Illumination
    c05 Image Illumination
    Document6 pages
    c05 Image Illumination
    Cyrille Lamassé
    Pas encore d'évaluation
  • c09 Image Rendurapide
    c09 Image Rendurapide
    Document7 pages
    c09 Image Rendurapide
    Cyrille Lamassé
    Pas encore d'évaluation
  • c02 Image Math
    c02 Image Math
    Document7 pages
    c02 Image Math
    Cyrille Lamassé
    Pas encore d'évaluation
  • c09 Image Animation
    c09 Image Animation
    Document3 pages
    c09 Image Animation
    Cyrille Lamassé
    Pas encore d'évaluation
  • LD Progfonct Scheme Cours
    LD Progfonct Scheme Cours
    Document9 pages
    LD Progfonct Scheme Cours
    Cyrille Lamassé
    Pas encore d'évaluation
  • coursDiagClasses2 10p
    coursDiagClasses2 10p
    Document10 pages
    coursDiagClasses2 10p
    Cyrille Lamassé
    Pas encore d'évaluation
  • Formulaire Langage Et Automates
    Formulaire Langage Et Automates
    Document7 pages
    Formulaire Langage Et Automates
    Cyrille Lamassé
    Pas encore d'évaluation
  • coursUML Introgenerale 16p
    coursUML Introgenerale 16p
    Document16 pages
    coursUML Introgenerale 16p
    Cyrille Lamassé
    Pas encore d'évaluation
  • coursUMLDynamique2 8p
    coursUMLDynamique2 8p
    Document8 pages
    coursUMLDynamique2 8p
    Cyrille Lamassé
    Pas encore d'évaluation
  • PgmationParContratsUML 3p
    PgmationParContratsUML 3p
    Document3 pages
    PgmationParContratsUML 3p
    Cyrille Lamassé
    Pas encore d'évaluation
  • coursPU UML 2004
    coursPU UML 2004
    Document6 pages
    coursPU UML 2004
    Cyrille Lamassé
    Pas encore d'évaluation
  • Naheulbeuk Paladin
    Naheulbeuk Paladin
    Document2 pages
    Naheulbeuk Paladin
    Cyrille Lamassé
    Pas encore d'évaluation
  • Demarche UML
    Demarche UML
    Document10 pages
    Demarche UML
    Cyrille Lamassé
    Pas encore d'évaluation
  • Unified Modeling Language
    Unified Modeling Language
    Document30 pages
    Unified Modeling Language
    Cyrille Lamassé
    Pas encore d'évaluation
  • coursUMLDynamique1 23p
    coursUMLDynamique1 23p
    Document23 pages
    coursUMLDynamique1 23p
    Cyrille Lamassé
    Pas encore d'évaluation
  • Lang C Ayache
    Lang C Ayache
    Document131 pages
    Lang C Ayache
    Cyrille Lamassé
    Pas encore d'évaluation
  • ReflexionsModeleClasses 5p
    ReflexionsModeleClasses 5p
    Document5 pages
    ReflexionsModeleClasses 5p
    Cyrille Lamassé
    Pas encore d'évaluation
  • Maraudeur 20
    Maraudeur 20
    Document116 pages
    Maraudeur 20
    Cyrille Lamassé
    Pas encore d'évaluation
  • coursDiagActivitesUML 3p
    coursDiagActivitesUML 3p
    Document3 pages
    coursDiagActivitesUML 3p
    Cyrille Lamassé
    Pas encore d'évaluation
  • Immcm 2
    Immcm 2
    Document42 pages
    Immcm 2
    Cyrille Lamassé
    Pas encore d'évaluation
  • L'éclaireur 3
    L'éclaireur 3
    Document80 pages
    L'éclaireur 3
    Cyrille Lamassé
    Pas encore d'évaluation
  • Immcm 1
    Immcm 1
    Document31 pages
    Immcm 1
    Cyrille Lamassé
    Pas encore d'évaluation
  • NHB Barbares Regles
    NHB Barbares Regles
    Document12 pages
    NHB Barbares Regles
    Cyrille Lamassé
    Pas encore d'évaluation
  • Untitled
    Untitled
    Document17 pages
    Untitled
    Cyrille Lamassé
    Pas encore d'évaluation
  • TH' Ese
    TH' Ese
    Document196 pages
    TH' Ese
    Cyrille Lamassé
    Pas encore d'évaluation
  • L'éclaireur 1
    L'éclaireur 1
    Document38 pages
    L'éclaireur 1
    Cyrille Lamassé
    Pas encore d'évaluation
  • Untitled
    Untitled
    Document9 pages
    Untitled
    Cyrille Lamassé
    Pas encore d'évaluation