Загрузка «индексов» из формата Wavefront OBJ - PullRequest
3 голосов
/ 03 декабря 2010

Я разрабатываю приложение для Android с OpenGL ES 2.0.

Я хочу загрузить экспорт, выполненный с помощью Blender 2.49b, в формате Wavefront OBJ.Я определил положение вершины, нормаль и текстуру.

Я хочу использовать glDrawElements (режим GLenum, счетчик GLsizei, тип GLenum, индексы const GLvoid *) для рисования моего меша, но я не знаю, как получитьпоследний параметр, индексы, из OBJ-файла Wavefront.

Являются ли лица "индексами", которые я ищу?

Я нашел это на форуме: Face = Начало индексовс 1!

Что означает «начинать с 1!»?

Спасибо.

1 Ответ

3 голосов
/ 03 декабря 2010

Это означает, что первый индекс равен 1 вместо нуля. В массивах / коллекциях Java / C используются нулевые индикаторы, а первый элемент начинается с нуля. Индексы формата Wavefront OBJ начинаются с 1.

грани составлены для 3 значений v / vt / vn, которые являются индексами. Индексы не указываются непосредственно в формате файла. Вместо этого это порядок, в котором элементы v, vt, vn встречаются в файле. Поэтому, когда вы анализируете файл, вы должны отслеживать, сколько вершин, текстур вершин и нормалей вершин вы встретили.

Для получения более подробной информации о формате вы можете обратиться к спецификации.

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

...