Hi. IMHO you should put your all your bets on btGeneric6DofConstraint . Why?? It's more stable. I've test them alot and also I've tested Twist-Cone alternatively. And I've found some little artifacts and jerky movements with btConeTwistConstraint, noticeable when you're taking a closer look for the ...
Try using btGImpactBvh or btGImpactCompoundShape or btGImpactMeshShape. They are quantized BVH trees, suitable for rigid meshes (moveables) and compounds.
ODE was the first open source physics engine, and that's why it is very popular between the game development community. But obviously Bullet exceeds ODE capablities with a more powerful and robust collision system, which can represent a more wider range of shapes and also supports continuous collisi...
Hi.
How is btDbvt class used for rendering and filtering non-visible objects ?
Specially in the culling and occlusion queries?
Is there any clue on the collideOCL() method? how it sorts the primitives front-to-back?
Yes. Using the limit motors is the best way for do that. You must configure the Rotational Limit motor configuration for each axis, and you can access to them with the getRotationalLimitMotor(axis) function. Then set the necessary parameters for approaching what do you want about this constraint, fo...
is btGimpactBvh's tree dynamic? I don't really see what is the difference between btGimpactBvh and btOptimizedBvh. btGimpactBvh allows moveable trimeshes and btOptimizedBvh doesn't. btGimpactBvh could be dynamic (for deformables) by calling the refit function, but I haven't tested this feature yet.
May you should take a more deep revision to the btGeneric6DofConstraint header file. 6DOF constraints have one Rotational Motor configuration per axis, represented by the btRotationalLimitMotor structure. You can access to each Rotational motor with the getRotationalLimitMotor(int index) function. T...
What I believe is that none of the existing physics engines support determinism. Even Havok. I think that because they depend on floating point calculations whose could give different approximations between different machines on a network simulation. So you need to transmit all body states from a se...
At first you need to fill a vertex array and a triface index array from a *.obj file.
Then you must provide a btTriangleIndexVertexArray from your array data for creating a trimesh collision object. The trimesh collision object could be a btGImpactMeshShape.
A disadvantage seems to be that compound objects are more likely to get "jammed" inside each other, as things can get stuck between the components of the compound object. Obviously this can be avoided, but it's another thing to worry about. Is the situation better with gimpact? Also, spee...