Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Object 手动读取.ply文件_Object_Vertices_Ply File Format - Fatal编程技术网

Object 手动读取.ply文件

Object 手动读取.ply文件,object,vertices,ply-file-format,Object,Vertices,Ply File Format,我正在跳入.ply文件的世界。我读过一些关于它们的资料,但是关于它们格式的文档似乎与我的文件不太一致。我一直在努力理解这篇文章,但运气不太好 这就是我的.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 eleme

我正在跳入.ply文件的世界。我读过一些关于它们的资料,但是关于它们格式的文档似乎与我的文件不太一致。我一直在努力理解这篇文章,但运气不太好

这就是我的.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

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

我发现了一个java演示应用程序,它呈现的正是这种格式:它叫做jply,可以在GITHUB上找到: 还有这些例子:

希望能有所帮助。

有答案给你

ply文件以一个标头开始,它提供了有关如何读取数据节的所有相关信息。标题的重要关键字是
元素
属性

元素
关键字引入了一个描述数据的新部分。在你的例子中有两个。第一个用于存储顶点数据,另一个用于存储面数据

属性
关键字引入此数据节的新属性。然后是数据的类型和种类
x
y
z
指的是顶点位置信息,
nx
ny
nz
指的是属于顶点的法线信息,
s
t
是顶点的纹理坐标。数据块中的信息按出现顺序存储

另一个数据块由行表示

property list uchar uint vertex_indices
第一个未知关键字是
列表
,它表示属性
顶点索引
的数据存储在列表中
uchar
是指数据类型,它存储此属性的列表条目数,
uint
是ech列表条目的类型。让我们看看您的示例:

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

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