• Advertisement
Sign in to follow this  

Collision Detection & Response

This topic is 1530 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

When doing collision detection and response -- is it *necessary* to first find the *closest* colliding triangle before pushing back and recursing, or can you just push back on the first collision triangle you find?

Share this post


Link to post
Share on other sites
Advertisement

So I'm trying to figure out the proper way to handle collision response and iteration in a case like this . . . I keep ending up getting pushed through the floor by the diagonal wall:

 

[sharedmedia=core:attachments:18727]

 

 

can you maybe review this collision detection/response logical pseudocode and possibly point out any fundamental flaws?

checkTriangles(start, end):

	collision_distance = infinity
	collision_occured = false

	for triangle in triangles:
		if check_collision( triangle ):
			if triangle_distance < collision_distance || collision_occured == false:
				collision_distance = triangle_distance
				collision_triangle = triangle
				collision_occured = true

	if collision_occured:
		end += collision_triangle->normal * pushback_factor
		checkTriangles(start,end)

Share this post


Link to post
Share on other sites

ok, i figured out the problem.

 

since it was a point-position instead of swept test, the FPS would drop dramatically when the recursion depth increased so the timestep was big, forcing it through the wall. seems to work now. :>

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement