我一直在研究与android相关的一些3d东西,特别是opengl ES 2.0。在我的学习路径中,所有(大多数)示例都向您展示了如何获取obj文件(wavefront .obj)并从中删除顶点。在进一步阅读之后,你会发现obj文件和其他一些文件类型(那些流行的文件类型)决定采用自己的方式"尽管大多数3d库不能支持独立索引的网格(顶点,法线和纹理坐标的单独索引),但这些文件类型无论如何都使用了多个索引网格。
所以,无论如何,我的问题是:
我在一个地方读到,存在的一些文件类型提供了轻松导入opengl(即没有所有疯狂的随机电动幻灯片哈利姆摇动我必须对obj文件中的数据做的事情)。有没有人知道一些支持索引绘图的单个索引的文件类型(opengl / friendly)?
答案 0 :(得分:2)
尝试查看Quake的MD2格式(此处为优秀教程)http://tfc.duke.free.fr/old/models/md2.htm,专门设计用于加载到OpenGL中。这是一件好事,但它有点老了。
相比之下,OBJ格式仍然很强大,它有很多用途(简单,广泛的支持)。看起来你正走在正确的道路上,因为你似乎明白格式有顶点,法线和纹理坐标的单独索引,因此需要为你的顶点阵列创建一个单独的索引缓冲区。
让它运行良好的技巧是使用快速哈希表解决方案来存储/检索'vert / norm / tex'面部描述。 (我第一次尝试OBJ导入器花了7秒钟读取10000个面部物体,现在它已经缩短到0.5秒 - 并且可能仍然可以改进!祝你好运!