PhysGaussian阅读笔记

Felix Christian Lv3

1. 核心思想

这篇论文提出了 PhysGaussian,核心理念是 "所见即所仿" (What You See Is What You Simulate, )。它不再需要将 3DGS 转换为三角形网格或四面体网格,而是直接将 3DGS 中的每一个“高斯椭球”视为物理模拟中的一个“粒子”。

  • 传统流程:物体 -> 转换为网格 -> 物理引擎解算网格形变 -> 渲染引擎根据网格更新画面。
  • 本论文流程:物体 (3DGS) -> 物理引擎直接推算高斯球的位移和形变 -> 渲染引擎直接画出更新后的高斯球。

2. 基础概念

  • 3D Gaussian Splatting (3DGS):
    • 通俗解释: 一种新的 3D 绘图技术。以前我们用三角形拼出物体(像折纸),现在我们用无数个模糊的椭球体(高斯球)堆叠出物体。每个球有位置、颜色、大小、旋转角度。
    • 优势: 渲染速度极快,画质逼真。
  • 连续介质力学 (Continuum Mechanics):
    • 研究物体在受力时如何运动和变形的学科。它把物体看作是连续不断的材料,而不是原子堆积。
    • 关键点:它通过“形变梯度”(Deformation Gradient,记为 )来描述物体局部是如何被拉伸、旋转或剪切的。
  • 物质点法 (MPM, Material Point Method):
    • 核心逻辑:它混合使用了粒子(Lagrangian,随物质移动)和背景网格(Eulerian,固定不动)。
    • 为什么选它:3DGS 本质是离散的“点”,MPM 刚好也是基于“点”(粒子)的。两者天生契合,比基于网格的有限元法(FEM)更适合处理 3DGS。

3. 核心方法

PhysGaussian 的核心在于将图形学的属性物理学的属性绑定在同一个对象上。

3.1 统一表达 (Unified Representation)

论文将 3DGS 的高斯核直接视为 MPM 模拟中的粒子。

  • 图形属性:位置、旋转、缩放、颜色(球谐系数)、不透明度。
  • 物理属性:质量、速度、形变梯度、应力(内部的力)。

3.2 运动学演变 (Kinematics)

当物体被挤压时,不仅位置变了,形状也得变。如果高斯球只是平移,渲染出来的物体看起来会像是在“平移错位”,而不是“变形”。

  • 位置更新:由 MPM 算出粒子的新速度和新位置。
  • 形状更新(协方差矩阵演变): 这是论文的精髓。根据连续介质力学,如果知道物体局部的形变梯度 (比如局部被拉长了 2 倍),那么高斯球的形状(协方差矩阵 )也应该被相应地拉伸。
    • 公式逻辑:新的形状 = 形变梯度 原始形状 形变梯度的转置。
    • 通俗解释:如果一个原本是圆球的高斯核,所在的区域被物理引擎判定为“压扁”,那么这个高斯核在渲染时就会自动变成一个扁平的飞碟形状。

3.3 视觉外观的旋转 (SH Rotation)

3DGS 使用球谐函数 (Spherical Harmonics, SH) 来表示颜色,这种颜色是随观察角度变化的(比如金属光泽)。

  • 问题:如果物体旋转了 90 度,但他身上的“光泽”没跟着转,看起来就会很假。
  • 解决:利用物理计算出的局部旋转信息,对球谐系数的方向进行变换,确保光影随物体一起运动。

4. 关键技术挑战与解决方案

直接拿 3DGS 做仿真有两个大坑,论文给出了填坑方案。

挑战一:空心壳问题 (Hollow Shell Problem)

3DGS 训练出来的模型通常只有表面有高斯点,内部是空的。

  • 物理上的问题:如果一个是空壳,它是没有质量的,或者质量分布不对。稍微一碰就会像气球一样瘪掉,或者无法模拟实心的弹性(比如捏一块实心橡胶)。
  • 解决方案:内部填充 (Internal Filling)
    1. 利用 3DGS 的不透明度场(Opacity Field)。
    2. 向物体内部发射射线,如果射线的能量从低变高再变低,说明穿过了物体。
    3. 在检测到的物体“内部”空洞区域,人工生成新的不可见粒子(Opacity 为 0,不参与渲染,只参与物理计算)。
    4. 这样物体就有了“实心”的物理属性,碰撞和形变才真实。

挑战二:长条伪影问题 (Needle Artifacts)

3DGS 为了拟合表面,有时候会把高斯球拉得极长(像一根针)。

  • 物理上的问题:当这些“长针”在物理模拟中发生剧烈旋转或弯曲时,它们可能会像刺猬的刺一样戳出物体表面,导致画面出现很多毛刺。
  • 解决方案:各向异性正则化 (Anisotropy Regularizer)
    • 在训练 3DGS 的阶段加入一个惩罚项(Loss)。
    • 通俗解释:训练时告诉算法,“你尽量把高斯球做得圆一点,不要太长太扁”。强制限制长轴和短轴的比例,保证粒子形状在后续物理形变中更鲁棒。

5. 关于碰撞检测 (Collision)

碰撞问题,在论文中是通过 MPM 算法天然解决的

  • 原理:MPM 算法中,所有粒子的动量都会先传递给背景网格(Grid),在网格上计算受力,再传回粒子。
  • 效果
    • 物体与物体碰撞:当两个物体(两团高斯云)靠近时,它们会映射到同一个背景网格节点上。网格节点会发现“这里动量冲突了”,自动计算出反弹力。不需要显式地写代码去判断“三角形A是否穿插了三角形B”。
    • 物体与地面碰撞:通过设置网格边界条件即可实现。
    • 自碰撞:比如一块海绵折叠起来,自己碰到自己,MPM 也能自动处理。

6. 仿真能力展示

该方法不仅能做简单的移动,还能模拟多种材质:

  1. 弹性体 (Elasticity):如果冻、橡胶狐狸。形变后能恢复原状。
  2. 塑性金属 (Metal):如被撞扁的易拉罐。撞扁后就扁了,不会弹回来。
  3. 非牛顿流体/粘塑性 (Viscoplastic):如蛋糕上的奶油、果酱。
  4. 颗粒材料 (Granular):如沙土、散落的粉末。
  5. 断裂 (Fracture):比如撕面包。因为 3DGS 是离散的点,所以“撕开”物体只是把点分开而已,不需要像网格那样处理复杂的拓扑断裂(Remeshing)。

7. 总结:优点与局限性

优点

  1. 所见即所仿:不需要维护两套模型(渲染网格 vs 物理网格),消除了几何不匹配。
  2. 流程简化:省去了网格生成(Meshing)这一繁琐且容易出错的步骤。
  3. 天然支持大形变与拓扑改变:撕裂、流体化、融化等效果,用点云(MPM)做比用网格做容易得多。
  4. 渲染质量高:继承了 3DGS 的照片级渲染能力。

局限

  1. 阴影问题:目前的 3DGS 很难处理动态阴影(Shadows),所以虽然物体动了,但阴影可能不真实。
  2. 参数手动设置:物体的硬度、密度等物理参数需要人工指定,目前还不能完全从视频中自动学习出来。
  3. 计算量:虽然比纯网格物理模拟方便,但 MPM 模拟本身的计算量依然不小(虽然可以 GPU 加速)。
  • 标题: PhysGaussian阅读笔记
  • 作者: Felix Christian
  • 创建于 : 2025-12-16 11:29:05
  • 更新于 : 2025-12-29 16:00:53
  • 链接: https://felixchristian.top/2025/12/16/22-PhysGaussian/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论