CS121 Project 2
Physics Engine FAQ
- Why do we require closed surfaces?
This simplifies collision detection since we are assured the ball only collides with the
front sides of triangles.
-
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.
- 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.
- What is a triangle mesh?
A surface can be modeled by a collection of triangles that tesselate its surface.
- 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.
- What do you mean by the positition of the ball?
The position of the ball is the location of its center.
- 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.
- 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.)