Académique Documents
Professionnel Documents
Culture Documents
EC833 Poly
EC833 Poly
SOMMAIRE
Bibliographie Gnrale: ............................................................................................................................................. 2
PARTIE A : MODELISATION INFORMATIQUE ................................................................................................. 2
Introduction ................................................................................................................................................................ 2
I - La modlisation bidimensionnelle - Quadtree ....................................................................................................... 3
I.1 Dfinition .......................................................................................................................................................... 3
I.2 Exemple ............................................................................................................................................................ 3
I.3 Structures de donnes (1), (2) ........................................................................................................................... 4
I.4 Oprations sur quadtree .................................................................................................................................... 5
II. - La modlisation tridimensionnelle ...................................................................................................................... 6
II.1. Introduction ................................................................................................................................................ 6
II.2. Les modles ................................................................................................................................................ 6
II.3. Les conversions de modles ..................................................................................................................... 11
II.4. Les modeleurs .......................................................................................................................................... 12
Bibliographie : .......................................................................................................................................................... 15
Bibliographie Gnrale:
[1] B. PEROCHE, D. GHAZANFARPOUR, J. ARJENCE, D.MICHELUCCI "La synthse d'images" HERMES
1990
[2] FOLEY and VAN DAM
Computer graphics, Principles &Practice
ADDISON-WESLAY PUBLISHING COMPANY 1990
[3] F.P. Preparata, M. I. Shamos, Computational geometry : an introduction , Springer- Verlag, 1985
Introduction
Lalgorithmique graphique ou synthse dimages est ne peu de temps aprs linformatique. Les premiers
algorithmes et logiciels datent de 1963 (algorithme dlimination des lignes caches de L.G. Roberts - logiciel
SKETCHPAD de I.E. Sutherland).
Pourtant aujourdhui, cette discipline occupe encore de nombreux chercheurs. Cest dire la complexit du
problme pos : fabriquer des images, le plus proche de la ralit, ou plutt faut-il dire, de la vision humaine.
Le but de ce document est de rsumer les principales techniques utilises dans la synthse dimages et de
proposer les principales rfrences pour une tude approfondie.
Le processus menant limage de synthse se dcompose en trois parties. La premire est la construction du
modle reprsentant lunivers visualiser. La seconde essentiellement algorithmique, est celle de lintroduction
dun observateur et du calcul des parties visibles du modle. La troisime prcise les mcanismes de la vision en
fonction de lclairage.
Avant daborder les diffrents chapitres, la figure illustre les structures de donnes ncessaires aux diffrentes
transformations de limage .
Segmentation/Rgionnement
Pictogramme
"bitmap" Trac
I.1 Dfinition
Le quadtree, ou arbre quaternaire, est utlilis pour reprsenter informatiquement des objets 2D. A lespace
considr est superpose une grille constitue de 2**q x 2**q cellules (q entier positif, reprsentant la
profondeur de larbre).
Les feuilles de larbre reprsentent des parties homognes(remplies/vides) de lespace modlis et les nuds
reprsentent des parties mixtes (partiellement remplies/vides).
I.2 Exemple
Dans cet exemple, est reprsent le quadtree correspondant un polygone constitus par une liste de points
coplanaires, le premier point tant reli au dernier, et une liste dartes reliant les points entre eux Les nuds du
quadree sont diviss en 3 classes :
. nud intrieur (feuille) : reprsente les points intrieurs au polygone(symbolis par un carr noir),
. nud extrieur (feuille) : reprsente les points nappartenant pas au polygone (symbolis par un carr blanc),
. nud frontire : reprsentent les cellules de la grille qui intersectent la frontire du polygone.
struct t_freres
struct t_freres *fils ;
int couleur ;
freres[4]
Exo. : calculer la place mmoire occup par larbre de lexemple I.2.
. Intersection de 2 quadtrees
si n(q1) = N , n(q2) alors n(q3) := n(q2)
si n(q2) = N , n(q1) alors n(q3) := n(q1)
si n(q1) = B , n(q2) alors n(q3) := B
si n(q2) = B , n(q1) alors n(q3) := B
si n(q1)=n(q2)=G alors parcourir
Travail dirig 1
Ecrire lalgorithme qui ralise un OU-EXCLUSIF entre deux quadtrees q1, q2 et place le rsultat dans q1. Les
fentres associes aux nuds racines des deux quadtrees sont supposes identiques.
La premire tape du processus de cration dimages de synthse est la modlisation. Elle dfinit les structures
de donnes utilises par les algorithmes dlimination des parties caches, dombrage et dclairage.
Ce chapitre se limite ltude des reprsentations dobjets solides. Un objet solide est rigide, sa forme est
invariante par des transformations affines telles que la rotation ou la translation. Il est tridimensionnel, possde
un intrieur et sa frontire ne contient pas dartes ou de faces pendantes. Il est fini et forme une partie borne de
3 . Les principaux critres de validit dun modle sont lunicit et la non- ambigut. Tout modle runit ces
deux conditions sil ralise une bijection entre lensemble des solides reprsentables et limage quil donne de
cet ensemble (1).
Nous aborderons successivement les diffrents modles existants, les conversions qui leur sont associes et enfin
les oprateurs ou modeleurs permettant leur construction.
Historiquement cest le premier modle. Les objets sont reprsents sous la forme dune suite de segments 3D
dfinis par les coordonnes (x,y,z) de leurs extrmits.
Ce modle simple ne demande pas une grande puissance de calcul et peut tre implant dans un espace mmoire
restreint. Particulirement adapt pour les applications en temps rel, il gnre toutefois de fcheuses ambiguts
:
il ne distingue pas le plein du vide (figure 1)
il nassure pas les critres que doivent vrifier les objets solides (cf.II.1.)
il ne permet pas les calculs gomtriques (volume, masse,...) et llimination des parties caches.
Ce modle permet de distinguer lintrieur de lextrieur donc le plein du vide. Lobjet est dans ce cas reprsent
par un ensemble de facettes. Chaque facette est dfinie par son contour qui est une suite ordonne de segments
3D. Le modle surfacique peut gnrer des objets non cohrents avec des facettes pendantes. Il est nanmoins
utilis, pour des raisons historiques, par la plupart des algorithmes dlimination des parties caches.
Cest la reprsentation la plus utilise par les logiciels de CAO. Lobjet est modlis sous la forme dun arbre
binaire o les feuilles sont des volumes lmentaire (boite, sphre, cylindre, ...) et les nuds sont des oprations
boolennes rgulires ( , , ) (figure 2).
Pour respecter les critres dfinis sur les objets solides, on impose la rgularit des oprations boolennes.
Ainsi :
La modlisation par arbre de construction se ralise simplement; elle est gnralement trs conviviale. Si les
oprations boolennes sont rgulires, les objets gnrs sont cohrents. Les calculs gomtriques sont par
contre difficilement ralisable et lunicit de la reprsentation nest pas assure (figure 2).
Un octree est un arbre huit branches. Les nuds de larbre sont des cubes inclus dans lespace de modlisation.
Le nud racine est lespace lui-mme et ses huit fils sont des cubes de mme volume qui le divise (figure 4).
O E
S
HNO HNE HSO HSE BNO BNE BSO BSE
B 1 2 3 4 5 6 7 8
Les noeuds sont ordonns du Haut vers le Bas, du Nord vers le Sud
et de l'Ouest vers l' Est
Figure II.4 : Octree
Une feuille de larbre est dite blanche (B) resp. noire (N) si le cube qui lui correspond est lextrieur de lobjet
(resp. lintrieur). Les nuds internes ont la couleur grise (G) et possdent huit fils.
Modliser un objet sous forme doctree consiste donc divise rcursivement lespace en huit parties gales.
Lorsque ncessaire, la division se poursuit jusqu une taille de cube e,pralablement dfinie.
H
O E
Objet (o)
Arbre (A)
G (N G(B G B B B N B B) N B N N N N)
La modlisation par octree gnre des objets cohrents. Elle est unique et non- ambigue. Elle permet deffectuer
trs simplement tous les calculs gomtriques ainsi que les oprations boolennes entre les objets. Certains
algorithmes dlimination de parties caches peuvent lui tre appliqus.
II.2.5.1 Dfinition :
Cette reprsentation dcrit explicitement la frontire de lobjet. La structure de donnes qui lui est associe est de
type listes de faces/artes/sommets . Plusieurs organisations des donnes sont possibles ; la Winged-Edge (3) ou
Double Edge List (4) est la plus approprie..
La structure Winged-Edge (figure 6)sous sa forme simplifie dfinit un solide ou un polydre (P) comme tant
un ensemble de faces. Une face (F) est une suite oriente dartes. Une arte (A) est un couple de sommets. Un
sommet (S) est un triplet (x,y,z) de coordonnes.
La structure Winged-Edge permet dobtenir toutes les informations gomtriques quelque soit lentit
considre: coordonnes de sommets, quation des artes, quation du plan support des faces. Elle fournit toutes
les relations topologiques soit: les contours (C ), les incidences (I), les adjacences (A), des entits S, A, F, P
(figure 7).
Soient :
0-face : sommet ; 1-face: arte ; 2-face : face ; 3-face : polydre
C(Contour): k-face ((k-1)-face) avec k>0,
I(Incidence): k-face ((k+1)-face),
A(Adjacence): k-face (k-face)
Ci-dessous un exemple de structure de donnes classique utilise dans le cadre de la reprsentation par
frontires :
struct t_polyedre
struct t_face *f ;
struct t_arete *a ;
struct t_sommet *s ;
struct t_face
struct t_contour *c ;
struct t_face *suiv ;
struct t_contour
struct t_arete *a ;
struct t_contour *suiv;
struct t_arete
struct t_sommet *o, *e ;
struct t_arete *suiv;
struct t_sommet
double x, y,z ;
struct t_sommet *suiv;
Travail dirig 2
Exercice 2 : - Ecrire les programmes en C correspondants aux oprateurs C(f) , I(s) , A(a) .
- Dterminer la complexit en temps dexcution de ces programmes.
- Dterminer la complexit en temps dexcution des autres oprateurs.
On suppose qu'il existe une variable globale p de type pointeur sur un polydre.
. Structure de donnes pour Winged Edge
struct t_polyedre
struct t_face *f;
struct t_face
struct t_arete *a;
struct t_face *suiv ;
struct t_arete
struct t_face *fdir, *find;
struct t_arete *asfd, *asfi;
struct t_sommet *o, *e;
struct t_sommet
double x, y,z ;
struct t_arete *a;
Travail dirig 2 bis
Exercice 3 : - Ecrire les programmes en C correspondants aux oprateurs C(f) , I(s) , A(a) .
- Dterminer la complexit en temps dexcution de ces programmes.
- Dterminer la complexit en temps dexcution des autres oprateurs.
La figure 8 montre clairement la ncessit de faire cohabiter plusieurs modles dans un mme logiciel de CAO.
Cette cohabitation implique lexistence dalgorithmes de conversion entre les diffrents modles.
Gnrer une reprsentation surfacique ou Fil de Fer partir des modles volumiques est relativement ais.
Linverse na pas dintrt puisque les reprsentations non volumiques peuvent tre incohrentes.
Pour obtenir la modlisation par frontire dun arbre CGS, il faut calculer les surfaces des feuilles de larbre et
effectuer les oprations boolennes des nuds. Ce traitement long et dlicat est conditionn par les problmes de
prcisions numriques (5). Suivant le mme principe, loctree dun arbre CSG se dtermine en construisant les
octrees des feuilles de larbre et en effectuant sur ces derniers les oprations boolennes des nuds. Les
oprations boolennes entre octrees seffectuent directement sur les arbres, lalgorithme de conversion est rapide
et efficace.
Des techniques de conversion doctree en B-rep et inversement ont t publis (6), (7).
Un octree peut toujours tre considr comme un arbre CSG o les feuilles sont des arbres NOIR et les nuds
des oprations *.
Il nexiste pas actuellement de mthodes efficaces de conversion B-rep en arbre CSG. Le problme dans ce cas
sapparente plus la reconnaissance des formes qu la CAO.
Il sagit doprateurs gnrant un schma tridimensionnel partir des entits dfinies dans un espace 2D.
On peut citer llvateur de plan qui, partir de plusieurs vues 2D (vue de face, de dessus et de ct), construit
lobjet tridimensionnel. La modlisation obtenue est soit fil de fer soit surfacique donc ambigue.
Un autre oprateur 2D, 3D est le modeleur par dplacement ou balayage. Lobjet 3D est gnr par une
composition de translation, de rotation et homothtie dun contour 2D. Le modle construit peut tre soit
surfacique soit plus difficilement une reprsentation par frontire (figure 9).
Le plus utilis est certainement le modeleur CSG qui, bien entendu, engendre une reprsentation par arbre de
construction.
Dun point de vue formel, ce modeleur se compose dun ensemble doprations boolennes rgulires
, , (cf. II.2.3.), dun ensemble de volumes lmentaires (les feuilles de larbre) et dun ensemble de
transformations gomtriques, affines, permettant le positionnement des volumes dans lespace de modlisation.
Un modeleur, moins utilis, mais plus original, est celui dcrit par Mantyla, qui construit une reprsentation par
frontires (8). Ce modeleur est form dune suite de fonctions,appeles oprateurs dEuler. Les oprateurs
dEuler assurent la cohrence topologique des objets engendrs : aprs application dun oprateur sur une
reprsentation par frontire, la relation dEuler dfinie au II.2.5.3 est toujours conserve.
La figure 10 prsente lensemble des oprateurs dEuler dans une version rduite du modeleur de Mantyla.
application :
Donner une sequence des oprateurs dEuler pour la construction et la destruction du cube. reprsent sur la
figure 11.
Construction : Destruction :
Sn+2
A2n+1
Sn+1
d1An+1 Fn+2
F2 An+1 d1A3n
S2 d2A1 d2An+1 A3n
A1 S1 Fn+1 S2n
A2
d1A1
S3 d1A2
A2n
An
F1
A3 Sn Fn S2n-1
An-1
S4 An-2
Sn-1
struct sommet
double x, y,z ; /* coordonnes */
struct demi_arete *da; /* sur une demi arte quelconque manant du sommet */
La table ci-dessous donne les informations topologiques de la structure "struct demi arete" :
demi_arete som paire face suiv
d1A1 S1 d2A1 F1 d1A2
d1A2 S2 d2A2 F1 d1A3
d1An+1 S1 d2An+1 F2 d1A2n+1
d2A3n Sn+1 d1A3n Fn+2 d2A3n-1
En supposant que la structure de donnes d'un prisme(struct prisme p), constitue d'une liste circulaire
de faces de n+2 enregistrements, de 2*3n enregistrements de demi artes inter relis par les
informations topologiques donnes par la table ci-dessus, et de 2n enregistrements de sommets, est
initialise :
1) Ecrire en langage C la fonction ContourFace(struct face f, struct demi_arete *da[]) qui retourne
dans le tableau da les demi artes de la face f et qui renvoie le nombre de celles-ci .
2) Ecrire en langage C la fonction AretesIncidentes_Sommet(struct sommet s, struct demi_arete
*da[]) qui retourne dans le tableau da les demi artes incidentes au sommet s et qui renvoie le
nombre de celles-ci .
3) Ecrire en langage C la fonction FacesIncidentes_Sommet(struct sommet s, struct face *f[]) qui
retourne dans le tableau f les faces incidentes au sommet s et qui renvoie le nombre de celles-ci .
4) Ecrire en langage C la fonction VisualiserPrisme(struct prisme p) qui visualise le prisme p. On
suppose qu'il existe une fonction VisualiserFace(struct demi_arete *da[], int n) qui effectue la
projection et l'affichage du contour d'une face, constitue de n demi artes.
5) Quel avantage voyez vous cette structure par rapport la "Winged Edge".
Bibliographie :
Rfrences bibliographiques du chapitre I
(1) H. SAMET The quadtree and related hierrarchical data structures , ACM comp. Surveys , 16(2), June
1984, 187-260.
(2) H. SAMET Applications of spatial data structures. Computer graphics, Image processing and GIS,
Addison Wesley, Reading, MA 1990.
(1) A.A.G. Requicha, Representations for rigid solids : theory methods and systems , ACM computing
surveys, 12(4), dec 1980, 437-464
(2) H. Samet, the quadtree and related hierarchical data structures , ACM computing surveys, 16(2), 1982,
109-144
(3) B. Baumgardt Winged-Edge polyhedron representation , Stanford Artificial Intelligent Report cs-320,
1972
(4) F.P. Preparata, M. I. Shamos, Computational geometry : an introduction , Springer- Verlag, 1985
(5) M. Mantyla, Set operations of GWB , Computer Graphics Forum, 2, aug 83, 122-134
(6) P. Brunet, I. Navazo, Geometric Modeling using Exact Octree Representation of polyhedral object .
Eurographics 85
(7) I. Carlbon, II. Chakrararky, A hierarchical data structure for representing the spacial decomposition of 3D
object , IEEE CG&A, 1985
(8) M. Mantyla, A solid modeler with Euler operators , IEEE CG&A, 2(7), 1982, 17-31