Bonjour à vous.
Voilà mon petit soucis.
Je passe par Bullet pour gérer des collisions simples sur des mesh.
Je ne rencontre pas vraiment de soucis pour mes objets en général, mais mon problème surgit dans les scene, genre bâtiments par exemple.
En fait, dès que je cherche à faire une détection de collisions d'objet (genre cube par exemple)
à l'interrieur d'un batiment, j'ai une réponse systématiquement positive, comme si mon batiments était considéré comme un shape globale.
Quelqu'un pourrait-il m'aiguillmmer sur la méthode à employer pour gérer ce genre de détection de collision ?
Pour mes objets, je passe par ce code, mes batiments étant des TriangleMeshCollisionShape...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 btVoronoiSimplexSolver sGjkSimplexSolver; btGjkEpaPenetrationDepthSolver epaSolver; btPointCollector gjkOutput; { btGjkPairDetector convexConvex((btConvexShape*)shape1, (btConvexShape*)shape2,&sGjkSimplexSolver,&epaSolver); btGjkPairDetector::ClosestPointInput input; input.m_transformA = tr[0]; input.m_transformB = tr[1]; convexConvex.getClosestPoints(input, gjkOutput, 0); } if (gjkOutput.m_hasResult && gjkOutput.m_distance<0) { ContactPoint = gjkOutput.m_pointInWorld; coldistance = gjkOutput.m_distance; NormalPoint = gjkOutput.m_normalOnBInWorld; }
Partager