Sign in to follow this  

question about collision detection

This topic is 2588 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hi all,

i have a question regard collision detection using ellipsoid (the collide and slide algorithm).

I have read the collision algorithm posted by;

http://www.peroxide.dk/download/tutorials/tut10/pxdtut10.html

and its "Improve collision and response" pdf book.

Im having problem with deriving the "epsilon" value or the veryCloseDistance.
How can i compute this value? What is the basis for this value?

i have a problem with my collision since it detects the collision and slide sideways but it does not slide up when there is a stairs.

it is when my velocity vector is not totaly 0,0,0 but has value like
(0.0000019, 0.0, 0.0000094) the resulting slide can have an upward result.

my velocity vector decreases with the friction every frame, the friction scales down the velocity every frame instead of directly subtracting from it. When my velocity vector is too small because of friction scale down) but not zero
my collision routine is called and the result give an upward slide instead.

What is odd is when velocity is too small(not completely zero), the 3d mesh object can be viewed as standing still (not walking) in viewers view then suddenly moves up because of the result from the collision routine.

Can anybody help me debug this?

[Edited by - cebugdev on November 12, 2010 5:50:26 PM]

Share this post


Link to post
Share on other sites
How are you checking your velocity?
Are you comparing it to zero like velocity.x == 0?

if so you should use a different method like,


if(abs(velocity.x) < 0.002)
{
...
}else{
velocity.x = 0;
}


this way you can set the minimum velocity before it's set to zero
that should help out a bit but this probably wont fix the problem completely

Share this post


Link to post
Share on other sites
Quote:
Original post by BlackShark33
How are you checking your velocity?
Are you comparing it to zero like velocity.x == 0?

if so you should use a different method like,

*** Source Snippet Removed ***
this way you can set the minimum velocity before it's set to zero
that should help out a bit but this probably wont fix the problem completely


i checked the velocity by checking its length if its zero like
velocity.length()==0

but like what youve said that wont solve my collision problem since if i forced the velocity to zero, then it wont slide up anymore.

Share this post


Link to post
Share on other sites

This topic is 2588 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this