【问题标题】:Reading .ply File Manually手动读取 .ply 文件
【发布时间】:2015-02-21 04:06:02
【问题描述】:

我正在进入 .ply 文件的世界。我已经阅读了一些关于它们的信息,但是关于它们的格式的文档似乎与我的文件中的内容并不完全一致。我一直试图理解这篇文章here,但我运气不佳。

这就是我的 .ply 文件的样子,格式明智:

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

然后在几百行之后,这个:

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

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

【问题讨论】:

    标签: object vertices ply-file-format


    【解决方案1】:

    Wikipedia 为您解答。

    ply 文件以标题开头,它为您提供有关如何读取数据部分的所有相关信息。标题的重要关键字是elementproperty

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

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

    另外一个数据块用行来表征

    property list uchar uint vertex_indices
    

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

    3 0 1 2
    
    • 3 来自uchar 类型,表示有三个列表条目(所以这个面是三角形)
    • 0 1 2 是顶点的索引(来自上面的数据块)和无符号整数类型

    【讨论】:

      【解决方案2】:

      我在 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

      希望对您有所帮助。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-14
          • 2015-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-19
          相关资源
          最近更新 更多