Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Static+concave and other mesh types in Bullet collision detector #762

Closed
morphiccrab opened this issue Aug 26, 2016 · 3 comments
Closed
Milestone

Comments

@morphiccrab
Copy link

This addresses release-5.1 and 6.1. Tested on 5.1. In 6.1 there is an unrelated bug in the Bullet collision detector in the current HEAD so I didn't test it there, but looking at the sourcecode the issue is similar.

When using the Bullet collision detector, the default Bullet mesh type is a btConvexTriangleMeshShape. This obviously only supports convex meshes. For concave meshes that are additionally static, this type should be changed to btBvhTriangleMeshShape (in dart/collision/bullet/BulletCollisionNode.cpp and dart/collision/bullet/BulletCollisionNode.h. The constructor takes two extra booleans: new btBvhTriangleMeshShape(btMesh, true, true)). The collision detection then works correctly for meshes that have a weld constraint to the world. Bullet also supports other types of meshes (like GImpactShape) which should be supported.

How should this issue be handled? Should there be an extra XML tag defined in the SKEL specifiction that sets the collision handler for a given (mesh) skeleton?

@jslee02
Copy link
Member

jslee02 commented Aug 26, 2016

Thanks for the reporting. I would prefer switching btConvexTriangleMeshShape to btBvhTriangleMeshShape rather than introducing an extra XML tag for convex shape. We could then add it when we actually have a shape type for convex meshes.

Edit: For clarification, DART 6.1 already uses btGImpactMeshShape rather than btConvexTriangleMeshShape.

@jslee02
Copy link
Member

jslee02 commented Aug 26, 2016

I think the simplest solution would be switching btConvexTriangleMeshShape of DART 5.1 to btGImpactMeshShape (not btConvexTriangleMeshShape) because btGImpactMeshShape is only used for fixed object.

Could you post what was the unrelated issue of Bullet collision detector in DART 6.1?

@jslee02
Copy link
Member

jslee02 commented Oct 15, 2016

I believe this is resolved by #764. Reopen if it still doesn't work for you.

@jslee02 jslee02 closed this as completed Oct 15, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants