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
Présentation du projet (1/2) 4X Technologies : Société parisienne spécialisée dans des techniques orientées vers le jeu vidéo Concepteur du moteur 3D multi plate-forme X3D utilisé dans Fourmis & RushDown 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. Avantages : rapide Inconvénients : approximation grossière recalcul de la boite si l ’objet tourne
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.