Preview3D
获取

什么是 .ply 文件?网格、点云还是泼溅,以及如何在 Mac 上打开它

PLY 是一种简单的 3D 数据格式,由 Greg Turk 于 1994 年在 Stanford 为 3D 扫描仪的数据而编写。扫描仪、摄影测量和 iPhone 的 LiDAR 应用至今仍在保存这种格式。但同一个扩展名背后藏着三种不同的东西:彩色网格、点云和高斯泼溅。文件头会告诉你手上的是哪一种。

概览

扩展名
.ply
类型
三角网格
创建者
Greg Turk, Stanford
始于
1994
标准
不是正式标准
macOS 自身(不装应用)
能打开,也能显示预览

信息核对于 2026年11月4日

文件头告诉你里面是什么

每个 PLY 都以字母 ply 开头,后面是一个描述后续内容的文本文件头。下面是一个从 Blender 导出的圆柱:

ply
format binary_little_endian 1.0
comment Created in Blender version 5.1.0
element vertex 576
property float x
property float y
property float z
element face 1152
property list uchar uint vertex_indices
end_header

format 行说明数据是文本(ascii)还是二进制。element vertex 576 表示 576 个顶点,每个顶点有 x、y 和 z 坐标。element face 1152 表示 1152 个面,每个面是一串顶点编号。end_header 之后就是数据。

即使是二进制文件,你也可以在终端中读取它的文件头:

head -c 600 model.ply

一个扩展名下的三种东西

网格的文件头中有 element face。它和 STL 一样是一个曲面,只是常常带有顶点颜色:x y z 之后跟着 red green blue。扫描应用和摄影测量会这样保存网格,因为颜色就在顶点里,不需要纹理。

点云没有 element face——只有顶点,通常带颜色。这是 LiDAR 或激光扫描仪产生的结果:数以百万计的点,没有曲面。点云无法作为实体来测量、检查孔洞或打印。它必须先变成网格,例如在 MeshLab 或 CloudCompare 中。

高斯泼溅是这个老扩展名的较新用法。每个“点”都是一个带颜色的半透明小椭球,文件头中不是 red green blue,而是 f_dc_0、opacity、scale_0 和 rot_0 这样的属性。颜色以球谐系数的形式存储。只有理解泼溅的查看器才能正确显示它;普通的 3D 查看器最多只能看到没有颜色的点。

我用 Apple 的 Model I/O 框架把这三种都试过。彩色网格会连同顶点颜色一起载入,点云则载入为带颜色的点。高斯泼溅只剩下点的位置——没有颜色、不透明度或形状。

简单的格式,写法很自由

Greg Turk 设计 PLY 的目标是易于实现,同时又足够通用。写入方可以给顶点和面附加任何属性,由文件头来描述它们。但读取方只理解它认识的那些属性,所以纹理坐标、材质或自定义数据常常在程序之间丢失。

另外:PLY 没有单位,一个文件就是一个对象,没有层级,而二进制数据可以是小端序或大端序。自 1994 年以来就没有人再发展这种格式;Library of Congress 没有找到第一版以外的任何版本。

Stanford 的 PLY 工作还给世界带来了 Stanford Bunny,这是一只在 1994 年扫描的陶瓷兔子,至今仍是计算机图形学中最常用的测试模型之一。

如何在 Mac、iPad 和 iPhone 上打开 PLY

macOS 自己就认识 PLY。根据 Library of Congress 的说法,预览可以打开它,在 macOS 27 上(在 27.0.1 上核实过),快速查看和访达缩略图也都能显示它。它们能否正确显示颜色、点云和泼溅,我还没有核实。

其他选择:

  • MeshLab 和 CloudCompare 都是免费的,能处理网格和点云,包括把点云变成网格。
  • Blender 能导入 PLY。只有打开顶点颜色显示后,顶点颜色才会显示出来。
  • Preview3D,我的应用,可以在 Mac、iPad、iPhone 和 Apple Vision Pro 上打开 PLY。

Preview3D 通过 Model I/O 读取 PLY,所以上面说的同样适用:网格带着顶点颜色,点云显示为点,泼溅只显示为点。当网格没有法线时,应用会自己计算,这样它就不会显得扁平或发黑。对于网格,模型信息以文件本身的单位显示尺寸和三角形数量,并提供网格检查。在 iPad 和 iPhone 上,它会在 AR 中把网格立在你的桌上,并按桌面大小显示,因为 PLY 没有单位。

把 PLY 转换为 STL

在 Mac 上,Preview3D 通过 文件 → 导出模型为…(⌥⌘E)转换为 STL 或 OBJ,不上传任何东西。只有网格才值得转换。STL 不携带颜色,所以顶点颜色会丢失,转换后还要在切片软件中检查单位。点云和泼溅都不会变成可打印的模型。

常见问题

如何判断我的 PLY 是网格还是点云?

看文件头。如果有 element face,就是网格。如果只有顶点,就是点云。属性 f_dc_0、opacity 和 scale_0 表示高斯泼溅。

为什么我看不到 PLY 的颜色?

程序要么不读取颜色,要么没有打开颜色显示。在 Blender 中,请打开顶点颜色显示。对于高斯泼溅,只有泼溅查看器才能显示颜色。

PLY 能拿去 3D 打印吗?

网格可以,先转换为 STL 或 3MF。点云或泼溅不行——它必须先变成网格。

把 PLY 转换为 STL 时颜色会保留吗?

不会。STL 不携带颜色。要为彩色打印保留颜色,你需要一种能携带颜色的格式,例如 3MF。

Mac 不装其他应用能打开 PLY 吗?

能,在 macOS 27 上,预览和快速查看都能处理它。

ASCII 和二进制 PLY 有什么区别?

区别只在于文件头之后的数据是怎么写的。二进制更小,载入更快;ASCII 可以在文本编辑器中阅读。

相关页面

  • .stl 文件——PLY 要转换成的打印格式
  • .obj 文件——另一种网格格式,材质放在 .mtl 文件中
  • .3mf 文件——带颜色的网格,用于彩色打印

资料来源

你有没有一个来自 iPhone 扫描的 PLY,在 Mac 上显示的内容和你预期的不一样?请写信到 apps@xfanta.com,告诉我它来自哪个应用。

在 Preview3D 中打开

在 Mac、iPad、iPhone 和 Vision Pro 上打开 STEP、3MF、STL、G-code、BGCODE 等格式。一次购买,无需账户,无需联网。

App Store 上的 Preview3D