跳到主要内容

PLY 格式

PLY(多边形文件格式)是保存 3D 高斯泼溅数据的标准格式。它自 1990 年代用于 3D 网格,而高斯泼溅是一种具有特殊属性和要求的应用。

什么是 PLY?​

PLY 最初由斯坦福大学设计,用于存储 3D 扫描数据,简单且灵活,支持顶点、面、颜色和自定义属性,可用人类可读的 ASCII 或二进制编码。

文件结构​

包含高斯泼溅的 PLY 有三个主要部分:

ply
format binary_little_endian 1.0
element vertex 500000
property float x
property float y
property float z
property float scale_0
property float scale_1
property float scale_2
property float rot_0
property float rot_1
property float rot_2
property float rot_3
property float opacity
property float f_dc_0
property float f_dc_1
property float f_dc_2
property float f_rest_0
property float f_rest_1
...
property float f_rest_44
end_header

头部还可用注释记录训练方式:Postshot 写 comment postshot.anti_aliasing=1,Brush 和 SplatTransform 写 comment SplatRenderMode: mip。PlayCanvas 读取两者,应用所需抗锯齿补偿,参见抗锯齿。

元素定义​

头部定义元素的结构和属性,通常每个顶点对应一个独立高斯单元。

数据区​

实际二进制或 ASCII 数据紧随头部,包含每个元素各属性的值。

3DGS PLY 与普通 PLY 的区别​

普通 PLY 通常保存位置、颜色等基本网格几何数据,3DGS PLY 有本质区别:

扩展属性​

每个高斯单元包含专用属性:

  • 位置(x、y、z):中心三维位置。
  • 缩放(scale_0、scale_1、scale_2):沿各轴的尺寸。
  • 旋转(rot_0、rot_1、rot_2、rot_3):朝向四元数。
  • 不透明度:透明度/alpha。
  • 球谐系数:以两组属性编码视角相关颜色:
    • 直接颜色分量(f_dc_0、f_dc_1、f_dc_2):零阶球谐的 RGB 基础颜色,决定主要颜色。
    • 高阶系数(f_rest_0 到 f_rest_44):编码颜色如何随视线变化,共 45 个系数,分为:
      • 一阶:3 个系数 × 3 通道 = 9。
      • 二阶:5 个系数 × 3 通道 = 15。
      • 三阶:7 个系数 × 3 通道 = 21。

无传统几何拓扑​

普通 PLY 包含定义网格拓扑的顶点和面,3DGS 只有点数据,无连接信息,每个“顶点”是独立高斯单元。

大量点​

通常包含数十万到数百万点,远超普通网格顶点数。

PLY 作为源格式​

在 3DGS 工作流中,可将 PLY 类比图像的 PSD 或视频编辑项目文件:

未压缩且完整​

  • 全精度数据,无质量损失。
  • 原样保留全部参数。
  • 可反复处理与优化,不累积退化。

归档与备份​

  • 用于长期保存采集成果。
  • 未来可用更好算法重新处理。
  • 作为场景的权威版本。

质量参考​

  • 保留为最高质量参考。
  • 按用途生成压缩格式。
  • 始终保留原 PLY 对比质量。

PLY 作为交换格式​

PLY 是 3DGS 生态的通用交换语言:

广泛兼容​

跨平台工作流​

  • 在不同训练管线间移动资源。
  • 无论合作者用什么工具都可分享数据。
  • 在处理阶段之间保持一致。

研究与开发​

  • 学术研究和论文提交的标准格式。
  • 在不同实现中复现结果。
  • 便于算法开发和比较。

运行时考虑​

PLY 很适合作为源文件和交换格式,但实时应用中有明显限制:

文件大小​

  • 未压缩:数据体积很大。
  • 常见大小:每场景 50MB 到数 GB。
  • 网络传输:未经处理不适合 Web 交付。
  • 存储成本:云存储和 CDN 分发开销高。

加载性能​

  • 解析:ASCII 文本尤其慢。
  • 内存:必须载入整个文件。
  • 初始化:不支持渐进或流式加载。
提示

请用 SplatTransform 转为更高效的运行时格式。目前推荐自组织高斯(SOGS),获得最佳压缩率与加载速度。