[ODE] OPCODE

Mark Wayland mwayland at torus.com.au
Sat Feb 14 22:39:56 MST 2004


Nope, but don't feel bad - not even the commercial APIs do that - they're
all based upon discrete intersection testing and rely on penetration in some
form or another to initiate a response. The problem is that if an object
either passes completely "through" another object in one timestep then
there's no collision detected, or even mostly through a box, for example,
then it may get pushed out the wrong side.

In Carmageddon TDR2000, we had vehicles/objects travelling at very high
speeds and decided we needed to perform swept tests on everything.
Essentially we ended up with swept sphere to triangle (including edges) and
swept edge to triangle (including edges). The swept edge to triangle is
pretty tricky in that the movement of the edge (with rotation) effectively
creates a complex surface to triangle test, but we needed it for objects
teetering on the edges of buildings etc. All of our collision routines
result in a collision time (between 0 and 1), collision position and
collision normal. All of the impulses due to collisions are resolved
simultaneously with a large matrix solver. As a result of having swept
collisions, we could potentially have a much lower physics frame rate than
the graphics (we did interpolation of the graphics positions etc, which was
required for replay playback anyway) because we didn't need to perform
multiple physics/collision steps as you would in most other physics engines.
Of course our implementation wasn't perfect as it was developed in under 18
months in parallel with the game, but we're pretty happy with it (ODE
handles most joint constraints and island selection much better than we
did).

ODE with OPCODE, as it stands, is _very_ impressive - great work guys!

Hope this helps (and inspires someone to put swept collisions in ODE - I
can't due to NDA),

Cheers,
Mark Wayland
Torus Games

----- Original Message ----- 
From: "arcad" <arcad at orion-mm.ru>
To: <ODE at q12.org>
Sent: Saturday, February 14, 2004 1:04 AM
Subject: [ODE] OPCODE


> Hello ODE,
>
>       Anyone, explain please, as OPCODE takes into account the velocity of
the object at finding of the collisions?
>       I use TriMesh and bodies moving quickly often fly through him.
>       Can anyone will prompt output their given to situations?
>       Is it Beforehand thanked, Arcad.
>
> -- 
> Best regards,
>  arcad                          mailto:arcad at orion-mm.ru
>
>
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode



More information about the ODE mailing list