本研究的主要作者为 Matthias Müller、Nuttapong Chentanez、Tae-Yong Kim 和 Miles Macklin,均隶属于 NVIDIA 公司。研究发表于 2015 年 8 月的 ACM Transactions on Graphics (ACM TOG) 期刊,并通过论文 DOI: 10.1145⁄2766907 获取。该研究旨在解决复杂变形物体密集接触时的碰撞检测 (Collision Detection) 和碰撞处理 (Collision Handling) 中的难题,并提出了一种新型方法——Air Meshes。
该研究主要属于计算机图形学 (Computer Graphics) 中的几何计算 (Computational Geometry) 和物理基础建模 (Physically Based Modeling) 的交叉领域,主要应用于三维动画、虚拟现实和模拟等领域。碰撞检测和碰撞处理是计算机图形学中的经典问题,同时也是动态模拟的重要组成部分,尤其是在复杂变形物体(如布料、组织结构的模拟)的场景中尤为突出。这些场景下,缺失碰撞事件可能导致物体穿插或缠结状态,而现有技术在复杂物体情况下的处理往往耗时非常高。
现有的碰撞检测方法通常利用空间加速结构(如均匀网格或边界体层次结构)来识别重叠的对象。然而,对于薄物体或快速运动的物体,还需要考虑物体在某一时间步跨越的体积,从而不遗漏碰撞事件。在多个复杂接近物体(如多层布料或角色体表组织)间,计算的复杂性会急剧上升并成为仿真的瓶颈。
在碰撞处理方面,对于薄结构(如布料)或深度接触的体积物体,现有方法常难以正确计算处理方向的响应力,且完全避免缠结状态的算法通常具有极高计算复杂度。在角色动画场景中(如角色坐下、穿戴多层布料),碰撞处理的实时性和表现效果也是一大挑战。
该研究旨在提出一种简单、平行化友好、鲁棒性高的碰撞检测和处理方法,对复杂变形物体的交互进行模拟,尤其是在布料、角色组织模拟等密集接触场景。通过一次性计算物体间的“空气网格”(Air Mesh),在仿真过程中防止该网格单元的体积反转,并设计动态网格优化策略以避免网格锁定问题。
整个研究分为三个主要阶段: 1. 预处理阶段:为物体间的空气进行网格划分(Tessellation)。 2. 仿真阶段:基于单侧约束(Unilateral Constraints)防止空气单元体积反转。 3. 动态网格优化:在仿真中进行网格优化以避免网格锁定。
空气网格的预处理生成
单侧约束的仿真阶段
cair = |(p2−p1)× (p3−p1)| ≥ 0 (二维情况下) cair = det [p2−p1,p3−p1,p4−p1]≥ 0 (三维情况下) 动态网格优化
预处理结果
空气网格划分经过实验验证在复杂三维场景中表现出良好适应性。例如,生成的网格不仅覆盖了空隙,还能够对物体自碰撞(Self-Collision)提供支持。
仿真测试结果
动态优化效果分析
研究揭示了空气网格的拓扑信息保存特性,即每一仿真步骤中,空气网格包含了物体相对位置和形变历史,这使得缠结状态能够在后续时间步中平滑地恢复。
该研究提出了一种创新性的空气网格 Air Mesh 方法,解决了复杂接触场景中的碰撞检测与处理问题。主要贡献包括: 1. 通过空气网格划分和体积约束实现鲁棒的连续碰撞检测。 2. 提供了平滑的缠结恢复方案,特别适用于多层布料、角色组织模拟等复杂场景。 3. 引入动态优化机制,使算法适用于更广泛的三维应用。
其科学意义在于为计算机图形学中的碰撞处理领域带来了新的思路与方案;应用价值则体现在其潜在的游戏与电影工业应用,尤其在角色动画和动态场景中具有较大优势。
研究团队提出了若干改进方向,包括动态生成和移除空气单元、将空气网格扩展用于更大规模场景,以及基于 GPU 的进一步加速开发。这些方向为算法实际推广使用提供可能性。