我创建了一个 OBJ 加载器,它可以将从 3DS Max 导出的 .OBJ 文件导入我的简单 OpenGL 查看器/应用程序。其核心是在一些教程的帮助下编写的 Vector3.h。
它在我使用的几个模型上效果很好,但是我想要使用的模型有一些不同的东西没有考虑到。它的顶点有 4 个点,而不是 3 个。这是我正在使用的线的示例:
g Box02
usemtl Wood_Bark
s 4
f 1/1/1 2/2/1 3/3/1 4/4/2
f 4/1/3 3/2/3 5/3/3
第一条“f”线有 4 个我感兴趣的顶点。我的 Vertex3.h 采用 X、Y、Z。在我拥有的其他模型中,所有线都像第二条“f”线,只有 3 个元素。我得到一个顶点超出范围,所以当我去检查它发生的地方时,我看到它在这条线上,所以我假设因为这条线上有更多可以处理的数据。这是整个 Vertex3.h
这是失败的代码行。顶点是一个 Vector3。
tempVertices.push_back ( vertices[--vertex] );
我的问题是,第四点是什么?你会如何在我的 Vector3.h 文件中解释这一点?好像我需要创建一个 Vector4.h,如果只有 3 个就忽略第 4 个 var。但我想更多地了解我正在处理的事情,以及如何做到这一点的任何提示。第 4 个元素是 alpha 还是什么?应该如何使用它,或者应该在 Vector3.h 中的计算中使用它?