OmniBody:基于局部 XPBD 椭球粒子的实时切割、剥皮与破碎软体仿真
创建一个能被挤压或拉伸的软体对象是一回事;让它能够被切割、剥离、断裂并实时自由操控则要困难得多。基于网格的模拟方法在物体拓扑发生变化时,往往需要代价高昂的重网格化,而物理上更严谨的方法可能依赖全局求解器,难以以交互式帧率运行。
由韩国科学技术院(KAIST)研究人员 Jewoo Shin 与 Jinah Park 开发的OmniBody,用体素对齐的、有方向的椭球粒子取代了传统的连通网格。局部扩展位置动力学(Local Extended Position-Based Dynamics)约束控制接触、弯曲、弹性、体积保持与断裂,使全局行为得以自然涌现,而无需进行矩阵组装或线性系统求解。该项目作为SIGGRAPH 2026 动画与模拟(Animation & Simulation)海报环节的一部分进行了展示。
由此得到的 GPU 框架可以在 NVIDIA GeForce RTX 3080 Ti 上以约 3.1 毫秒模拟一个 64,000 粒子的物体,而一项要求苛刻的切割测试仍保持在 10 毫秒以内。我们与 Shin 聊了通过模块化约束设计材料、无需重网格化即可打破物体、围绕暴露内部表面的剩余挑战,以及为什么可自由变形的物体对 XR 和沙盒游戏可能尤其有价值。

能否介绍一下你们自己、你们的研究背景,以及促使你们开发 OmniBody 的仿真挑战?
Jewoo Shin:我叫 Jewoo Shin,目前是韩国科学技术院(KAIST)的硕士研究生,在 Jinah Park 教授的指导下进行研究。我还没有丰富的研究背景,但我对计算机图形学和物理仿真有着深厚的热情。我本科主修计算机科学,而 OmniBody 是我作为研究生第一个取得有意义成果的项目。
促使我开发这个仿真模型的主要挑战,是易用性不足和实现复杂度高。传统的柔体仿真方法需要复杂的领域知识才能搭建和控制,而要达到理想的物理状态几乎从来都不是一件直接的事。更具体地说,我的动力来自一个目标:构建一种实时交互式仿真,它超越了在许多环境中常见的简单软绵绵的物体 — 能够支持更真实的物理行为和交互,例如切割和剥离。
此外,粒子级形变在交互式仿真技术中扮演着核心角色。在我一直参与的研究项目中,需要一个能够处理各种材料行为的可形变体模型。同时处理用于视觉一致性的全局形变和接触点处的局部响应,这一点至关重要。
因此,OmniBody 建立在扩展位置动力学(Extended Position-Based Dynamics,XPBD)之上,选择它是因为其简单性和稳定性;并证明了通过简单约束的组合可以产生各种有趣的情景。


OmniBody 通过体素对齐的椭球粒子之间完全局部的相互作用来构建全局形变。这种表示方式是如何工作的?与四面体网格、传统粒子系统或有限元方法相比,它又有哪些优势?
Jewoo Shin:有向椭球粒子表示所携带的信息比传统的质点粒子更多,这使得复杂的分布式 XPBD 约束配置成为可能。在概念上,它更接近有限元方法,而非传统粒子系统,因为物体被细分为显式的单元,每个粒子都充当一个独立单元,其属性在局部计算。然而,与 FEM 不同,它不需要矩阵组装或线性系统求解等开销高昂的操作。相反,局部约束被求解,并在相邻粒子之间连接,从而在保持物理连贯性的同时让计算保持轻量。
与四面体或六面体网格不同,椭球粒子在拓扑发生变化时(例如在破坏或切割过程中)的开销要小得多。基于网格的方法在这些情况下通常需要复制顶点并重新划分网格,这在交互式实时场景中可能代价高得难以承受。OmniBody 通过简单地停用受影响粒子之间的接触约束来解决这一问题,而且这一操作易于并行化。
我们这种表示方式的另一个优势在于碰撞处理。由于粒子本身充当碰撞边界,因此检测和求解与其他 OmniBody 对象、基于粒子的材质或物体自身的碰撞,要比网格之间的碰撞处理直接得多。

该框架将接触、弯曲、各向异性弹性、体积保持和断裂分离为单独的约束。这些约束如何组合才能不产生不稳定或矛盾的行为?艺术家可以使用哪些控制来定义不同的材质?
Jewoo Shin:这些约束分为两个层级:粒子级约束和邻域级约束。粒子级约束包括各向异性弹性和体积保持,它们决定了每个椭球体在应力下如何变形以及如何恢复到静止形状。弹性的刚度参数控制沿每个轴的应变敏感度,而体积保持的柔量则表示物体对体积拉伸和压缩的容忍度。
另一方面,邻域级约束决定了哪些粒子相互连接以及它们被保持在一起的紧密程度。接触约束通过将粒子表面之间的距离限制为零来强制粒子之间的几何附着,而弯曲约束则防止相邻粒子相对彼此过于自由地旋转,类似于球窝关节。
将这些约束组合在一起,每个求解器步骤按顺序迭代这些约束以产生全局行为。遵循基于位置的动力学中的预测-投影-更新方案,求解器首先解决位置约束并预测每个椭球体的缩放和方向。然后粒子级约束确定每个粒子的形状,一旦所有粒子都稳定到各自的配置中,如果相邻粒子被拉得太远,断裂约束可能会停用它们之间的连接。由于每个步骤都通过子步进处理(将每个时间步划分为更短的区间),只要粒子之间没有严重的错位,系统就会缓慢但稳定地收敛到平衡状态。
得益于基于约束的公式化,每个约束都可以通过其柔量参数轻松解耦和调整。艺术家只需选择哪些约束作用于物体并设置每个约束的刚度,即可在运行时调整材质行为。例如,增加接触约束的柔量会产生更流体、更像果冻的行为,而更高的体积保持柔量则使物体更具可拉伸性。


破坏通常需要重新网格化(remeshing)或显式追踪裂缝。OmniBody 基于距离的断裂模型如何让物体无需重新网格化就能撕裂和破碎?它又能在多大程度上复现特定的断裂模式,而不仅仅是普遍性的碎裂?
Jewoo Shin:我们基于距离的断裂模型为软体提供了一种简单却有效的剥离(peeling)特性。粒子表面之间的距离理想情况下始终保持为零,但如果超过某个阈值,约束就会被永久解耦,从而让物体分离。重要的是,这个阈值可以沿每个轴各不相同,从而实现更多样的场景。例如,一块沿特定方向更容易撕裂的肉就可以被自然地表示出来。
另一种破坏形式是切割,它的原理是直接禁用接触约束。一个虚拟的切割对象(例如一个平面)在穿过几何体时,会断开它所相交的任何约束。其效果类似于在体素化的果冻块中剪断一根弹簧。
话虽如此,目前复现特定的断裂模式还不如实现一般的碎裂那样可靠。由于所有粒子都被视为具有相同质量,它们往往对外力做出均匀的响应。这意味着,举例来说,捏合(pinching)交互只会使最靠近接触点的粒子脱离,而不会以受控的方式向内传播。要解决这个问题,就需要对每个粒子的逆质量(inverse mass)进行差异化处理,以引导断裂沿预期路径发展,这很可能需要一种可微分的方法。我们将其留作未来工作的一个方向。

在不同的物体分辨率、粒子数量和破坏场景下,你们实现了怎样的性能?仿真的哪些部分最能从 GPU 并行化中受益,目前的计算瓶颈又出现在哪里?
Jewoo Shin:对于标准的立方体网格,逐帧仿真时间随粒子数量的扩展相当好。在 NVIDIA RTX 3080 Ti 上,20³ 网格、8,000 个粒子每帧运行 0.9ms,即便是 40³ 网格、64,000 个粒子也保持在 3.1ms 以内。对于更复杂的场景,例如切割一个被拉伸的 40³ 立方体,峰值帧时间仍低于 10ms,我们认为这足以满足实时交互使用。
实现这一性能的关键在于,体素化的邻居结构能够自然地将约束分解为沿 x、y、z 轴的三个相互独立的集合。这使得高斯-赛德尔(Gauss-Seidel)求解只需三轮即可完成,从而将仿真方法中计算代价最高的部分降低到接近线性的复杂度,而这非常契合 GPU 并行化。
即便如此,仍有一些方面我们正在积极改进。由于 OmniBody 仍在积极开发中,我们有意让每个约束保持模块化且易于修改,这意味着 GPU 目前会将它们作为大量小型串行操作来处理。由于其中许多操作会访问相同的数据,硬件必须等待前一个操作完成才能开始下一个,这累积成了相当可观的开销来源。同样,每个粒子的内存布局目前是以灵活性为出发点设计的,而非完全优化。随着系统逐渐成熟、约束设计趋于稳定,整合这些操作并收紧内存布局将是我们优化的首要重点。

目前还存在哪些限制或视觉瑕疵?要将 OmniBody 集成到生产级游戏引擎中,用于可变形环境、可破坏生物、类布料物体或软体游戏玩法等效果,还需要做哪些工作?
Jewoo Shin:在模拟和视觉表现两方面仍然存在限制。在模拟方面,OmniBody 的约束并非源自严格基于物理的方程或能量公式,因此其行为有时会与我们对物理精确模拟的预期不同。例如,物体无法像钟摆那样反复摆动,因为当前的公式没有包含角度项。
在视觉方面,目前的渲染要么直接显示单个粒子,要么将网格蒙皮以跟随粒子位置。这对许多可变形物体效果很好,但对于完全可破坏的模型就变得更具挑战性。当一个物体被切割或打碎时,新暴露出的内部表面并没有以一种可以被干净渲染的方式明确定义。体积表示,例如基于纹理的表示或高斯泼溅,可能是可视化这些新暴露区域的更好方法。
在将 OmniBody 集成到生产级游戏引擎之前,还需要解决若干工程挑战。游戏环境通常包含许多动态物体,因此模拟需要在各种交互中保持稳定和高效。由于 OmniBody 仍然是对真实物理行为的近似,在某些情况下可能会出现意外行为。多个物体之间的稳健交互以及进一步的优化也是必要的。

Jewoo Shin:与此同时,我并不认为 OmniBody 需要在所有使用场景中取代现有的解决方案。如果完全可破坏的软体并非必需,那么成熟的基于网格的软体或布料模拟方法很可能会提供更好的性能。对于许多类型的游戏内容来说,预定义的分割系统或网格切割技术已经足够。我认为 OmniBody 特别有意思的地方在于像 XR 这样高度交互的环境,用户可以用双手自由地操纵物体,而不受限于预定义或脚本化的交互。
作为一个真心热爱游戏的人,我相信更接近真实世界行为的模拟能够创造出更丰富、更具沉浸感的体验。让玩家能够以意想不到的方式与物体互动,而不是将他们限制在预定义的动作中,可以为富有创意和吸引力的玩法开辟新的可能性。
我一直被模拟和沙盒类游戏所吸引,也长久以来一直想象着这样的虚拟环境:物体可以像在现实世界中一样被探索和操纵。想象一下,能够在虚拟厨房里真正地揉面团、切面包并做一顿饭。这正是我觉得最令人兴奋的那种体验,也正是最终驱动这项工作的动力。
Jewoo Shin,KAIST 计算机图形学硕士
相关链接
原文链接:https://80.lv/articles/this-soft-body-simulation-can-cut-peel-break-objects-in-real-time
喜欢这篇内容吗?