Game Development Reference
F IGURE 15.5
coefficient in all directions. Anisotropic friction can have different coefficients in dif-
Figure 15.5 shows a block on the ground from above. If it is pushed in the first
direction, then the friction force will have a coefficient of μ a ; if it is pushed in the
second direction, then the friction force will have a coefficient of μ b .If μ a =
μ b , then
the friction is isotropic; otherwise it is anisotropic.
The vast majority of game simulations only need to cope with isotropic friction.
In fact most engines I've used either are purely isotropic or make the programmer
jump through extra hoops to get anisotropic friction. Even then, the anisotropic fric-
tion model is highly simplified. We'll stick with isotropic friction in this topic.
I MPLEMENTING F RICTION
Introducing friction into a physics simulation depends on how the existing physics is
implemented. In our case we have an impulse-based engine with micro-collisions for
resting contacts. This means we have no calculated normal reaction forces at resting
contacts. In addition, we introduce impulses rather than forces at contacts to generate
This makes it difficult to directly carry across the friction equations we have seen
so far: we have no calculation of the reaction force, and we have no easy way of apply-
ing forces at the contact point (remember that in our engine the forces for the current
physics update are applied before collision detection begins).