.ply 文件是一种常见的 三维模型存储格式,全称是 Polygon File FormatStanford Triangle Format,最初由斯坦福大学开发,用于存储 3D 扫描数据。

PLY(Polygon File Format) 是一种用于存储 三维几何数据 的文件格式,比如:

  • 3D 点云(Point Cloud)
  • 三角网格(Triangle Mesh)
  • 每个点的颜色、法向量、置信度等属性

​ 它类似于 .obj.stl 等格式,但更灵活,支持自定义属性。

​ PLY 文件有两种编码方式:

  1. ASCII 格式(文本,可读)
  2. Binary 格式(二进制,紧凑、读写快)

​ 无论哪种,都由两部分组成:

  • 头部(Header),描述数据结构
1
2
3
4
5
6
7
8
9
10
11
12
13
ply
format ascii 1.0 # 或 format binary_little_endian 1.0
comment Created by MeshLab
element vertex 8 # 有 8 个顶点
property float x # 每个顶点有 x, y, z 坐标
property float y
property float z
property uchar red # 颜色(R,G,B)
property uchar green
property uchar blue
element face 6 # 有 6 个面(三角形)
property list uchar int vertex_indices # 每个面由 3 个顶点索引组成
end_header

​ 头部说明了:数据是 ASCII 还是二进制,有多少个顶点(vertex)、面(face),每个顶点有哪些属性(坐标、颜色、法向量等)

  • 数据体(Body),实际数据

​ ASCII 示例(顶点部分):

1
2
3
4
0.0 0.0 0.0 255 0 0
1.0 0.0 0.0 0 255 0
1.0 1.0 0.0 0 0 255
...

​ 面部分(每个面3个顶点索引):

1
2
3
3 0 1 2
3 2 3 0
...
应用场景 说明
3D 扫描 激光雷达、Kinect、Structure Sensor 输出 PLY
三维重建 COLMAP、Open3D、Metashape 生成 .ply 点云或网格
NeRF / 3DGS points3D.ply 存储初始点云(如 COLMAP 重建结果)
点云处理 Python 中用 open3d, trimesh, plyfile 读写
可视化 MeshLab、CloudCompare、Blender 可打开 .ply
格式 是否支持颜色 是否支持法向量 是否支持网格 用途
.ply 通用,适合点云和网格
.obj ❌(需 .mtl 常用于网格模型
.stl 3D 打印专用
.pcd PCL 点云专用
.glb Web 3D、Three.js