Game Development Reference
In-Depth Information
(a)
(b)
Figure 17.6 Non-detection of a collision by discrete approach (according to (Redon, 2002))
Backtracking: This solution consists of using a measurement of depth of interpen-
etration and the speed of objects as a base to determine an approximate time of
contact (Hahn, 1988);
Anticipation: An approximation of the moment of collision is calculated. A mini-
mum time during which no collision is possible is obtained using a minimum limit
of the distance and a maximum limit of the speed (Culley & Kempf, 1986; Lin &
Canny, 1992). In this case, we try to find by iteration the moment at which the
distance between the objects is less than a given threshold ε .
However, irrespective of the approach used, it is impossible to guarantee that all the
collisions would be detected. In fact, it may happen that the objects pass completely
through each other between two inspections (we are talking about the “tunnel effect'').
In practice, if t is the time interval between two inspections and V max the relative
speed of two objects, the interpenetrations of a length less than l max =
V max ×
t may
not be detected.
17.1.4.2 Continuous temporal detection
Discrete methods cannot guarantee that all collisions will be found, as the time is
discretised and all events occurring between two moments are potentially ignored
(see case b in figure 17.6). Thus, to guarantee finding all collisions, it is necessary
to consider time in a continuous manner. However, the position of objects is not
necessarily known at every single moment. For example, the position of an object
controlled by a peripheral device (keyboard, mouse, glove, etc.) is generally acquired
only at regular time intervals. To define the object's path in time, it is thus necessary to
interpolate its known positions. Let t n and t n + 1 be any two successive moments at which
the positions of objects are known, and I n
[ t n , t n + 1 ] the corresponding intermediate
time interval during which the real movement of the object cannot be used. Then the
randomly selected intermediate movement should:
=
maintain the physical parameters of the object during the entire movement, i.e. if
the object is rigid, then the distance between any two points of the object should
remain constant during the entire movement;