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.

Slides:



Advertisements
Présentations similaires
Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
Advertisements

Formation universitaire à .NET: Introduction à C#
Introduction: Concepts de la programmation
Les outils graphiques Romain Lelong – Octobre 2003.
Éléments de présentation
UML - Présentation.
VI50 – TP3 Introduction à Virtools. Virtools Virtools Media Design 3DS, Maya, Lightwave… Sound Design wav, mp3… Texture, 2D interface jpg, bmp… Specific.
Exportation des données
Virtools Olivier Lamotte.
Introduction à Virtools
B.Shishedjiev - Informatique II1 Travaux dirigés 5 Les structures.
Apprentissage du jeu de morpion
Initiation à 3D Studio Max
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
Création d’un programme :
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Laboratoire d'Informatique de l’Université de Franche-Comté
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF Contenu du cours Transformations géométriques des objets –Transformations 2D –Transformations entre systèmes.
IFT1025, Programmation 2 Jian-Yun Nie
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Vers la conception objet
Analyse des besoins en informatique du SRI
Modèles d’implantation
Structures de données IFT Abder Alikacem Gestion des exceptions Département dinformatique et de génie logiciel Édition Septembre 2009.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
Projet Image en C++ Composition du trinôme : DUPONT Thomas MEHAULT Maxime NICOLAS Rémi L3 MI - Année
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
Lutte par confusion sexuelle contre les insectes
Standard Template Library
Texture 2D en PGC++.
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Introduction Semaine 1 Département d’informatique et de génie logiciel Édition Septembre 2009.
Héritage et composition
Le langage du Web CSS et HTML
Modélisation géométrique
ALGORITHMIQUE ET PROGRAMMATION C
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Images Matrice de points (pixels) Caractérisée par : Poids en octets
1 Extension du modèle de composants CORBA avec accès concurrent à des données partagées Travail réalisé par : Landry BREUIL PFE, ISIMA Encadrants : Gabriel.
Arbres binaires et tables de hachage
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 1 – Objets et Classes Master 1 SIGLIS1Java Lecteur - Chapitre 1 Objets et classes.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
Fondamentaux de l’enseignement
Les opérateurs L’amitié Les opérateurs Introduction
Cours LCS N°4 Présenté par Mr: LALLALI
Les outils graphiques Ce sont des programmes avec les quel on peut modifier ou créer differentes sorte d’images ou videos,sert a la création,manipuler.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 6 Transformation et animation de plusieurs modèles 3D avec XNA –Chargement des modèles 3D (modèle.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Conception de Programmes - IUT de Paris - 1ère année – Cours 6 - Les opérateurs L’amitié Les opérateurs –Introduction –Surcharge par fonction.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
GRAPHISME PAR ORDINATEUR
Simulateur de microcontrôleur Intel 80C51
LCIN4U73 Bases géométriques de l’imagerie
Les outils graphiques Permet de traiter ces dessin Manipuler des formes, des photos Modifier les vidéo 3 D.
Visualisation des flots optiques en 3D
Les outils graphiques Ce sont des outils qui nous permet de modifier et crée des photos et vidéos. Outils servant à la création, au traitement et à l’exploitation.
Les outils graphiques Qu’est-ce qu’un outil graphique?
Utilise ce tableau pour mieux écrire les nombres.
Pierre Malenfant Technologie 9 École du Carrefour
Présentation de Qt Iris 1
Traitement d’images Semaine 09 v.A15.
Plan de la présentation Le langage HTML Dreamweaver MX Les premiers outils pour créer une page web :  Propriétés d’une page  Création de cadres  Création.
Le codage des nombres en informatique
LES CLASSES ET LES OBJETS
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
1 Monopalme Projet 4 Info Présentation finale LE LAY Olivier MAHE Jocelyn FORM Nicolas HENRY Gurvan BONNIN Thomas BASSAND Guillaume Décembre 2009 MONNIER.
Transcription de la présentation:

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

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 Interface type d’un logiciel de modélisation 3D : Interface de 3D Studio Max

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: …

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 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).

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; x y p1p2p liste_faces 1 2 3

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  octets Sommet partagé par 32 faces

2ème solution de codage en mémoire :  Séparation en liste de sommets et en liste de faces typedef struct { float x, y, z; } Point3D; typedef struct { int a, b, c; } Face; Objet3D : Point3D *liste_sommets; Face *liste_faces; xyz liste_sommets x y abc liste_faces

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

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  Classe Objet3D  Classe SousObjet3D Première idée de décomposition en classes : class Objet3D { private : list liste_sous_objets }; Mais…

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 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 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; };