首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动读取.ply文件

手动读取.ply文件
EN

Stack Overflow用户
提问于 2015-02-21 12:06:02
回答 3查看 2.7K关注 0票数 4

我进入了.ply文件的世界。我读了一些关于它们的文档,但是关于它们的格式的文档似乎与我的文件中的内容不太一致。我一直在尝试理解这篇文章,here,但是我没有太多的运气。

下面是我的.ply文件的格式:

代码语言:javascript
复制
element vertex 940
property float x
property float y
property float z
property float nx
property float ny
property float nz
property float s
property float t
element face 1559
property list uchar uint vertex_indices
end_header
0.106050 -0.077401 2.338200 -0.234779 0.430097 -0.871700 0.766400 1.131300
0.093450 -0.093151 2.345250 -0.618366 0.706809 -0.343486 0.742100 1.116300
0.106050 -0.075601 2.355600 -0.792810 0.606189 -0.062685 0.774600 1.120500
0.096000 -0.103051 2.327850 0.044801 0.552751 -0.832118 0.731200 1.123200
0.057600 -0.110401 2.323950 -0.333872 0.740287 -0.583483 0.726800 1.104800

然后在几百行代码之后,如下所示:

代码语言:javascript
复制
3 0 1 2
3 1 0 3
3 1 3 4
3 4 5 1
3 4 6 5
3 4 7 6
3 4 8 7
3 8 4 3
3 3 9 8
3 3 10 9
3 10 3 0
3 0 11 10
3 11 0 12
3 12 13 11
3 12 14 13
3 14 12 15
3 15 16 14
3 16 15 17
3 17 18 16
3 17 19 18
3 19 17 20
3 20 21 19
3 20 22 21
3 22 20 23
3 22 23 24

就像我说的,我正在尝试理解它,这样我就可以编写自己的程序来获取顶点并将它们连接起来,以改造对象。有人能帮上忙吗?

EN

回答 3

Stack Overflow用户

发布于 2015-07-20 20:59:44

Wikipedia已经为您提供了答案。

ply-file以一个头文件开始,它为您提供了有关如何读取数据部分的所有相关信息。header的重要关键字是elementproperty

element关键字引入了一个描述数据的新部分。在您的示例中有两个。第一个用于存储顶点数据,另一个用于存储人脸数据。

property关键字引入了此数据节的新属性。它后面是数据的类型和类型。xyz表示顶点位置信息,nxnynz表示属于顶点的法线信息,st表示顶点的纹理坐标。数据块中的信息按出现的顺序存储。

另一个数据块由行表示

代码语言:javascript
复制
property list uchar uint vertex_indices

第一个未知关键字是list,表示属性vertex_indices的数据存储在列表中。uchar是指存储此属性的列表条目数量的数据类型,而uint是ech列表条目的类型。让我们来看看你的例子:

代码语言:javascript
复制
3 0 1 2

  • 3来自类型uchar并表示有三个列表条目(因此此面是一个triangle)
  • 0 1 2是顶点的索引(来自上面的数据块)和来自类型uchar

的索引

票数 3
EN

Stack Overflow用户

发布于 2015-05-17 14:26:00

我在java中找到了一个演示应用程序,它恰好呈现了这样的格式:它叫做jply,可以在GITHUB:https://github.com/smurn/jPLY上找到。还有一些例子:http://quabr.com/19609248/rendering-ply-files-in-opengl http://1987.io/questions/2365561/android-and-opengl-how-display-faces

希望能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2019-02-26 14:00:10

可以存储每个面的法线(面:-通常由3个顶点组成)。在.ply文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28641965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档