[ODE] enhanced ODE collision API
Russ Smith
russ at q12.org
Fri Oct 25 10:36:01 2002
> why doesn't ODE like close contacts?
ODE needs to find a unique solution for all constraints in the system. if
there are two (or more) constraint dimensions that do not have a unique
solution, numerical errors will result. now, imagine two contacts in
exactly the same position. if we look at the solution for this system and
subtract some of the force from contact 1 and add the same amount to
contact 2, the resulting motion of the system will be the same (because
the contacts are adding at the same point). thus the solution is not
unique.
moral: the closer that contacts come to having the same effect on the
system, the more solution error there will be. note that the global CFM
parameter can be increased to reduce the amount of numerical error in the
system, even when you have coincident contacts.
russ.
--
Russ Smith
http://www.q12.org/
On Fri, 25 Oct 2002, David McClurg wrote:
> >> A 'dTriMeshClass' geom is really an aggregate type so I need to know the index of the triangle to lookup material properties. The material properties tell me how to create the contact, light the player, etc.
> > You need the index of the triangle in the near callback when creating the joint? Hm.. Do you have a suggestion?
>
> if there is a callback for each contact generated, the callback could query the index. otherwise, you could put it into the dContactGeom struct, but since they could both be a mesh, you would need two-- i1,i2.
>
> maybe this is a good time to bring up the idea of a generalized event handler instead of callbacks. you get an event when the contact is generated instead of passing an array. you store it off then and query the index if needed.
>
> >> Also, it would be handy to expose erwin's combine contacts functionality. It seems to be essential even between meshes/planes in my game (i'll post some test programs soon to show this).
> > You're actually using the mesh-plane intersection?? Daring.
>
> no, i'm sorry. i meant my player collides with many static meshes and planes in the world. i combine the contacts between the player sphere and all the triangle & plane contacts to get smooth physics.
>
> > My contact-combine code only works for spheres-triangle contacts. Its actually there because ODE doesnt like many close contacts.
>
> _______________________________________________
> ODE mailing list
> ODE@q12.org
> http://q12.org/mailman/listinfo/ode
>