TER Simulation Spatiale Auteurs : Sandrine BUENDIA Svetlana KOVALEVA Romain ALMES Paul LY Guillaume RYSER M2 IFPRU 2009 / 2010 Tuteurs : Jacques FERBER Frédéric KORICHE
Introduction Pourquoi ce projet ? Ce TER est la suite direct des modules de moteur de jeu et de cognition. Nous souhaitions donc continuer le projet que nous avions commencé dans ces deux modules.
Introduction Plan : Cahier des charges Moteur physique Moteur graphique Moteur de son Intelligence artificielle Conclusion
Cahier des charges Application sous forme d’un simulateur. But : réaliser un simulateur spatial. Les fonctionnalités a développer : - Un moteur physique. - Un moteur graphique. - Un module de son. - Une intelligence artificielle. Obstacle cognitif et moral!!! Diapo a modifier. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
1ère partie Moteur physique
Moteur Physique Physique de Newton : Principe d’inertie Dynamique de translation : Actions réciproques : Loi universelle de gravitation Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Soumis aux interactions gravitationnelles Moteur Physique Implémentation : Objets visibles Masse Soumis aux interactions gravitationnelles class Physics { - liste de pointeurs vers chacun des objets - méthode pour calculer la somme des forces appliquées sur un objet - accesseurs pour l’accélération, la vitesse et la position des objets } Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur Physique Les astéroïdes: - Objet ne subissant que des forces gravitationnelles. - Prouvent que le modèle gravitationnel fonctionne. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur Physique Les torques : - Utilisation de propulseurs pour le mouvement des vaisseaux. Calcul de forces torques : accélération angulaire, vitesse angulaire, position angulaire. - Influence sur la vitesse de l’objet. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur Physique Les collisions : Plusieurs types de collisions différentes. Appliquées sur les objets en mouvement. Basées sur l’intersection Sphere/Sphere. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur Physique 4 type de collisions : Objet 1 Objet 2 Résultat Asteroids - Simulation de choc élastique - Perte de masse en fonction du rapport des masses BattleShip - Explosion du BattleShip - Mise à jour des Behaviours si besoin - Si les masses sont de même ordre de grandeur, explosion des deux BattleShip, sinon explosion du plus léger Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur Physique Prévisions de collisions : Anticiper un choc. Trouver une nouvelle trajectoire. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur Physique Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
2ème partie Moteur graphique
Moteur graphique Principe: Elément clé d’un projet, permet d’obtenir un rendu graphique. Quels outils ? - Librairie OpenGL - freeglut Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur graphique Ce que nous avons fais : la caméra. - Permet de se déplacer dans la scène. - En relation avec le moteur de son. - Facile à intégrer. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur graphique Ce que nous avons fais : les modèles 3D. - Union de formes primaires, de matériaux et de textures. - Stockés dans un fichier COLLADA. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur graphique Importateur de modèles : - Modèles 3D créés avec 3DS Max - Exportés au format Collada : - syntaxe XML - enregistre les matériaux du modèle - enregistre les textures du modèle Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur graphique Exemple de fichier Collada : <?xml version="1.0" encoding="utf-8"?> <COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.0"> <asset> <contributor> <author></author> <authoring_tool>FBX COLLADA exporter</authoring_tool> <comments></comments> </contributor> <created>2010-03-11T20:00:48Z</created> <modified>2010-03-11T20:00:48Z</modified> <revision></revision> <title></title> <subject></subject> <keywords></keywords> <unit meter="0,025400"/> <up_axis>Z_UP</up_axis> </asset> … Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur graphique Ce que nous avons fais : les lumières. - Permet de profiter des textures et matériaux des objets. - Nombre de lumières limitées. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
3ème partie Moteur e son
Moteur de son Pourquoi ce module? Sources multiples. Ajouter du son aux objets Donner l’impression d’un monde « vivant » Impliquer le joueur dans l’environnement Pourquoi ce module? Sources multiples. Atténuation du son. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur de son Niveau technique : - Utilisation de OpenAL, bibliothèque multiplateforme. - Rajout de la librairie ALUT pour charger des sons. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Moteur de son Fonctionnement: OpenAL définit 3 types d’objets essentiels: - les tampons (stockent les informations sur les sons), - les sources (émettent les sons), l’auditeur (écoute les sons). Exemple : Chargement du son des réacteurs d’un vaisseau dans le tampon. On fait jouer ce son par tous les vaisseaux. L’auditeur écoute ce son dès qu’il est proche d’un vaisseau. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Intelligence artificielle 4ème partie Intelligence artificielle
Intelligence artificielle Principe : - Représenter les comportements individuels et collectifs des objets en mouvement. Comment ? Définition d’un comportement individuel. Définition d’un comportement collectif. Les 36 stratagèmes. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Intelligence artificielle Quelques exemples du comportement individuel : Wander Mouvement aléatoire en évitant les autres objets Blind L’objet avance à l’aveuglette, mais sans tests de collision Asteroid L’objet est soumis uniquement aux forces de gravitation Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Intelligence artificielle Avantages: Ne pas laisser d’objets « à l’abandon » une fois isolé. Simplicité pour ajouter de nouveaux comportements. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Intelligence artificielle Comportement collectif : les combats. Implémentation d’une patrouille. Mise en place d’une des stratégies implémentées. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Intelligence artificielle Comportement collectif : les 36 stratagèmes. Représenté par un ensemble de formations. Le leader identifie l’ennemi et choisi la stratégie à appliquer. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Démonstration
Conclusion
Conclusion Problèmes rencontrés : Fusion de deux groupes, donc de deux projets difficiles. Contraintes de temps pour intégrer toutes les fonctionnalités. Apports : Projet abordant de nombreux thèmes. Mise en pratique de nombreux algorithmes vu en cours. Travail en équipe. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion
Conclusion Perspectives : Améliorer la partie graphique du projet. Implémenter plus de comportements. Introduire plusieurs tailles de vaisseaux. Cahier des charges Moteur physique Moteur graphique Moteur de son IA Démonstration Conclusion