SIMulateur Aquitain de Procédés d’ Incinération DESS IMM Bordeaux I Laboratoire LIPSI-ESTIA Interface 3D pour SIMAPI SIMulateur Aquitain de Procédés d’ Incinération Stéphane Renaudie Année 2003 Tuteur de stage : Irek Tobor Responsable de stage : Nadine Couture
Introduction Simulateur d’entraînement Le procédé d’incinération Importance de la partie 3D Le procédé d’incinération De la maquette au transfert www.estia.simapi.fr Objectif du stage
Plan Contexte du projet Optimisation des fichiers 3D Réalisation de l’interface 3D Réalité virtuelle Bilan
I. Contexte du projet
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 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 Le Projet SIMAPI Maquette v.0.7 (avant le stage) 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
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
II. Optimisation des fichiers 3D Problème d’utilisation mémoire Cause : Largeur de l’arbre trop grande Exemple sur une « petite » salle : Solution : Regroupement d’objets Mise en œuvre: transformation1 transformation2 Géométrie 1 Géométrie 2 Géométrie 3 Apparence 1 Apparence 2 Groupe 1 Groupe 2 t1 appliquée t1 et t2 appliquées Suppression des transformations Regroupement des objets de même apparence Groupe Géométrie 1 Géométrie 2 Apparence 2 Apparence 1 Géométrie 3
II. Optimisation des fichiers 3D Arbre résultant : racine Objet 1 Apparence 1 Géométrie 1 Objet n Apparence n Géométrie n Gain en performance Exemple « petite » salle Nombre de feuilles : ~300 15 Affichage simple: 35FPS 204 FPS
III. Réalisation de l’interface 3D
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
III. Réalisation de l’interface 3D Éléments en avant-plan Lignes d’aide à la navigation Cartes de repérage Signal d’alarme Informations : Texte 2D Regroupement dans une classe intégrée à OpenSG par héritage de la classe osg::Foreground
IV. Réalité virtuelle
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 Bilan technique Immaturité de OpenSG Décalage planning Parties non réalisées Gestion de projet
Bilan Bilan pour le LIPSI Bilan personnel 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
Démonstration