Les graphes de sc` ene
Jean-Yves Didier
Universit´e d’Evry
24 mars 2010
Graphe de sc` ene 3D
Definition
Graphe de sc`ene : Organisation hi´erarchique des diff´erents
´el´ements composant une sc`ene 3D.
Natures diff´erentes
I Arbre de construction CSG ;
I Utilis´e par les logiciels de CAO (ex : SolidWorks, Catia, etc) ;
I Octrees (partition de l’espace en morceau de plus en plus petits) :
I la d´etection de collision ;
I la m´ethode des ´el`ements finis . . .
I Graphe de sc`eneVRML-like :
I C’est le plus classique !
Graphe de sc` ene VRML-like (1/2)
Caract´eristiques
I Repr´esent´e par un arbre (graphe orient´e acyclique) ;
I Contient :
I des ´el´ements g´eom´etriques,
I des propri´et´es de rendu,
I des param`etres cam´era,
I des param`etres d’illumination,
I des transformation g´eom´etriques.
Structure d’arbre Noeud racine
Arc
Noeud
Noeud de groupement
Feuille
(Noeud terminal)
Graphe de sc` ene VRML-like (2/2)
Effectuer le rendu d’un graphe de sc`ene
I Parcours, en profondeur d’abord, en largeur ensuite ;
I Au rendu est associ´e un´etat de parcours (traversal state) : un ensemble de propri´et´es utilis´ees pour effectuer le rendu ;
I La travers´ee de chaque noeud modifie cet´etat de parcours ;
I Cet ´etat est celui de l’automate pilotant le pipeline graphique.
I Les parents dans la hi´erarchie affectent le rendu des enfants.
Propri´et´es typiques d’un ´etat de parcours
I transformation g´eom´etrique et cam´era ;
I mod`eles d’illumination et lumi`eres ;
I style de dessin et mat´eriaux (material) ;
I listes de coordonn´ees et normales.
Exemple de graphe de sc` ene
Soleil
Rotation
Jupiter
Rotation
Ganym`ede Io
Terre
Rotation
Lune
Le noeud rotation :
En entr´ee : Sauve la matrice monde courante et la multiplie par une rotation ;
En sortie : Restaure la matrice monde pr´ec´edement sauvegard´ee.
Exemple de graphe de sc` ene
Soleil
Rotation
Jupiter
Rotation
Ganym`ede Io
Terre
Rotation
Lune
Lecture du graphe :
– DessinerSoleil ;
– Sauvegarder matrice et appliquer rotation ; – DessinerJupiter ;
– Sauvegarder matrice et appliquer rotation ; – DessinerGanym`ede ;
– DessinerIo; – Restaurer matrice ; – DessinerTerre;
– Sauvegarder matrice et appliquer rotation ; – DessinerLune;
– Restaurer matrice ; – Restaurer matrice ;
Les noeuds
Propri´et´es et champ
I Un noeud poss`ede des propri´et´es ;
I Dans la pratique, elles sont modifiables ;
I Ces propri´et´es sont appel´ees des champ.
Examples
Sphere : Rayon ;
Couleur : Rouge, Vert, Bleu ;
Boite : Largeur, Longeur, Hauteur ; Rotation : Axe de rotation, Angle.
Les graphes de sc` ene dynamiques (1/2)
D´efinition
Lesgraphes de sc`ene dynamiques sont des graphes de sc`ene dont les noeuds voient leurs champs modifi´es en cours d’ex´ecution.
Les routes
Lesroutes repr´esentent un m´ecanisme de propagation de valeurs de noeuds `a noeuds. Les routes repr´esentent des flux de donn´eesau sein de l’application.
Les graphes de sc` ene dynamiques (2/2)
Les sources des flux
Les sources de flux g´en´erent des donn´ees de mani`ere dynamiques au cours de l’ex´ecution du programme. Leur nature est diverse :
I Fonctions derappel (callback) ;
I Scripts ;
I Pilotes de capteurs interfac´es avec le graphe de sc`ene ;
I Ev`enements de l’interface graphique ;
I Noeud particuliers enginesou Noeud + un des ´el´ements pr´ec´edents ;
Exploitation des graphes de sc` ene
Modeleurs
Les modeleurs servent `a cr´eer des graphes de sc`enes :
I 3DS Max (propri´etaire) ;
I Blender (libre).
Biblioth`eques
I Inventor(propri´etaire ou libre suivant impl´ementations) ;
I OpenSceneGraph (libre) ;
I OGRE (libre) . . .
Environnement de d´eveloppement 3D int´egr´e
I Virtools (propi´etaire).
Virtools et Inventor
Virtools
I Le graphe de sc`ene apparaˆıt dans Hierarchy manager ;
I Le comportement dynamique est r´ealis´e `a l’aide de scripts (Schematic) ;
I Les scripts sont des assemblages debuilding blocks ;
I Le flux de donn´ees est ind´ependant de l’ordre de parcours du graphe de sc`ene.
Inventor
I Fais l’objet d’une pr´esentation compl`ete et s´epar´ee ;