09-11-2009 17:13:43
- capry
- Membres

- Date d'inscription:
- Messages: 83
- IP: 82.255.13.246
- Courriel
Bonjour,
J'ai posté sur l'ancien forum, mais je crois que depuis mon message à été supprimé. Alors je reposte mon problème ici. Je développe en c++ depuis presque un an et j'ai découvert Irrlicht presque en même temps. Bref, pour cette fois-ci j'aurais beosin de savoir s'il y à une méthode fiable pour détecter la collision entre deux mesh ? Sinon un équivalent (avec les BoundingBox par exemple). J'ai déjà testé plusieurs solution, celle qui paraissais la meilleure étant la méthode du "getCollisionNode()" de la classe ISceneNodeAnimatorCollisionResponse , mais aucune des ces solutions ne marchent. Sois elles indiquent que le node est TOUJOURS en collision, soit qu'il ne l'est JAMAIS. Ce qui est bien sûr faux dans les deux cas. Si quelqu'un à déjà réussi à utilisé la méthode du "getCollisionNode()", peut-il me dire comment il à fais et quelle serais mon erreur ?
Merci d'avance
Capry
Hors ligne
09-11-2009 17:47:52
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 86.218.178.147
- Courriel
Cherches-tu à employer absolument les fonctions Irrlicht, ou serais-tu prêt à faire appel à une lib externe ?
Force et sagesse...
Hors ligne
09-11-2009 18:11:38
- TUpac
- Membres

- Date d'inscription:
- Messages: 387
- IP: 88.168.3.38
- Courriel
Hey ! je me rappel de ton post que je n'ai plus vu depuis la refonte du site. Si ma mémoire est bonne tu en était au point ou tes nodes ne se touchaient plus (alors qu'au début ils se touchaient tout le temps). En tout cas, Tmyke l'a sous-entendu : les collisions Irrlicht sont un poil pourraves. Le plus simple est d'ajouter un animator crée par smgr->createCollisionResponseAnimator() à chaque node et de faire les tests comme tu connais déjà (sinon : cf tuto07). A noter alors que la collision se fait uniquement avec le node dont le triangleselector est tiré ( smgr->createTriangleSelector(mesh,node) ). Ce qui signifie que si tu veux des collisions multiples, tu dois tester chaque node un a un chaque trame. C'est donc pas bête de passer sur une lib externe pour avoir de meilleurs résultats. Ceci dit je peux me tromper n'hésitez pas à me reprendre si j'avance des conneries. En tout cas avec un bout de code, une erreur est plus facile à déceler
donc si tu peux isoler le soucis et nous le poster ...
a+
"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."
Hors ligne
09-11-2009 18:54:26
- capry
- Membres

- Date d'inscription:
- Messages: 83
- IP: 82.255.13.246
- Courriel
Merci d'avoir répondu si rapidemment.
Le soucis étais juste la condition je pense, je ne crois pas que mes paramètres étaient mauvais. Mais bon ça ne me dérange pas d'inclure une nouvelle librairie. Vous pensez à laquelle ? Physx, ODE, Newton ? De préférence la plus légère si plusieurs choix sont possibles.
Hors ligne
09-11-2009 19:30:04
- TUpac
- Membres

- Date d'inscription:
- Messages: 387
- IP: 88.168.3.38
- Courriel
Newton est très apprécié et un tuto est dispo sur le site irrlicht sourceforge mais je ne pourrais pas t'aider beaucoup car mon experience de Newton date de la release 1.4 d'irrlicht. Enfin je tenterai de faire de mon mieux ![]()
ps : PhysX = non-libre : caca !!
"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."
Hors ligne
09-11-2009 20:13:23
- capry
- Membres

- Date d'inscription:
- Messages: 83
- IP: 82.255.13.246
- Courriel
D'accord merci, je vais donc voir ce que je peux faire avec Newton ^^
Hors ligne
09-11-2009 21:20:48
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 86.218.178.147
- Courriel
Je connais bien Newton, la sous couche est très bien adaptée au tests de collision, et c'est une lib multiplateforme qui s'intègre très bien dans une application, y compris par sa version lib statique, ce qui est bien sympa ![]()
Force et sagesse...
Hors ligne
09-11-2009 21:49:23
- capry
- Membres

- Date d'inscription:
- Messages: 83
- IP: 82.255.13.246
- Courriel
Super ^^. Je l'ai ajouter à mon programme ça y est. Auriez-vous un tuto qui m'expliquerais en gros le fonctionnement de Newton ?
Hors ligne
09-11-2009 22:29:58
- TUpac
- Membres

- Date d'inscription:
- Messages: 387
- IP: 88.168.3.38
- Courriel
Et alors on boude google?
http://irrlicht.sourceforge.net/tut_newton.html
tmyke Ecris:
Je connais bien Newton
Voilà qui est rassurant !
tmyke Ecris:
y compris par sa version lib statique
encore plus
"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."
Hors ligne
10-11-2009 05:54:14
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.56.68.71
- Courriel
capry Ecris:
Super ^^. Je l'ai ajouter à mon programme ça y est. Auriez-vous un tuto qui m'expliquerais en gros le fonctionnement de Newton ?
tu as le wiki officiel ou il y a quelques tuto simple qui permettent de démarrer en douceur
Force et sagesse...
Hors ligne
06-12-2009 11:06:41
- capry
- Membres

- Date d'inscription:
- Messages: 83
- IP: 82.253.228.209
- Courriel
Merci pour tout, j'ai mis un certain temps, mais j'ai appris à utiliser un peu Newton, pour les fonctions de base en tout cas. Donc bah pour les collisions entre deux mesh ça marche, mais je n'ai toujours pas trouvé de tuto ou de fonction qui expliquais comment savoir si deux mesh étaient en collision. Quelqu'un aurais un lien svp ? Merci d'avance
.
Hors ligne
06-12-2009 12:35:09
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 86.218.177.3
- Courriel
Je n'ai pas de tuto sous la main, mais en regardant la doc on comprend assez intuitivement le rôle de fonction dédiées aux
gestion de collision.
Pour tester par exemple une collision potentielle entre deux mesh, on passe par la fonction NewtonCollisionCollide.
Force et sagesse...
Hors ligne
08-12-2009 17:59:12
- capry
- Membres

- Date d'inscription:
- Messages: 83
- IP: 82.255.26.60
- Courriel
Ah Oui merci ça y est ^^. C'es impécable là. J'ai juste un dernier problème de collision encore, mais je devrais être en mesure de le résoudre cette fois. Merci beaucoup ![]()
Hors ligne



