ABSTRACT

This chapter proposes an efficient method to incorporate high-frequency deformations upon physical contact into dynamic displacement maps directly on the graphics processor unit (GPU). While low-frequency dynamics are still handled by the CPU physics engine, fine-detail deformations are computed on the fly directly on the GPU. In order to keep GPU storage requirements at a minimum, the authors use dynamic memory management, thus only allocating space for displacements of surface patches affected by deformations. The patch intersection detection stage is implemented entirely on the GPU using a compute shader. The previously depicted intersection stage implementation dispatches threads for each penetrating object sequentially, thus causing unnecessary and redundant memory accesses because the same patch control points have to be read over multiple kernel dispatches. This memory I/O overhead can significantly be reduced by batching multiple penetrating objects into a single dispatch.