清远医疗网站建设,成都宏福樘设计公司,遵义做手机网站建设,天津seo实战培训参考资料
https://github.com/ddiakopoulos/tinyply http://paulbourke.net/dataformats/ply/ PLY文件介绍
1 PLY文件基本格式
PLY是计算机图形学中一个常用的格式#xff0c;主要用于保存多边形#xff08;通常是三角形#xff09;#xff0c;一般有ASCII保存方式和二进…参考资料
https://github.com/ddiakopoulos/tinyply http://paulbourke.net/dataformats/ply/ PLY文件介绍
1 PLY文件基本格式
PLY是计算机图形学中一个常用的格式主要用于保存多边形通常是三角形一般有ASCII保存方式和二进制保存方式两种其中后者的读写效率更佳。下图展示了一个PLY文件中保存的多个三角形。
在PLY文件中最主要的属性是顶点、三角面以及一些其他的附带属性法向、颜色等等。同时为了保证PLY文件不至于过于复杂PLY并不考虑材质、参数化等等特殊属性不具备用于图形学高级渲染的功能。除此之外PLY文件还包括文件头其中会存储一些文件说明等等信息后续会有更详细的介绍。 如下是一个基本PLY仅包含顶点和三角面的格式规范
Header //文件头记录文件的属性信息
Vertex List // 顶点坐标值通常一个顶点一行分别是xyz
Face List // 面的顶点数量以及对应的顶点编号
(lists of other elements)针对上述的格式规范以下给出一个简单的PLY文件示例及其在meshlab下的渲染结果其中红色是顶点绿色边围成的是四面体。
ply
format ascii 1.0
comment made by Greg Turk
comment this file is a cube
element vertex 12
property float x
property float y
property float z
element face 10
property list uchar int vertex_index
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
1.1 1.1 0
2.1 1.1 0
1.1 2.1 0
1.1 1.1 1
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 8 9 10
3 8 9 11
3 8 10 11
3 9 10 112 PLY文件说明
此处对ply文件做一些简要的注释说明。
// 此字符串是PLY文件第一行的固定字符表明此文件为PLY文件可以称之为“钥匙”
ply
// format用于约定PLY文件的格式有ASCII和binary两种后续数字为版本号
format ascii 1.0
// comment用于在PLY文件中写一些无关痛痒的说明
// 比如谁创建的文件啊文件大致内容啊等等之类的但是对文件读写没有影响
comment made by Greg Turk
comment this file is a cube
// element 为PLY文件的核心内容头文件
// 此处声明ply有 8个vertex
element vertex 8
// element下的property为vertex的属性此处有 x y z三种属性且都是float类型
property float x
property float y
property float z
// 此处声明ply有 6个face
element face 10
// property list表明element中一个数据具有多个属性其后的第一个uchar表示list的长度
// int vertex_index 表示的是list里存储的是vertex的编号
property list uchar int vertex_index
// 文件头结尾的标志符
end_header
// 文件头结束后存储的是顶点一行一个顶点分别是xyz
0 0 0
0 0 1
0 1 1
0 1 0
1 0 0
1 0 1
1 1 1
1 1 0
// 按照文件头的顺序存储在顶点后的数据是面
// 第一个数据是面上的顶点数量后边的数据都是顶点的id
// 此处第一种类型的面是四边形所以第一个数字是4后边是点的编号
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后边是点的编号
3 8 9 10
3 8 9 11
3 8 10 11
3 9 10 112 PLY文件顶点颜色
为了让结果更好看可以给顶点加上颜色其ply文件和meshlab渲染结果如下
ply
format ascii 1.0
comment made by Greg Turk
comment this file is a cube
element vertex 12
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
element face 10
property list uchar int vertex_index
end_header
0 0 0 255 0 0
0 0 1 0 255 0
0 1 1 0 255 0
0 1 0 255 0 0
1 0 0 255 0 0
1 0 1 0 255 0
1 1 1 0 255 0
1 1 0 255 0 0
1.1 1.1 0 255 0 0
2.1 1.1 0 255 0 0
1.1 2.1 0 255 0 0
1.1 1.1 1 0 255 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 8 9 10
3 8 9 11
3 8 10 11
3 9 10 11结语
简单总结一下ply文件ply文件最为经典的C/C读写库是tinyply此处并不想过多介绍。 同时也发现ply文件对很多特殊结构支持并不好例如 非规则多边形和三维线段。