4

我一直在研究一些与 android 相关的 3d 东西,特别是 opengl ES 2.0。在我的学习路径中,所有(大多数)示例都向您展示了如何获取 obj 文件(wavefront .obj)并从中提取顶点。但是,在进一步阅读后,您会发现 obj 文件和其他一些文件类型(当时流行的文件类型)都决定“走自己的路”,即使大多数 3d 库不能支持独立索引的网格(顶点、法线和法线的单独索引)纹理坐标)这些文件类型无论如何都使用了多个索引网格。

所以无论如何这是我的问题:

我在一个地方读到,一些现有的文件类型可以轻松导入到 opengl 中(即,没有我必须对 obj 文件中的数据执行的所有疯狂的 shuffle 电动幻灯片哈林摇晃的事情)。有谁知道一些支持索引绘图的单个索引的文件类型(opengl / 友好)?

4

1 回答 1

2

尝试查看 Quake 的 MD2 格式(这里有很好的教程)http://tfc.duke.free.fr/old/models/md2.htm,它是专门为加载到 OpenGL 中而设计的。学习是一件好事,但是它有点老了。

相比之下,OBJ 格式仍然很强大,并且有很多优点(简单性,广泛支持)。看起来您走在正确的道路上,因为您似乎了解该格式具有顶点、法线和纹理坐标的单独索引,因此需要您为顶点数组创建单独的索引缓冲区。

让它正常工作的技巧是使用快速哈希表解决方案来存储/检索“vert/norm/tex”面部描述。(我在 OBJ 导入器上的第一次尝试需要 7 秒来读取 10000 个面部对象,现在已降至 0.5 秒 - 并且可能仍然可以改进!祝你好运!

于 2013-04-04T09:18:55.183 回答