Game Development Reference
need to perform collision checks, if not for every iteration of the relaxation solver
then for every two or three iterations. A final collision pass should be done after
all other constraints. This is required to avoid having any geometry lying under
the cloth show through.
Determining which collision objects need to collide against which particles
can be expensive. To ameliorate this problem, we can group particles with specific
collision objects, e.g., the left sleeve only needs to collide with the left arm.
Modern consoles are very sensitive to memory access and cache performance.
Avoiding the load-hit-store [Heineman 08] is important. This can be done by or-
dering the list of constraints so that those that update a common particle are spaced
apart. By spacing them apart, a particle's write will hopefully be completed be-
fore its data are needed by the next constraint that uses it. At least we will reduce
the time the next constraint must wait.
Figure 12.2. Cloth update: wrong ordering.