M2 IFPRU 2009 / 2010
TER Simulation Spatiale
Auteurs : Sandrine BUENDIA Svetlana KOVALEVA Romain ALMES Paul LY Guillaume RYSER
Tuteurs : Jacques FERBERFrédéric KORICHE
IntroductionPourquoi 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.
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Moteur physique
1ère partie
Physique de Newton :
- Principe d’inertie
- Dynamique de translation :
- Actions réciproques :
- Loi universelle de gravitation
Moteur Physique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Implémentation :
Moteur Physique
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}
Objets visibles
Masse
Soumis aux interactions
gravitationnelles
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Les astéroïdes:
- Objet ne subissant que des forces gravitationnelles.
- Prouvent que le modèle gravitationnel fonctionne.
Moteur Physique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
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.
Moteur Physique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Les collisions :
- Plusieurs types de collisions différentes.- Appliquées sur les objets en mouvement.- Basées sur l’intersection Sphere/Sphere.
Moteur Physique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
4 type de collisions :
Moteur Physique
Objet 1 Objet 2 RésultatAsteroids Asteroids - Simulation de choc élastique
- Perte de masse en fonction du rapport des masses
Asteroids BattleShip - Explosion du BattleShip
- Mise à jour des Behaviours si besoin
BattleShip Asteroids - Explosion du BattleShip
- Mise à jour des Behaviours si besoin
BattleShip BattleShip - Si les masses sont de même ordre de grandeur, explosion des deux BattleShip, sinon explosion du plus léger
- Mise à jour des Behaviours si besoinCahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Prévisions de collisions :
- Anticiper un choc.
- Trouver une nouvelle trajectoire.
Moteur Physique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Moteur Physique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Moteur graphique
2ème partie
Principe:
Elément clé d’un projet, permet d’obtenir un rendu graphique.
Quels outils ?
- Librairie OpenGL- freeglut
Moteur graphique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA Démonstration Conclusion
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.
Moteur graphique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA Démonstration Conclusion
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.
Moteur graphique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA Démonstration Conclusion
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
Moteur graphique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA Démonstration Conclusion
Moteur graphiqueExemple 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 chargesMoteur physiqueMoteur graphiqueMoteur de son IA Démonstration Conclusion
Ce que nous avons fais : les lumières.
- Permet de profiter des textures et matériaux des objets.
- Nombre de lumières limitées.
Moteur graphique
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA Démonstration Conclusion
Moteur e son
3ème partie
Pourquoi ce module?
- Sources multiples.
- Atténuation du son.
Moteur de son
Ajouter du son
aux objets
Donner l’impression d’un monde
« vivant »
Impliquer le joueur
dans l’environnement
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Niveau technique :
- Utilisation de OpenAL, bibliothèque multiplateforme. - Rajout de la librairie ALUT pour charger des sons.
Moteur de son
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
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.
Moteur de son
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Intelligenceartificielle
4ème partie
Intelligence artificiellePrincipe :
- 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 chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Intelligence artificielleQuelques exemples du comportement individuel :
• Mouvement aléatoire en évitant les autres objetsWander
• L’objet avance à l’aveuglette, mais sans tests de collisionBlind
• L’objet est soumis uniquement aux forces de gravitationAsteroidCahier des charges
Moteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Intelligence artificielleAvantages:
- Ne pas laisser d’objets « à l’abandon » une fois isolé.
- Simplicité pour ajouter de nouveaux comportements.
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Intelligence artificielleComportement collectif : les combats.
- Implémentation d’une patrouille.
- Mise en place d’une des stratégies implémentées.
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Intelligence artificielleComportement 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 chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Démonstration
Conclusion
ConclusionProblè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 chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion
Conclusion
Perspectives :
- Améliorer la partie graphique du projet.
- Implémenter plus de comportements.
- Introduire plusieurs tailles de vaisseaux.
Cahier des chargesMoteur physiqueMoteur graphiqueMoteur de son IA DémonstrationConclusion