[ODE] Pushing through collisions

Colin Bonstead colin at cyan.com
Wed Aug 18 08:29:13 MST 2004


Basically what I do is redirect the velocity of the avatar along the 
wall before he collides with it.  I've got an extra ccylinder that's a 
little bigger than the avatars collision shape that just records 
contacts, it doesn't get contact joints.  I look at the contact normals 
coming off that and redirect the velocity along the planes formed by 
those contacts until there aren't any conflicts.  If all of the contact 
planes cause a conflict, I just cut off the velocity.

I also had to modify ODE so that there's a new flag to force it to only 
return contacts that are perpendicular to the surface.  I turn that on 
for the detector ccylinder, otherwise I can get edge contacts off 
trimeshes that are misinterpreted as walls.  There may be a more elegant 
way around that, but this way works fine for me.

-----Original Message-----
From: Wong Kong Yew <kong_yew at phoenix-gamestudios.com>
Sent: Wed, 18 Aug 2004 14:35:24 +0800
To: <colin at cyan.com>
Subject: Re: [ODE] Pushing through collisions

Hi,

I been reading your post on the ode mailling list archive. I am having 
the
same problem as you in making the avatar move as I am using the same
technique as you are by setting the velocity directly. Since I am new to 
ODE
I am not sure how I can solve the problem. I been trying to fixed it for 
a
couple of days and managed to reduce it a bit but it still shake quite
badly. I am wondering if you managed to solve the problem? I will be
grateful for any help you can give me.

Thanks,
Wong Kong Yew
Phoenix Games Studio






More information about the ODE mailing list