Je tente de créer un btBvhTriangleMeshShape à partir d'un grand maillage dans mon application et de l'utiliser comme un corps rigide. Ce corps rigide constituera le «plan de masse» qui est statique et ne bouge jamais. Le problème est que tout se passe comme si tout n'était pas là. Voici la source de courant:Bullet btBvhTriangleMeshShape pas de collision
btTriangleMesh* tMesh = new btTriangleMesh();
irr::scene::IMeshBuffer* MB = WorldNode1->getMesh()->getMeshBuffer(1);
irr::video::S3DVertex* Vertices = (irr::video::S3DVertex*)MB->getVertices();
irr::u16* Indices = MB->getIndices();
for (irr::u32 i = 0; i < MB->getIndexCount(); i+=3)
{
irr::core::vector3df Tri1Pos = Vertices[Indices[i]].Pos;
irr::core::vector3df Tri2Pos = Vertices[Indices[i+1]].Pos;
irr::core::vector3df Tri3Pos = Vertices[Indices[i+2]].Pos;
tMesh->addTriangle(btVector3(Tri1Pos.X, Tri1Pos.Y, Tri1Pos.Z), btVector3(Tri2Pos.X, Tri2Pos.Y, Tri2Pos.Z), btVector3(Tri3Pos.X, Tri3Pos.Y, Tri3Pos.Z));
}
btCollisionShape* groundShape = new btBvhTriangleMeshShape(tMesh, false);
btDefaultMotionState* groundMotionState = new btDefaultMotionState(btTransform(btQuaternion(0, 0, 0, 1), btVector3(0, -1, 0)));
PH->CreateRigidBody(0, groundMotionState, groundShape);
PH-> CreateRigidBody() est juste une fonction d'assistance pour créer rapidement des corps rigides, je sais que cette fonction fonctionne correctement car d'autres objets utilisent et entrent en collision très bien.
Tout aperçu de la question ici serait grandement apprécié. Merci beaucoup à tous pour votre temps.
EDIT: Après avoir raccordé le tiroir de débogage, voici ce qu'il affiche (ce qui est un tir sous la maille): Et pour la clarification est un coup de feu au-dessus ici:
Je ne Je sais si c'est un problème avec le maillage lui-même ou avec le code qui traverse les sommets pour créer le maillage physique
Qu'est-ce qui empêche le sol de tomber? Avez-vous activé une vue de débogage pour vérifier que cela ne se produit pas? – weston
Ouais, je suis allé de l'avant et accroché la vue de débogage et le sol est là où il devrait être. – KKlouzal
Je suppose que le vert sont les triangles et le rouge est le volume de liaison. Alors pouvez-vous expliquer à quoi devrait ressembler le plancher, car il semble qu'il y ait beaucoup de lacunes, en fait, ce sont surtout des lacunes. Donc, je ne serais pas surpris que beaucoup tombe à travers. – weston