3D模型文件格式之Ply

3D打印软件设计算法
2013
01/03
16:41
分享
评论
Ply文件格式是Stanford大学开发的一套三维mesh模型数据格式,图形学领域内很多著名的模型数据,比如Stanford的三维扫描数据库[1](其中包括很多文章中会见到的Happy Buddha、Dragon、Bunny兔子),Geogia Tech的大型几何模型库[3],北卡(UNC)的电厂模型[4]等,最初的模型都是基于这个格式的。

PLY多边形文件格式的开发目标是建立一套针对多边形模型的,结构简单但是能够满足大多数图形应用需要的模型格式,而且它允许以ASCII码格式或二进制形式存储文件。PLY的开发者希望,这样一套既简单又灵活的文件格式,能够帮助开发人员避免重复开发文件格式的问题。然而由于各种各样的原因,在工业领域内,新的文件格式仍然在不断的出现,但是在图形学的研究领域中,PLY还是种常用且重要的文件格式。

PLY作为一种多边形模型数据格式,不同于三维引擎中常用的场景图文件格式和脚本文件,每个PLY文件只用于描述一个多边形模型对象(Object),该模型对象可以通过诸如顶点、面等数据进行描述,每一类这样的数据被称作一种元素(Element)。相比于现代的三维引擎中所用到的各种复杂格式,PLY实在是种简单的不能再简单的文件格式,但是如果仔细研究就会发现,就像设计者所说的,这对于绝大多数的图形应用来说已经是足够用了。

PLY的文件结构同样很简单:文件头加上元素数据列表。其中文件头中以行为单位描述文件类型、格式与版本、元素类型、元素的属性等,然后就根据在文件头中所列出元素类型的顺序及其属性,依次记录各个元素的属性数据。

下面这个例子是一个典型的ASCII格式的PLY文件,其所描述的是一个立方体。
ply

format ascii 1.0 ...{ 文件类型:ascii或binary,版本号 }

comment made by anonymous ... { 注释行 }

comment this file is a cube ...{ 注释行 }

element vertex 8 ...{ 定义“顶点”元素,其数量为8个 }

property float32 x ...{ 顶点的x属性,数据类型为float32 }

property float32 y ...{ 顶点的x属性,数据类型为float32 }

property float32 z ...{ 顶点的x属性,数据类型为float32 }

element face 6 ...{ 定义“面”元素,其数量为6个 }

property list uint8 int32 vertex_index ...{ 面的顶点索引属性,类型为uint8的列表 }

end_header ...{ 文件头结束标志 }

0 0 0 ...{ 顶点元素列表 }

0 0 1

0 1 1

0 1 0

1 0 0

1 0 1

1 1 1

1 1 0

4 0 1 2 3 ...{ 面元素列表 }

4 7 6 5 4

4 0 4 5 1

4 1 5 6 2

4 2 6 7 3

4 3 7 4 0

从这个文件的文件头可以看到,文件定义的对象由8个顶点元素和6个多边形面元素组成,其中顶点元素包括x、y、z三个属性,其在文件中均为32位浮点类型,而多边形面元素则只包括一个顶点索引列表的属性,作为一个列表属性,它包括两部分,即列表元素的数量(uint8类型)及各个列表元素(int32类型),其中每个列表属性的数据包括4个列表元素,分别表示每个多边形面的4个顶点的索引。

PLY格式支持如下的数据类型。
name type number of bytes
---------------------------------------
int8 character 1
uint8 unsigned character 1
int16 short integer 2
uint16 unsigned short integer 2
int32 integer 4
uint32 unsigned integer 4
float32 single-precision float 4
float64 double-precision float 8

但是需要注意,由于PLY格式的开放性,有些PLY文件的解析程序不支持全部的数据类型,也有的PLY文件采用自定义的数据类型,这些都有可能导致文件解析过程的失败。

对于元素的属性定义方式,PLY允许单一属性定义:
property
以及列表属性方式:
property list

其中第一个数据类型描述列表元素数量,第二个数据类型描述每个列表元素。
除了顶点和多边形面两种基本元素外,PLY文件格式允许使用自定义的元素和元素属性,称为Other Element和Other Property。只要遵循文件格式中对元素及元素属性的格式定义,就能够被正常的解析,这也是PLY格式所具备的灵活性特色。
PLY文件格式的规范及其解析的源代码都是开放的,可以从参考文献中找到相关的下载。最著名的就是Greg Turk在1994年发布的解析代码,Turk似乎也是PLY格式的开发者之一。

参考文献
1.The Stanford 3D Scanning Repository
2.MAC+PC+UNIX PLY reading/writing
3. Large Geometry Models Archieve
4. Power Plant Model
5. The PLY Polygon File Format

上一篇:3d打印机用到的软件
下一篇:3D模型文件格式之Obj
回复

使用道具 举报

小熊  发表于 2013-10-13 10:57:02
您好,PLY文件如何在3D打印机上操作,需要那个软件转换格式?
回复 支持 反对

使用道具

推动3D打印

关注南极熊

通知

联系QQ/微信9:00-16:00

392908259

南极熊3D打印网

致力于推动3D打印产业发展

Copyright © 2024 南极熊 By 3D打印 ( 京ICP备14042416号-1 ) 京公网安备11010802043351
快速回复 返回列表 返回顶部