[ODE] New ODE Collision detection

David McClurg dmcclurg at pandemicstudios.com.au
Thu Aug 29 16:34:02 2002


>> A few more design thoughts...
>>
>> * sub-spaces or putting objects in multiple spaces
<snip>
> Hmm. What about this? Place the occlusion walls in a seperate group, and collide the rays against that group. Also place your group in your regular space, so your normal collision detection also collides with them.

The problem is that the near callback gets passed the group instead of the geoms in the group.  This makes it hard to decide if you really want to compute the collision.  I think it would be better if the near callback only saw non-groups.

>> * layers (hierarchical spaces) -- If a geom group doesn't support a nested hash space, how about a new thing called a 'layer' which allows hierarchical AABB testing.
> Could you explain this a bit more detailed?

I think I'm just mixing up terms.  Never mind 'layer' or nested 'hash space'.  For me, to make groups useful, I need the aabb testing for the things in the group to be done before passing geoms to the near callback.  If the near callback gets a group, it doesn't have enough information to decide to proceed with the collision.

>> * lightweight bodies-- for simulating large numbers of objects with simple physics such as hail, lottery balls, bullets, etc.  i really miss not having that for the 100 or so items in my world that i can pick up.
> A lightweight body is a body that doesnt support joints, right? I think it is in Russ' todo list to optimize jointless bodies someday.

yes-- no joints.  also, here's a datum about dWorldStep() efficiency-- to compute shadows we recently created a space with only a single static tri-list mesh and a single ray that got updated every frame.  We did this thousands of iterations.  By removing dWorldStep() from the loop and only calling dSpaceCollide() the converter ran twice as fast.  That surprised me because dWorldStep() didn't have any bodies to deal with!

>> A few bugs (or perhaps user errors on my part)...
>Are you using the new tricollider i posted to this list last week or so?

No. And it looks like the "New stuff" you posted on "18 August 2002" might fix these problems.  So are you computing the sphere radius and the contact point and using it for the epsilon plane test so spheres don't fall through small holes, seems, and junctures?  Also-- the code in ODE CVS is fairly old now!?