[ODE] New ODE Collision detection

Erwin de Vries erwin at vo.com
Fri Aug 30 02:04: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.

It shouldnt see *only* non groups, but i've planned to change this indeed.
You need to be able to cull them one by one. I'm not sure yet how i'll
implement this.

> >> * 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.

So its the same as the above.

> >> * 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!

It would be nice indeed to have such a feature. For particle physics for
example. But i would implement it on top of ODE if i were you.

> >> 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!?

Yes the CVS code is very old. Its basically over a year old now. Thats why
i've created a new one. ;-)

Erwin