320 likes | 409 Views
DESS IMM Bordeaux I. Laboratoire LIPSI-ESTIA. SIM ulateur A quitain de P rocédés d’ I ncinération. Interface 3D pour SIMAPI. Stéphane Renaudie Année 2003. Responsable de stage : Nadine Couture. Tuteur de stage : Irek Tobor. Simulateur d’entraînement. Le procédé d’incinération.
E N D
DESS IMM Bordeaux I Laboratoire LIPSI-ESTIA SIMulateur Aquitain de Procédés d’ Incinération Interface 3D pour SIMAPI Stéphane Renaudie Année 2003 Responsable de stage : Nadine Couture Tuteur de stage : Irek Tobor
Simulateur d’entraînement • Le procédé d’incinération • Importance de la partie 3D • De la maquette au transfert www.estia.simapi.fr Introduction • Objectif du stage
Plan • Contexte du projet • Optimisation des fichiers 3D • Réalisation de l’interface 3D • Réalité virtuelle Bilan
Le Laboratoire en Ingénierie des Processus et des Services Industriels - LIPSI • Ingénierie de la conception • Sciences Pour l’Ingénieur • Sciences et Technologie de l’Information et de la Communication I. Contexte du projet • L’École Supérieure en Technologies Industrielles Avancées - ESTIA • L’aide aux entreprises, pépinière (IRA) • Transfert de technologie • Recherche
I. Contexte du projet • Le Projet SIMAPI • 3 laboratoire Aquitains LGPP (Pau) - LEPT (Talence) - LIPSI (Bidart) • Maquette v.0.7 (avant le stage) • Simulation d’une usine • Architecture logicielle • Interfaces 2D et 3D • Modèle physique (Fortran encapsulé) • Organisation en processus communicants
I. Contexte du stage • Interfaces 2D de la maquette v.0.7 • Réalisée en C++ Avec gtkmm, glade
I. Contexte du projet • Interface 3D de la maquette v.0.7 • Réalisée en C++ avec Performer • Usine réelle • Plans AutoCad • Modélisation Catia • Texturage 3DSMax
I. Contexte du stage • Objectif de SIMAPI-Transfert • Transfert technologique • Plan de communication • Mise en avant de la 3D • Objectifs du stage • Ré-implémentation de la partie 3D • Passage de Performer à OpenSG • Portage sur Hémicyclia • Portage sur Vision Station
II. Optimisation des fichiers 3D • Gestion de graphe de scène • Importance de la scène en entrée • Les fichiers VRML de SIMAPI • Objet 3D arbre de scène • Nœuds : transformations • Feuilles : Objet (apparence + géométrie) • Problèmes avec VRML/OpenSG
II. Optimisation des fichiers 3D • Problème de texturage • Cause : • Transformations de texture ignorées • Solution : • Appliquer les transformations de texture aux coordonnées de textures • Mise en œuvre: • Parcours de l’arbre de scène • Calcul des nouvelles coordonnées de textures
II. Optimisation des fichiers 3D • Textures :
II. Optimisation des fichiers 3D • Problème d’utilisation mémoire • Cause : • Textures dupliquées • Solution : • Suppression des textures dupliquées • Mise en œuvre: • Utilisation des DEF/USE de VRML
Solution : Regroupement d’objets • Mise en œuvre: Groupe 1 transformation1 Groupe transformation2 Groupe 2 • Suppression des transformations Apparence 1 Apparence 1 Apparence 2 Géométrie 1 • Regroupement des objets de même apparence Apparence 2 Apparence 1 t1 appliquée Géométrie 1 Géométrie 2 Géométrie 3 Géométrie 2 Géométrie 3 t1 et t2 appliquées t1 et t2 appliquées II. Optimisation des fichiers 3D • Problème d’utilisation mémoire • Cause : Largeur de l’arbre trop grande • Exemple sur une « petite » salle :
racine Objet 1 Apparence 1 Géométrie 1 Objet n Apparence n Géométrie n II. Optimisation des fichiers 3D • Arbre résultant : • Gain en performance Exemple « petite » salle • Nombre de feuilles : ~300 15 • Affichage simple: 35FPS 204 FPS
III. Réalisation de l’interface 3D • Architecture C++ • Gestion de la scène • Construction de la scène • Navigation • Interaction • Animation • Affichage au premier plan
III. Réalisation de l’interface 3D • Navigation • Classe inspirée de celle d’OpenSG • Personnalisation des événements • Détection des collisions Lancé de rayon • Réalisme • Déplacement sans saccade • Vue adaptée dans un escalier
III. Réalisation de l’interface 3D Déplacement sans saccade Vue dans un escalier
III. Réalisation de l’interface 3D • Interaction – sélection d’objets • Vannes, interrupteurs, portes • Lancé de rayon • Branche de l’arbre de scène • Animation • Déchets • Vannes, interrupteurs
Signal d’alarme • Cartes de repérage • Informations : Texte 2D • Regroupement dans une classe • intégrée à OpenSG par héritage de la classe osg::Foreground III. Réalisation de l’interface 3D • Éléments en avant-plan • Lignes d’aide à la navigation
IV. Réalité virtuelle • Hémicyclia (Salle de réalité virtuelle) Objectif : portage sous IRIX
IV. Réalité virtuelle • Hémicyclia • Problème : compatibilité des bibliothèques • Compilation sous IRIX • Bibliothèques interface 2D : g++ (GNU C++) • Bibliothèque interface 3D : CC (MIPSPro IRIX) • Bilan : • Seule l’interface 3D est portée • Rapport technique détaillé
IV. Réalité virtuelle • VisionStation
IV. Réalité virtuelle • VisionStation • Projection sphérique • API pour OpenGL • Windows • Linux version beta • Intégration de l’API à un affichage OpenGL • Initialisations (mode d’affichage, …) • Fonctions avant et après la fonction d’affichage • Gestion coordonnées souris • Performances
IV. Réalité virtuelle • VisionStation : Projection Sphérique
Bilan • Bilan technique • Immaturité de OpenSG • Décalage planning • Parties non réalisées • Gestion de projet
Bilan • Bilan pour le LIPSI • Version de la maquette réutilisable • Démonstration Virtual Concept • Bilan personnel • Réalité d’un projet • Compétences OpenSG, VRML • Travail dans la réalité virtuelle