favreau / bullet

Automatically exported from code.google.com/p/bullet
0 stars 0 forks source link

SpuGatheringCollisionDispatcher accepts compounds with unsupported child types #560

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
When there are child shape types in a compound which are not supported by SPU 
dispatch, the compound is still accepted for SPU dispatch.

This eventually leads to an assert in getShapeTypeSize() and possibly 
subsequent problems as SPU collision detection is attempted with an unsupported 
type.

A possible fix is to change SpuGatheringCollisionDispatcher::processOverlap() 
to recursively check the children of compounds if SPU dispatch is supported.

Original issue reported on code.google.com by ja...@orcon.net.nz on 23 Oct 2011 at 5:13

GoogleCodeExporter commented 9 years ago

You can set a collision flag to force processing of collision shapes on the 
CPU/PPU using btCollisionObject::CF_DISABLE_SPU_COLLISION_PROCESSING

We could add some asserts there and possibly add some automatic method to 
assign such flag.

Thanks,
Erwin

Original comment by erwin.coumans on 24 Oct 2011 at 5:54

GoogleCodeExporter commented 9 years ago
For now it is best to add such check in your own code (I rather not add 
additional run-time checks) 
and set the btCollisionObject::CF_DISABLE_SPU_COLLISION_PROCESSING collision 
flag

Let's close the issue.

Original comment by erwin.coumans on 27 Oct 2011 at 8:29