150 likes | 259 Views
Détection des collisions dans un moteur 3D temps réel. Etudiant : Encadreurs (4X Technologies) : Encadreur (ESSI) :. Guillaume Gourdin M. Liberman M. Delattre M. Lafon. Fourmis. RushDown. Présentation du projet (1/2). 4X Technologies :
E N D
Détection des collisions dans un moteur 3D temps réel Etudiant : Encadreurs (4X Technologies) : Encadreur (ESSI) : Guillaume Gourdin M. Liberman M. Delattre M. Lafon
Fourmis RushDown Présentation du projet (1/2) • 4X Technologies : • Société parisienne spécialisée dans des techniquesorientées vers le jeu vidéo • Concepteur du moteur 3D multi plate-forme X3Dutilisé dans Fourmis & RushDown
Présentation du projet (2/2) • Détection des collisions : • Pour éviter l’interpénétration des objets. • Impossible de tester les collisions directement sur les objets en temps réel, il faut des algorithmes performants. • X3D possède déjà une détection de collisions,mais elle est quadratique (donc trop coûteuse).
Evaluation de l ’état de l ’art • Travail de recherches de l ’existant • On effectue les tests sur des approximations des objets originaux : • boites englobantes statiques alignées avec les axes • boites englobantes dynamiques alignées avec les axes • boites englobantes non alignées avec les axes • décimation • Egalement : • structure d ’arbre • arbres BSP
Boites englobantes statiques Description : Boite englobante de la sphère englobante • Avantages : • rapide • la boite reste inchangée en cas de rotation de l ’objet • Inconvénients : • approximation grossière • calcul de la sphère englobante non trivial
Boites englobantes dynamiques Description : Plus petite boite englobante parallèle aux axes. • Inconvénients : • approximation grossière • recalcul de la boitesi l ’objet tourne • Avantages : • rapide
Boites englobantes non alignées avec les axes Description : Plus petite boite englobante. • Avantages : • meilleure approximation • la boite reste fixe même si l ’objet tourne • Inconvénients : • approximation toujours grossière
Décimation Description : On enlève les points les moins significatifs Les tests de collisions s ’effectuent sur les faces de l ’objet décimé • Avantages : • bonne approximation de l ’objet d ’origine • Inconvénients : • calculs des collisions non trivial
Structure d ’arbre Description : On découpe l ’objet récursivement • Avantages : • réduit le nombre de tests • Inconvénients : • structure de données supplémentaire
Arbre BSP Description : Découper l ’espace intelligemment pour ne tester que les objets proches • Inconvénients : • peu adapté aux environnement dynamiques • Avantages : • réduit le nombre de tests
Implémentation • Il a été décidé d’utiliser la structure d’arbre de boites englobantes alignées avec les axes. • On descend jusqu’au niveau de la face pour avoir le maximum de précision possible. • Travail sous Visual C++ (utilisation de classes).
Présentation de X3D • Moteur générique multi plate-forme • En langage C : possède un certain nombre de fonctions et de structures (scène, objets, lumières, etc.)
Résultats • Ont été implémenté la détection sans la structure d’arbre et avec la structure d ’arbre. • La structure d ’arbre est beaucoup plus performante (presque 100 fois plus!).
Conclusion • La détection de collisions est un thème de recherche important et encore ouvert. • Travail de programmation concret nécessitant la maîtrise des outils d’aujourd’hui.