首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Wavefront OBJ格式加载'indices‘

从Wavefront OBJ格式加载'indices‘
EN

Stack Overflow用户
提问于 2010-12-03 22:35:35
回答 2查看 4.4K关注 0票数 3

我正在使用OpenGL ES 2.0开发一个安卓应用程序。

我想加载一个导出与搅拌机2.49b在Wavefront OBJ格式。我已经确定了顶点位置,法线和纹理。

我想使用glDrawElements(GLenum模式,GLsizei计数,GLenum类型,常量GLvoid *索引)来绘制网格,但我不知道如何从Wavefront OBJ文件中获得最后一个参数,索引。

面孔是我要找的“索引”吗?

我在一个论坛上发现了这个: faces =从1开始的索引!

“从1开始!”是什么意思?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-03 22:49:02

这意味着第一个索引是1而不是0。Java/C数组/集合使用从零开始的索引,第一个元素从零开始。Wavefront OBJ格式索引从1开始。

面由3个值v/vt/vn组成,这3个值是索引。索引不是直接以文件格式指定的。相反,它是v,vt,vn元素在文件中出现的顺序。因此,在解析文件时,必须跟踪遇到的顶点、顶点纹理和顶点法线的数量。

有关格式的所有详细信息,请参阅规范。

http://www.martinreddy.net/gfx/3d/OBJ.spec

票数 4
EN

Stack Overflow用户

发布于 2020-08-06 10:39:34

wavefront .obj格式中没有索引。您是从文件加载网格数据时指定索引的人。我会做的是:

代码语言:javascript
复制
iterate per face:
    iterate every vertex of a face
        assign index here when you store the data to your own project's vector

换句话说,对于这些行中的每一行:

代码语言:javascript
复制
f 3/55/23 34/2/12 34/43/128
f ...

对于每个属性三元组,引入一个新顶点(将存储在顶点缓冲区中)和一个新索引(将存储在索引缓冲区中)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4346556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档