Original Post
I''ve finally got my collision detection routines working great using multi-pass detection that starts with bounding boxes and ends with tri-tri. The detection routine is running pretty fast, and it can give me a good degree of accuracy as to which part of model hit a particular object.
My problem now is trying to figure out what should happen after a collision has occured. The character should stop moving if it walks into an object, but it should also be able to walk on top of objects. The thing is, in 3D there always collisions on at least two axis. Walking into a wall will generate a collision in the y-axis(because I''m at the right height), but also in the x-axis because I am moving into the object. Walking on top of a wall would generate exactly the same collision scenario (assuming that gravit is pulling the character down, being on top of the wall would always result in a y-axis collision, and because the character is ''over'' the wall, I would collisions on the z/x axis).
I can''t just use the delta of the character''s movement because falling down and bumping into a wall appears exactly the same as walking on top of it (there is a delta-x and a delta-y component in both cases).
Does anyone have any idea how I can determine what the correct behaviour should be?