从 4DGS 到可驱动数字人:动态场景、骨骼与高保真外观层
解释动态 Gaussian 的时间表示,以及怎样把 canonical Gaussian 绑定到骨骼或参数化人体,形成可驱动、可合成的高保真数字人外观层。
静态 3DGS 回答的是“相机移动时,这个不动的世界看起来怎样”。人物、衣服和现场表演把问题扩大了:时间在变化,遮挡关系在变化,Gaussian 也必须知道自己在下一帧去哪里。
研究中有两条容易混淆的路线:
- 4D 场景表示:重建一段已经发生的动态过程,目标是暂停、回放和改变观看机位;
- 可驱动 Gaussian Avatar:把人物外观绑定到骨骼、表情或参数化人体,目标是输入新动作后生成新姿态。
前者更像自由视点体积视频,后者更接近游戏角色。两者都用到动态 Gaussian,却拥有完全不同的控制能力、训练数据和失败方式。
为什么不能每一帧训练一套 3DGS
最直接的方法是把视频第 1 帧训练成一套 Gaussian,第 2 帧再训练一套,如此重复。它可以回放,却有三个根本问题:
- 存储随帧数增长;
- 同一个 Gaussian 在相邻帧没有稳定身份,压缩和跟踪都困难;
- 每帧独立优化会产生闪烁,无法保证时间一致性。
动态方法通常建立一套 canonical Gaussian,再预测时间 t 下的位置、旋转和形状;或者把空间与时间共同编码成可查询的表示。CVPR 2024 的 4D Gaussian Splatting 使用多分辨率时空编码与轻量形变解码器,把 canonical Gaussian 映射到每个时间点。4DGS 论文
它的官方仓库提供 D-NeRF、HyperNeRF 和多视图动态数据的训练路径,使用 Apache-2.0 许可;但环境仍基于较旧的 Python、PyTorch 和 CUDA 组合,复现时要隔离环境,不能把论文仓库直接视为现代生产 SDK。4DGaussians 仓库
Dynamic 3D Gaussians 则强调让 Gaussian 在时间上移动和旋转,并利用持久身份支持密集 6-DoF 跟踪。这类方法表明,动态 Gaussian 不只是渲染表示,也能成为时空对应关系的载体。Dynamic3DGaussians
4DGS 擅长“重放”,不天然擅长“导演新动作”
给 4DGS 一个训练时间范围外的新 t,不等于能让人物做任意动作。形变场通常在已经观察到的运动附近插值,遇到以下情况容易失败:
- 新动作远离训练分布;
- 手臂从身体后方出现,暴露未拍到的表面;
- 衣服、头发和物体接触关系发生新变化;
- 物体断裂、开合或出现拓扑变化;
- 长时序误差积累,身份逐渐漂移。
因此自由视点回放可以只关心“这段表演在其他角度怎样看”,游戏 Avatar 还需要明确的动作控制接口。
可驱动 Avatar 的核心:Canonical Space
可驱动人物通常先定义一个标准空间,例如人体 T-pose、SMPL/SMPL-X 的中性姿态或 FLAME 的中性头部。Gaussian 在这个 canonical space 中学习稳定外观,再通过骨骼、网格三角面或形变网络进入当前姿态。
一个 Gaussian 的中心可由多个骨骼变换加权:
μ′ = Σb wb Tb(μ)
其中 w_b 是蒙皮权重,T_b 是第 b 个骨骼的变换。若局部变换近似为线性矩阵 A,协方差也要随之更新:
Σ′ = A Σ AT
只移动中心、不更新朝向和尺度,会让 Gaussian 在关节旋转时仍保持旧形状,产生明显撕裂。
为什么绑定到三角面通常比只绑骨骼更稳
骨骼权重提供大尺度控制,却不能告诉 Gaussian 自己位于皮肤表面的哪个局部坐标系。更细致的做法是把 Gaussian 绑定到参数化网格三角形:
- 三角形中心提供位置基准;
- 边与法线构成局部坐标系;
- 三角形变形决定 Gaussian 的平移、旋转和尺度;
- Gaussian 仍可偏离表面,表达头发、绒毛和衣服边缘。
GaussianAvatars 将 3D Gaussian rig 到 FLAME 面部网格上,网格动画时,Gaussian 继承父三角形的局部变换;它还通过自适应密度控制补充头发等超出网格的外观。GaussianAvatars 论文 官方仓库
这套结构非常接近“参数化头模提供可控结构,Gaussian 提供高保真皮肤”的生产思路,但其仓库明确采用非商业许可,并继承原始 Gaussian Splatting 许可,不能直接拿来做商业角色系统。
为什么还需要姿态相关残差
Linear Blend Skinning(LBS)假设表面跟随骨骼平滑变形。现实中的肩胛、肌肉、衣褶、头发和软组织不会严格遵循这套模型。
因此常见架构还会输入姿态编码,为每个 Gaussian 预测:
- 位置残差
Δμ; - 旋转与尺度残差
ΔR、Δs; - 透明度或颜色残差;
- 局部非刚性形变特征。
GauHuman 将 canonical Gaussian 通过 LBS 变换到 posed space,并针对单目人体视频优化;HUGS 同时重建静态场景和可动画人体,允许 Gaussian 偏离 SMPL 表面以表示衣服和头发。GauHuman HUGS 仓库
GaussianAvatar 则从单目视频学习动态、姿态相关的人体外观,其 MIT 许可仓库提供训练和自有视频脚本,但依赖 SMPL/SMPL-X、原始 rasterizer 和数据集,各自仍有独立许可条件。GaussianAvatar 仓库
高保真外观层怎样落到引擎
生产系统不应把一份静态 PLY 直接挂在骨骼节点下。更合理的数据结构至少包含:
- canonical Gaussian 的位置、旋转、尺度、透明度和外观特征;
- 每个 Gaussian 的骨骼权重,或父三角形与局部坐标;
- 参数化人体与目标游戏骨骼之间的映射;
- 姿态条件残差网络或预计算形变参数;
- Gaussian LOD、分块、可见性和材质/光照扩展;
- 与 Mesh 深度、阴影和碰撞代理的合成协议。
每帧运行时大致执行:
动作 / IK / 表情
→ 更新骨骼与参数化网格
→ 变换 Gaussian 中心、旋转和协方差
→ 预测衣服、肌肉和头发的残差
→ 视锥裁剪、LOD、排序与 splatting
→ 与 Mesh 深度、阴影、粒子和场景合成
如果角色需要网络同步,不应逐帧发送全部 Gaussian。更现实的是让客户端预装 canonical 外观,只同步骨骼、表情、少量残差或低维 latent;这与传统游戏 Avatar 的“资产在本地、状态走网络”原则一致。
光照是高保真外观层的分水岭
早期 Gaussian Avatar 常把捕获时的辐射外观直接记录下来。优点是皮肤、眼睛和头发立即很真实;缺点是人物进入另一环境后,阴影和高光仍属于原拍摄棚。
可重光照 Avatar 正在补这一层:
- 分离漫反射、镜面和光照;
- 用神经 BRDF 表达复杂皮肤响应;
- 使用环境贴图、球谐光照或局部光照探针;
- 增加 ambient occlusion、阴影和间接光近似;
- 将较慢的 PBR teacher 蒸馏到实时 Gaussian 表示。
DNF-Avatar 将 ray-traced PBR neural field 的知识蒸馏到显式 2DGS student,面向未见姿态与环境光的实时渲染;BecomingLit 针对 light-stage 采集的头部 Avatar,组合神经漫反射与解析镜面模型。DNF-Avatar BecomingLit
这些进展说明重光照已从“完全做不到”进入可演示系统阶段,但受控采集、材质分解、阴影近似和训练成本仍远未像传统 PBR 管线那样标准化。
游戏和 VR 应怎样组合 Mesh 与 Gaussian
Mesh / 参数化人体负责
- 骨骼层级、IK 和动画状态机;
- 碰撞、布料代理、导航和游戏逻辑;
- 深度 pre-pass、阴影代理和物理查询;
- 低端设备或远距离 LOD;
- 编辑器选择、组件挂载和语义。
Gaussian 负责
- 皮肤、发丝、衣服纹理和高频褶皱;
- 训练视角范围内的视角相关外观;
- 过场、社交在场和近距离展示;
- 传统纹理和几何很难表达的软边缘。
VRGaussianAvatar 的开源系统把全身 Gaussian Avatar、头显追踪、IK 和双眼渲染接到一起,代表 2026 年“系统集成”方向的进展;它仍是 IEEE VR/TVCG 论文原型,而不是通用商业角色标准。论文 仓库
开源项目应该怎样阅读
| 项目 | 最适合学习 | 主要门槛 |
|---|---|---|
| 4DGaussians | canonical + 时间形变场、动态数据组织 | 较旧 CUDA/PyTorch 环境,多视图动态数据复杂 |
| Dynamic3DGaussians | 持久 Gaussian 身份与时空跟踪 | 依赖多相机数据、分割质量影响明显 |
| GaussianAvatars | FLAME 三角面绑定的高保真头部 | 非商业许可、FLAME 数据与追踪流程 |
| GaussianAvatar | 单目视频到可动画全身 | SMPL/SMPL-X、姿态预处理和依赖编译 |
| HUGS | 人与静态场景联合建模 | 单目跟踪误差、人物与背景分解 |
| VRGaussianAvatar | Avatar 驱动、IK、前后端与双眼渲染 | 论文原型,硬件与运行环境要求高 |
复现时要分别检查四类许可:仓库代码、继承的 3DGS rasterizer、人体模型、数据与预训练权重。README 上的一个 MIT 标志不能覆盖整个依赖链。
当前发展到什么程度
| 能力 | 2026 年判断 | 仍然缺什么 |
|---|---|---|
| 受控采集的高保真人脸 | 接近可用产品部件 | 方便的身份注册、重光照和跨设备一致性 |
| 单目全身 Avatar | 高质量研究原型 | 宽松动作分布、遮挡恢复、手指和衣物接触 |
| 新动作驱动 | 在相近姿态中可行 | 训练分布外动作、拓扑变化和物理一致性 |
| 实时渲染 | 单 Avatar 在论文环境中已普遍实现 | 多人物、双眼、完整游戏帧和移动端预算 |
| 任意重光照 | 快速发展中的研究系统 | 通用材质、可靠阴影、统一 PBR 工作流 |
| 直接替代游戏角色 Mesh | 不现实 | 碰撞、编辑、动画工具链、LOD 和网络协议 |
论文报告的训练时间和 FPS 只能说明方法在指定 GPU、分辨率、数据和渲染范围内可运行,不等价于“同时跑游戏逻辑、双眼、阴影和多人时仍有同样帧率”。
适合首先落地的产品
- 数字人展示、虚拟主播外观增强;
- 远程在场、培训讲师和虚拟会议;
- 影视预演、过场和受控镜头;
- 电商模特和服装展示;
- VR 社交中的近距离身份呈现;
- 游戏 NPC 的高质量对话镜头。
不适合作为首个目标的是:要求任意动作、复杂布料撕裂、多人战斗、动态天气和低端移动设备同时成立的开放世界玩家角色。
结论:先把 Gaussian 当成外观层
动态 3DGS 已经证明,Gaussian 可以跨时间保持身份,也能绑定骨骼和参数化人体产生实时 Avatar。真正稳健的工程结论不是“用 splat 取代 Mesh”,而是建立清晰分工:
骨骼和网格提供可控、可碰撞、可同步的角色结构;Gaussian 提供难以用传统纹理和几何捕获的高保真外观。
这种混合架构也为下一篇的直播和 XR 铺平道路:静态环境可以预加载,Avatar 只同步姿态与外观增量,客户端再完成实时 splatting 和深度合成。