La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Imagerie Numérique Synthèse d’images Objets 3D Licence Pro 2005-2006 Sébastien THON IUT de l’Université de Provence, site d’Arles Département Informatique.

Présentations similaires


Présentation au sujet: "Imagerie Numérique Synthèse d’images Objets 3D Licence Pro 2005-2006 Sébastien THON IUT de l’Université de Provence, site d’Arles Département Informatique."— Transcription de la présentation:

1 Imagerie Numérique Synthèse d’images Objets 3D Licence Pro 2005-2006 Sébastien THON IUT de l’Université de Provence, site d’Arles Département Informatique

2 2 1. Introduction Un objet 3D peut comporter plusieurs milliers, voire dizaines ou centaines de milliers de faces.  Impossible de les générer manuellement dans un code source.  Utilisation d’outils : logiciels de modélisation 3D (3D Studio Max, Maya, LightWave, …) qui permettent de générer graphiquement un objet 3D et de le sauver dans un fichier.  Il faut ensuite charger ce fichier dans le code source.

3 3 Interface type d’un logiciel de modélisation 3D : Interface de 3D Studio Max

4 4 Formats d’objets 3D 3D Studio Max: binaire (.max,.3ds), texte (.ase,.asc) DirectX : (.x) Lightwave : (.lwo) Maya : binaire (.mb), texte (.ma) … Ou trouver des objets 3D 3D Cafe: www.3dcafe.com …

5 5 2. Codage en mémoire d’un objet 3D Dans notre programme, il faut charger le fichier crée par un modeleur 3D  Déclarer des classes appropriées pour coder en mémoire l’objet 3D.

6 6 2.1 Décomposition en listes de sommets et faces Un objet est composé de faces (souvent des triangles). Une face est définie par 3 sommets. Un sommet = un point 3D (x,y,z).

7 1ère solution de codage en mémoire : Représenter un objet par une liste de faces : typedef struct { float x, y, z; } Point3D; typedef struct { Point3D p1,p2,p3; } Face; Objet3D : Face *liste_faces; 0 1 2 3 4 1 2 3 x y p1p2p3 10250315023180 315025023180 231802502080 liste_faces 1 2 3

8 8 Problème : Un sommet est partagé par plusieurs faces  informations redondantes, donc perte de place mémoire. Sommet partagé par 6 faces Sphère composée de 960 faces  960 x 3 point3D(x,y,z)  960 x 3 x 3 float  34560 octets Sommet partagé par 32 faces

9 2ème solution de codage en mémoire :  Séparation en liste de sommets et en liste de faces. 0 1 2 3 4 typedef struct { float x, y, z; } Point3D; typedef struct { int a, b, c; } Face; Objet3D : Point3D *liste_sommets; Face *liste_faces; 1 2 3 xyz 10250 3150 250 2080 23180 liste_sommets x y 0 1 2 3 4 abc 014 124 423 1 2 3 liste_faces

10 10 Sphère composée de 960 faceset de 482 sommets  960 x 3 indices + 482 point3D(x,y,z)  960 x 3 int + 482 x 3 float  23088 octets Sommet partagé par 6 faces Sommet partagé par 32 faces  Gain en place mémoire.

11 11 2.2 Décomposition en sous-objets Dans un logiciel de modélisation 3D, les objets sont souvent crées par assemblage de sous-objets. On retrouve cette décomposition dans les fichiers crées. ObjetSous-objets

12 12  Classe Objet3D  Classe SousObjet3D Première idée de décomposition en classes : class Objet3D { private : list liste_sous_objets }; Mais…

13 13 2.3 Duplication d’objets 3D Si on a plusieurs objets identiques dans la même scène  Duplication de la même géométrie.  Perte de place mémoire, informations redondantes. Ces objets identiques ne diffèrent que par leur position et leur rotation.

14 14 Solution: Séparer les informations de positionnement (position, rotation)  classe Objet3D et les informations de géométrie (liste de sous objets composés de faces)  classe Geometrie3D contient une liste de SousObjet3D

15 15 Résumé : au final, on utilisera les classes suivantes : class Objet3D { GLfloat xpos, ypos, zpos; GLfloat xrot, yrot, zrot; Geometrie3D *geometrie; }; class Geometrie3D { list liste_sous_objets; }; class SousObjet3D { Point3D *liste_sommets; Face *liste_faces; };


Télécharger ppt "Imagerie Numérique Synthèse d’images Objets 3D Licence Pro 2005-2006 Sébastien THON IUT de l’Université de Provence, site d’Arles Département Informatique."

Présentations similaires


Annonces Google