[ODE] A fix for the bendy wheels (with code)
Gary R. Van Sickle
g.r.vansickle at worldnet.att.net
Thu May 8 18:19:02 2003
> 2. The wheels position gets pushed away and toward the cars body, along the
> wheels axle. This effect is clear when you implement the below function.
> I've experimented with a bunch of code to correct this problem, but had poor
> results. The problem is ODE doesn't store the original location of bodies,
> so its hard to calculate the NON-pushed wheel position away from the car's
> body.
It seems to me that a number of problems with ODE could be made easier to solve
if the bodies' states from the previous frame were available. I think I brought
this up before and people balked at the extra memory that would be required,
but:
a) We're currently limited by stack size, not heap size, so until StepFast
becomes canon this is a nonissue.
b) It wouldn't have to be every body. Perhaps one could:
- derive a "dBodyWithPreviousFrameState" class from dBody.
- add some sort of registration functionality so that you register which
bodies you want to keep prev-frame info on.
then the user could choose which bodies would benefit from this and which
wouldn't.
I immediately see a few applications:
- The bendy wheels issue mentioned by Michael.
- Collision tunnelling could be eliminated.
- "Temporal bisection" collision resolution schemes could be investigated.
- ...well, that's all I can think of right now.
An avenue to explore, or just a crazy idea?
--
Gary R. Van Sickle
Brewer. Patriot.