This article presents an easy distance field-based collision detection scheme to detect collisions of an object with its environment. Through the clever use of back-face culling and z-buffering, the solution is precise and very easy to implement. Since the complete scheme relies on the graphics pipeline, the collision detection is performed by the GPU. It is easy to use and only requires the meshes of the object and the scene; it does not rely on special representations. It can natively handle collision with primitives emitted directly on the pipeline. Our scheme is efficient and we expose many possible variants (especially an adaptation to certain particle systems). The main limitation of our scheme is that it imposes some restrictions on the shape of the considered objects - but not on their environment. We evaluate our scheme by first, comparing with the FCL, second, testing a more complete scene (involving geometry shader, tessellation and compute shader) and last, illustrating with a particle system.
翻译:本文提出一种基于距离场的简易碰撞检测方案,用于检测物体与其环境之间的碰撞。通过巧妙运用背面剔除与深度缓冲技术,该方案兼具精确性与易实现性。由于完整方案依托图形管线实现,碰撞检测由GPU执行。本方案使用简便,仅需物体与场景的网格数据,无需依赖特殊表示方法,能够原生处理直接在图形管线上发射的图元碰撞。该方案效率显著,我们展示了多种可能的变体(特别是针对特定粒子系统的适配方案)。本方案的主要局限在于对目标物体的几何形状存在约束条件——但对其所处环境无此限制。我们通过三方面评估方案性能:首先与FCL进行对比测试;其次在更复杂的场景中验证(涉及几何着色器、曲面细分与计算着色器);最后通过粒子系统进行实例演示。