Journal

Progressing Level-of-Detail Animation for Volumetric Elastodynamics

Jiayi Eris Zhang, Doug L. James, Danny M. Kaufman

Stanford University; Adobe

一句话总结

把只适用于布料/薄壳的 Progressive Dynamics 框架扩展到三维体积有限元,让美术师能用一个快上百倍的粗分辨率预览可靠地预测最终高分辨率体积弹性动画的运动,从而在迭代设计中快速试错。

研究背景

  • 领域现状:体积弹性动力学(volumetric elastodynamics)广泛用于特效、游戏、软体动画。高质量结果通常需要高分辨率离散、自由度巨大,单帧求解昂贵,严重拖慢”改初值—看结果—再改”的迭代设计循环。此前的 Progressive Dynamics 用”粗到细”的多分辨率层级,让粗预览可预测地细化成高分辨率结果,但只做到了 codimension-1 的布料与薄壳。
  • 核心痛点:直接在不同分辨率各自独立仿真,轨迹会随分辨率发散(同一个球砸在尖刺上,粗网格弹一边、细网格弹另一边),粗预览无法预测细结果。把 Progressive Dynamics 搬到体积域有两个硬骨头:一是不知道怎么造出好用的四面体网格层级(体积网格的抽稀算法不像薄壳边坍缩那样天然产生层间对应),二是在边界不共形、内部还可能部分重叠或错位的两层网格间,缺乏可靠的延拓算子(prolongation operator)。
  • 本文 idea:用现成的表面抽稀 + 四面体化工具拼出多分辨率层级,不依赖抽稀过程里跟踪的对应关系;再提出一个拓扑感知的边界绑定算法,为落在粗网格之外的细网格顶点计算(可为负的)重心坐标,使标准重心坐标、Biharmonic Coordinates、Phong Deformation 都能作为”即插即用”的延拓算子接入框架。

方法

整体上,方法先离线构造一个”同一物体、不同分辨率”的四面体网格层级,然后逐层用一个改进的速度更新把粗层运动”抬”到细层,再在细层求解带惯性项的隐式时间步能量,实现跨分辨率一致的渐进细化。核心难点与创新集中在层间的延拓算子构造。

flowchart LR
  A["输入细网格 M_L"] --> B["表面抽稀得到 S_L..S_0"]
  B --> C["逐层四面体化 (TetWild/TetGen)"]
  C --> D["拓扑感知边界绑定 + (负)重心坐标"]
  D --> E["延拓算子 P (可插入 Biharmonic / Phong)"]
  E --> F["逐层 VelPro 速度更新 + 隐式时间步求解"]
  F --> G["跨分辨率一致的 LOD 动画"]

关键设计:

  1. 多分辨率体积层级构造:先抽取输入细网格表面 \(S_L\),用表面抽稀生成 \(S_L, S_{L-1}, \dots, S_0\),再对每个表面用鲁棒四面体化工具重新填体得到 \(M_L, \dots, M_0\)。这里刻意不要求边界共形——TetWild 更看重单元质量而非精确保边界,因此层间边界天然不对齐,但作者证明后续延拓构造并不需要严格保边界。这条路绕开了体积网格缺乏层间对应的难题。

  2. 鲁棒的顶点—单元绑定(拓扑感知):延拓的前提是把每个细顶点绑到一个粗单元上算重心坐标。朴素的”欧氏最近点”绑定会把细顶点错绑到测地线上很远的粗单元,产生剧烈伪影。作者的做法是:先直接绑定落在粗单元内部的顶点作为”真值”;对落在外部的顶点,优先选择”已绑定邻居最多”的顶点,沿其入射边投射射线做射线—网格求交找归属三角形,并把绑定沿细网格邻接图传播,保证邻近顶点绑到测地线上相近的粗单元。

  3. 边界外推与延拓矩阵:对落在粗网格外部的细顶点使用负重心坐标做外推,这样延拓矩阵虽含负元素,但其余部分与共形情形完全一致,可直接复用。作者在附录里分析了负权的影响是有界的、不会随时间累积发散。绑定方向可互换(粗到细、细到粗),也可从两层平凡地推广到 \(L\) 层。

  4. 渐进推进与速度更新:最粗层 \(l=0\) 直接对整个时间区间做隐式时间步,得到预览行。细层采用 Zhang et al. 2025 的 VelPro 更新,在网格点 \((t+1, l+1)\) 用速度延拓器 \(V_{l}^{l+1}(x) = \nabla P_{l}^{l+1}(x)\)(位置延拓算子的 Jacobian)沿对角方向把粗层速度抬到细层,再最小化渐进增量势 \(x_{l+1}^{t+1} = \arg\min_x \tfrac{1}{2h^2}\lVert x - \hat{x}_{l+1}^t \rVert^2_{M_{l+1}} + E_{l+1}(x)\)。弹性、接触屏障、摩擦耗散沿用 IPC 公式。一个意外的”免费午餐”是:体积场景即使不在粗层套用细尺度子空间代理能量,直接粗仿真也已能给出可用的预览,省去了昂贵的子空间能量评估。此外可选地加一个质量加权的一致性惩罚项 \(W_l(x) = E_l(x) + w\lVert x - P_{l-1}^{l} x_{l-1}^{t+1} \rVert^2_{M_l}\) 供用户在一致性与细节丰富度间权衡,但论文几乎所有例子都设 \(w=0\)。

实验结果

评测在 Apple M4 Max(128GB)上进行,采用 Zhang et al. 2025 的时间连续性与几何一致性度量做定量分析,并用直接仿真、嵌入仿真、TRACKS 式位置约束作为对比方法。核心结论是各类对比方法都在”跨分辨率一致性”这一目标上失效,而本文方法天然满足。下表汇总主要对比方法的能力差异(源自论文的定性对比与图示):

方法 跨分辨率运动一致 接触感知 需手调权重 主要问题
直接仿真(各层独立) 轨迹随分辨率发散,粗预览不可信
嵌入/蒙皮上采样 面片化、缝隙、自穿插
TRACKS 式位置约束 部分 是(高度敏感) 权重不当会产生鬼力伪影
本文 Vol PD

效率方面,作者在所有例子上观测到粗预览相对细层直接仿真有一到两个数量级的加速;最极端的 teaser “叶羊”例子中,细层仿真约需 20 小时,而粗预览仅约 10 分钟,约 120× 加速。延拓算子选择上,重心坐标、Biharmonic Coordinates、Phong Deformation 在连续性与一致性度量上表现相当,说明它们都能等效地接入框架;而这些插值若直接用于上采样则缺乏物理感知,会出现膨胀、自穿插等伪影——Vol PD 相当于对它们做了物理松弛后处理。

亮点与局限

  • 亮点:
    • 首次把 Progressive Dynamics 从薄壳/布料推广到体积有限元,填补了”体积域缺乏层间对应与延拓算子”的空白。
    • 拓扑感知绑定 + 负重心坐标外推的组合简单但鲁棒,能处理边界不共形、甚至粗层顶点少 50× 的极端简化输入。
    • 延拓算子模块化设计,让多种现成插值即插即用,并给出负权有界性分析。
    • 支持大变形、高速运动、摩擦接触、异质材料与多物体交互,粗预览带来上百倍加速,直接服务迭代设计。
  • 局限:
    • 极端几何差异下仍可能”物理不合理”(如以空心立方体作细网格时角色掉进立方体内部),一致性得到保持但真实性失效。
    • 大时间步 + 深层级等极端条件下仍可能需要一致性惩罚权重。
    • 用直接能量评估替代了子空间代理能量,尚缺快速代理能量方案与抑制线性单元剪切锁定的均匀化技术。
    • 实现大多基于 CPU,未做 GPU 加速;也未处理多种共维实体(体+壳+杆)混合的渐进仿真;交互级粗预览仍是开放问题。

延伸思考

这项工作把”多重网格/延拓算子”的经典思想与现代 IPC 接触仿真结合,本质上提供了一个”物理感知的上采样/松弛”层,可视为嵌入仿真与蒙皮上采样的后处理修正器。值得追问的方向包括:能否用可微分或学习化的延拓算子进一步提升预览与细化的一致性;GPU 化后能否做到交互级的粗预览、让美术师实时试错;以及如何把体、壳、杆等不同共维实体统一进同一个渐进层级框架,做真正混合维度的一致性 LOD 仿真。