Message #7066
Sujet: Detecter collision entre deux Mesh.
| Type | Date | Auteur | Contenu |
|---|---|---|---|
| Dernière modification | 07-10-2009 14:42:09 | Hawk |
J'ai pas mal travaillé sur ce problème moi aussi pour mon jeu, et je pense avoir pour toi une piste intéressante.
Dans le ISceneCollisionManager, il existe une fonction qui est L'idée est que tu fais partir un rayon de ton mesh1 (const core::line3d< f32 > &ray), et tu testes si il entre en collision avec le ITriangleSelector de ton mesh 2. Si oui, la fonction renvoie true, ainsi que le point de collision, et le triangle d'intersection (les deux derniers arguments). Après, la version 1.6 d'irrlicht a fait des progrès dans ce domaine, en particulier, cette fonction renvoie désormais un pointeur vers le mesh qui est touché par le ray. Dans ce cas, tu peux regrouper tous tes mesh dans un seul gros TriangleSelector, et utiliser la fonction pour savoir avec quel mesh tu collisionne. Du coup, tu pourrais faire un truc du genre. mesh2 = mesh1->getCollision() Je te conseille d'attendre encore un petit peu, je pense que la doc (et surtout l'API) de la 1.6 va bientôt remplacer celle de la 1.5.1 sur le site officiel pour avoir plus d'aide sur ce sujet. PS : Quand je dis mesh, je veux bien sûr parler de MeshSceneNode... |
| Création du message | 07-10-2009 14:41:15 | Hawk |
J'ai pas mal travaillé sur ce problème moi aussi pour mon jeu, et je pense avoir pour toi une piste intéressante.
Dans le ISceneCollisionManager, il existe une fonction qui est L'idée est que tu fais partir un rayon de ton mesh1 (const core::line3d< f32 > &ray), et tu testes si il entre en collision avec le ITriangleSelector de ton mesh 2. Si oui, la fonction renvoie true, ainsi que le point de collision, et le triangle d'intersection (les deux derniers arguments). Après, la version 1.6 d'irrlicht a fait des progrès dans ce domaine, en particulier, cette fonction renvoie désormais un pointeur vers le mesh qui est touché par le ray. Dans ce cas, tu peux regrouper tous tes mesh dans un seul gros TriangleSelector, et utiliser la fonction pour savoir avec quel mesh tu collisionne. Du coup, tu pourrais faire un truc du genre. mesh2 = mesh1->getCollision() Je te conseille d'attendre encore un petit peu, je pense que la doc (et surtout l'API) de la 1.6 va bientôt remplacer celle de la 1.5.1 sur le site officiel pour avoir plus d'aide sur ce sujet. PS : Quand je dis mesh, je veux bien sûr parler de MeshSceneNode... |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
Propulsé par Django xhtml 1.0 css 2.1 |
884 membres 1440 sujets 11337 messages |
Dernier membre inscrit: Saidov17 157 invités en ligne membre en ligne: - RSS Feed |