Opengl 为什么.obj格式有一个空的面坐标?

Opengl 为什么.obj格式有一个空的面坐标?,opengl,blender,Opengl,Blender,我接着讲述了如何准备一个.obj文件解析器,最后我迷路了,不知道该怎么办 我在Blender中制作了一些非常简单的模型,并像教程中所说的那样保存了它。根据这一点,我应该有3个像这样的面坐标: f 5/1/1 1/2/1 4/3/1 f 5/1/1 4/3/1 8/4/1 f 3/5/2 7/6/2 8/7/2 f 3/5/2 8/7/2 4/8/2 f 2/9/3 6/10/3 3/5/3 f 6/10/4 7/6/4 3/5/4 f 1/2/5 5/1/5 2/9/5 f 5/1/6 6/10

我接着讲述了如何准备一个.obj文件解析器,最后我迷路了,不知道该怎么办

我在Blender中制作了一些非常简单的模型,并像教程中所说的那样保存了它。根据这一点,我应该有3个像这样的面坐标:

f 5/1/1 1/2/1 4/3/1
f 5/1/1 4/3/1 8/4/1
f 3/5/2 7/6/2 8/7/2
f 3/5/2 8/7/2 4/8/2
f 2/9/3 6/10/3 3/5/3
f 6/10/4 7/6/4 3/5/4
f 1/2/5 5/1/5 2/9/5
f 5/1/6 6/10/6 2/9/6
f 5/1/7 8/11/7 6/10/7
f 8/11/7 7/12/7 6/10/7
f 1/2/8 2/9/8 3/13/8
f 1/2/8 3/13/8 4/14/8
在我的例子中,我只有两个,中间一个是空的:

f 1//1 2//1 4//1
f 5//2 8//2 7//2
f 1//3 5//3 2//3
f 2//4 6//4 7//4
f 3//5 7//5 8//5
f 5//6 1//6 4//6
f 8//7 5//7 4//7
f 6//8 5//8 7//8
f 2//9 3//9 4//9
f 5//10 6//10 2//10
f 3//11 2//11 7//11
f 4//5 3//5 8//5

我肯定是做错了什么,但我不知道那是什么。

在OBJ文件格式中,只允许省略纹理属性。因此,
f1//12//13//1
是一个有效的三角形,仅包含位置和法线。您应该更改解析器以接受它(这应该不是很难)

很好地解释了这一点:

顶点/法线 由于纹理坐标是可选的,因此可以在不使用纹理坐标的情况下定义几何体,但在放置法线索引之前,必须在顶点索引后放置两条斜线:

f v1//vn1 v2//vn2 v3//vn3

还要记住,您也不必指定法线,并且面可以看起来像:

f 1/1 2/2 3/3

你为什么不研究这个?维基百科可以告诉你答案。。。