【问题标题】:Parse OBJ file to get vertex normals?解析 OBJ 文件以获取顶点法线?
【发布时间】:2018-01-24 20:52:31
【问题描述】:

我希望能够加载 OBJ 文件,包括顶点法线。 但是我很快遇到了一个问题,Blender 给我每张脸 1 个法线,我不明白如何将它链接到我的顶点。

这是 obj 文件:

# Blender v2.78 (sub 0) OBJ File: ''
# www.blender.org
o Cube
v 1.000000 -1.000000 -0.555273
v 1.000000 -1.000000 1.444727
v -1.000000 -1.000000 1.444726
v -1.000000 -1.000000 -0.555274
v 1.000000 1.000000 -0.555273
v 0.999999 1.000000 1.444727
v -1.000000 1.000000 1.444726
v -1.000000 1.000000 -0.555273
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 1.0000 -0.0000 0.0000
vn 0.0000 -0.0000 1.0000
vn -1.0000 -0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
s off
f 1//1 3//1 4//1
f 8//2 6//2 5//2
f 5//3 2//3 1//3
f 6//4 3//4 2//4
f 3//5 8//5 4//5
f 1//6 8//6 5//6
f 1//1 2//1 3//1
f 8//2 7//2 6//2
f 5//3 6//3 2//3
f 6//4 7//4 3//4
f 3//5 7//5 8//5
f 1//6 4//6 8//6

还有参数 The paramters to export to OBJ

Si 有一个立方体,有 6 个面、8 个顶点、12 个三角形和 6 个顶点法线。 如何在顶点和面之间建立链接。我认为每个顶点一个 VN 会更简单。在我在网上看到的例子中是这样的。

但是在这里我需要弄清楚如何在两者之间建立联系,所以我想我必须复制两个顶点,因为每个面的法线都会不同。

编辑:已解决,我误解了多边形的书写方式每一对,是一对顶点位置/顶点法线

【问题讨论】:

  • 我不明白。如果您希望每个顶点具有唯一的法线,则必须为每个面创建一个唯一的顶点。所以你需要有 nFaces * 3 个顶点,每个顶点都有一个位置和法线。没有办法解决它。
  • 您需要将此文件转换为适合您的应用程序的内存布局,并在必要时复制信息
  • @Rabbid76 好的,这是我错过的部分,尽管它应该显示顶点的顺序。所以我想当顶点从一种用途变为另一种用途时,我会复制顶点。非常感谢。

标签: c++ opengl wavefront


【解决方案1】:

解决了,我误解了多边形的写法每一对,是一对顶点pos//顶点法线。

为了构建我的模型,当同一个顶点具有不同的法线时,我需要创建新的顶点,以便能够正确地将其发送到 openGL。

因为在 openGL 中一个顶点有一个法线,但在 obj 文件中没有。所以我要让 OBJ 文件适应我的数据模型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 2020-05-15
    • 2012-12-18
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多