转载自:http://blog.csdn.net/lxfyzx/article/details/4997627
http://blog.csdn.net/lxfyzx/article/details/4997780
一、Ply简介
二、Ply中的结构
1、PLY的文件结构:
文件头加上元素数据列表。其中文件头中以行为单位描述文件类型、格式与版本、元素类型、元素的属性等,然后就根据在文件头中所列出元素类型的顺序及其属性,依次记录各个元素的属性数据。
2、 典型的PLY文件结构:
- 1、 头部
- 2、顶点列表
- 3、面片列表
- 4、 其他元素列表
3、简单举例
ply
format ascii 1.0 { ascii/二进制,格式版本数 }
comment made by anonymous { 注释关键词说明,像其他行一样 }
comment this file is a cube
element vertex 8 { 定义“vertex”(顶点)元素,在文件中有8个 }
property float32 x { 顶点包含浮点坐标“x”}
property float32 y { y 坐标同样是一个顶点属性 }
property float32 z { z 也是坐标 }
element face 6 { 在文件里有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
- 3) 其他说明
- 属性罗列在“element”(元素)行后面定义,既包含属性的数据类型,也包含属性在每个元素中出现的次序。一个属性可以有三种数据类型:标量,字符串和列表。属性可能具有的标量数据类型列表如下。
- 这些字节计数很重要,而且在实现过程中不能修改以使这些文件可移植。
- 使用列表数据类型的属性定义有一种特殊的格式:property list <数值类型> <数值类型> <属性名> ,这种格式,一个非负字符表示在属性里包含多少索引,接下来是一个列表包含许多整数。在这个边长列表里的每个整数都是一个顶点的索引。
名称 类型 字节数
-------------------------------
int8 字符 1
uint8 非负字符 1
int16 短整型 2
uint16