CS121 Project 2

Physics Engine FAQ



  1. Why do we require closed surfaces?

    This simplifies collision detection since we are assured the ball only collides with the front sides of triangles.

  2. What is the front of a triangle?

    We define a triangle by listing its vertices. The order we specify the vertices implies an orientation to the triangle. The vertices appear counterclockwise when the triangle is viewed from the front and clockwise when it viewed from the back.



  3. Why do we ignore back face collisions?

    Since Triangle World consists of closed surfaces in a room, a collision on the back face of a triangle is always preceeded by an earlier front face collision. Thus it suffices to detect collisions on the fronts of triangles. This assumption simplifies our collision tests but, more importantly, it allows us to handle simultaneous collisions with different triangles in a simple way.

  4. What is a triangle mesh?

    A surface can be modeled by a collection of triangles that tesselate its surface.



  5. How do we represent touching mathematically? What is the difference between touching and intersecting?

    For the purposes of this project, we'll say the ball touches a triangle if they have one point in common. We'll say they intersect if they have more than one point in common.

  6. What do you mean by the positition of the ball?

    The position of the ball is the location of its center.

  7. Do we ignore a collision at the end of the path?

    No, we detect it in the next time step as a collision at the start of the path.

  8. What precisely does it mean to collide?
    There is a slight technicality here. We say a ball collides with (the front of) a triangle when the ball touches the triangle and it is moving toward the triangle. (Mathematically, the ball is moving toward the triangle if the ball's velocity vector and the triangles forward facing normal have a negative dot product.)