[ODE] Angular-velocity autodisabling considered broken

Alen Ladavac alenl-ml at croteam.com
Thu Sep 16 08:49:07 MST 2004


>You said you put the object back to sleep "immediately".

Perhaps the sentence was not clear enough:
>>An object that is determined to be
>> ready to sleep is put to sleep and its velocities are reset immediatelly.

So, when it is ready to sleep (has under-threshold velocity for a few
steps), it is put to sleep, and its velocities are then immediately reset.

Common mistake is to put an object to sleep, but not clear its last step
velocity (which is under the threshold, but still not zero). When in the
next step the object is awaken by some other object in the island, it
returns that energy back into the system.


>In fact, suppose object A rests on object B, and you remove
>object B in a single step (say, by deleting it) -- in a system
>that uses immediate velocities OR that uses an integration over
>time, it's likely that A will never wake up in this case.

You just add a system that wakes up immediate vicinity of object B when
deleting it. Simple as that. But I don't see why is that relevant to this?

>In my experience (say, the block pile in the car demo I posted),
>object will go to sleep briefly, but if some other block is awake,
>the object will quickly wake up again. It's more like a continual
>barrage of "awakening shockwaves" than a single "sleeping shockwave".

As you will... But in your car demo, once you even touch the wall a bit, it
can hardly go back to sleeping at all. Even though, visually, blocks are
completely still. I am suggesting that it is _not_ the way it should be.

Cheers,
Alen




More information about the ODE mailing list