[ODE] Re: ODE on multiplayer games

Alen Ladavac alenl-ml at croteam.com
Sat Mar 26 07:05:11 MST 2005


> If the contact forces are clamped such that correction
> velocities can't exceed 1m/s, wouldn't pool ball B eat most of the
> velocity up without any result at all?

Actually, no. Collision speed response is dependent on incoming speeds and
directions, not on penetration depth. Contact joint converts penetration
into correctional velocity, and puts it in the right side of the constraint
equation. That correctional velocity effectively just _adds_ to bouncing and
other effects, so you don't clamp the complete resulting velocity.

Alen

----- Original Message -----
From: "Megan Fox" <shalinor at gmail.com>
To: "Alen Ladavac" <alenl-ml at croteam.com>
Cc: "Jon Watte" <hplus-ode at mindcontrol.org>; "Henrik Grimm"
<hengr at hotpop.com>; <ode at q12.org>
Sent: Friday, March 25, 2005 6:48 PM
Subject: Re: [ODE] Re: ODE on multiplayer games


> Trouble is, then how do you detect the case of two pool balls?
>
> ... that is, pool ball A is rolling (extremely quickly) towards pool
> ball B.  Pool ball B, when struck, should fly off at similarly high
> speeds.  If the contact forces are clamped such that correction
> velocities can't exceed 1m/s, wouldn't pool ball B eat most of the
> velocity up without any result at all?
>
> In a general penalty system, how do you tell "bad" penalty (unwanted
> interpenetration) from "good" penalty (somewhat high speed collisions
> resulting in temporary penetration)?
>
> -Megan Fox
>
> On Fri, 25 Mar 2005 18:23:42 +0100, Alen Ladavac <alenl-ml at croteam.com>
wrote:
> > > > gradually, what's to stop the case where you update box A (but not
box
> > > > B), where box A's updated position interpenetrates with box B's
local
> > > > position, causing a local physics explosion, then you update box B,
> > >
> > > You know the position and velocity of box A at the time of the update.
> > > You can, if you want to, make it immune to other interactions for a
brief
> > > while after getting the update. Especially if you know objects are at
> > > rest (disabled) on the server, you can make that quite sticky in the
> > > distribution, so if it interpenetrates with B, B will go flying, but
not
> > > A.
> >
> > IMO, velocity used to resolve interpenetration in the contact joint
should
> > be clamped to some reasonable velocity (like 1m/s) in general. This
keeps
> > explosions caused by interpenetration to minimum, in this case and in
> > various others.
> >
> > JMTC,
> > Alen
> >
> >
>



More information about the ODE mailing list