PLY格式学习

最近写论文为了使三维重建结果呈现的更加漂亮直观一些,尝试对三维空间数据进行表面重建,采用Poisson Reconstruction( 点击打开链接 )方法,该方法使用的数据格式为ply格式。

Ply格式是Stanford(Stanford Bunny )开发的一套三维mesh模型数据格式,图形学领域内很多著名的模型数据,比如Stanford的三维扫描数据库(其中包括很多文章中会见到的Happy   Buddha、Dragon、Bunny兔子),Geogia   Tech的大型几何模型库,北卡(UNC)的电厂模型等,最初的模型都是基于这个格式的。  

PLY多边形文件格式的开发目标是建立一套针对多边形模型的,结构简单但是能够满足大多数图形应用需要的模型格式,而且它允许以ASCII码格式或二进制形式存储文件。
PLY作为一种多边形模型数据格式,不同于三维引擎中常用的场景图文件格式和脚本文件,每个PLY文件只用于描述一个多边形模型对象(Object),该模型对象可以通过诸如顶点、面等数据进行描述,每一类这样的数据被称作一种元素(Element)。
PLY的文件结构同样很简单:文件头加上元素数据列表。其中文件头中以行为单位描述文件类型、格式与版本、元素类型、元素的属性等,然后就根据在文件头中所列出元素类型的顺序及其属性,依次记录各个元素的属性数据。

先来了解一下ply数据格式的具体形式:
头部 
顶点列表 
面片列表 
(其他元素列表) 

头部描述ply文件的组织形式,包含文件的数据格式是ascii还是二进制格式;
然后是文件的一个声明(版权,制作人,数据表达的内容等等);
再后是对每个元素类型的描述,如元素名 element vertex 8,表示元素类型是顶点,数量是8;
接下来是对顶点属性的描述,如 property float32 x ,表示顶点中包含浮点数x的坐标;
如有其它元素以此列下。

一般元素以下面的格式描述: 
element   <元素名>   <在文件中的个数> 
property   <数据类型>   <属性名-1> 
property   <数据类型>   <属性名-2> 
property   <数据类型>   <属性名-3> 


下载PLY格式的相关代码中会有一个ply的例子,
ply 
format   ascii   1.0   { 数据格式,  ascii/二进制   } 
comment   made   by   anonymous   {   comment表示注释,附加信息   } 
comment   this   file   is   a   cube 
element   vertex   8   {   element表示ply中的元素是点、面、还是其它, 定义“vertex”(顶点)元素,在文件中有8个   } 
property   float32   x   {   property表示元素的属性,顶点包含浮点坐标“x”} 
property   float32   y   {   y   坐标同样是一个顶点属性   } 
property   float32   z   {   z   也是坐标   } 
element   face   6   { ply中的第二个element  在文件里有6个“face”(面片)   } 
property   list   uint8   int32   vertex_index   {   “vertex_indices”(顶点素引)是一列整数   } 
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 

参考文献:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值