Как работает индексирование коробки в этом файле gltf? - PullRequest
1 голос
/ 13 июня 2019

Итак, насколько я понимаю, если я хочу визуализировать прямоугольник с использованием индексированных треугольников, мне понадобится 8 вершин (для 8 угловых точек) и 36 индексов (у прямоугольника 6 сторон, по 2 треугольника на сторону и 3 индекса на треугольник)., 6 * 2 * 3 = 36).

Итак, рассмотрим найденный файл gltf здесь .Это правильный файл, и я вижу правильное количество вершин и индексов.Однако индексы:

[0, 1, 2, 3, 2, 1, 4, 5, 6, 7, 6, 5, 8, 9, 10, 11, 10, 9, 12, 13, 14, 15, 14, 13, 16, 17, 18, 19, 18, 17, 20, 21, 22, 23, 22, 21]

, если я правильно их прочитал.Я думал, что эти числа никогда не поднимутся выше 7 (так как для индексации есть только 8 вершин).Я неправильно прочитал файл или как работает индексация?

1 Ответ

2 голосов
/ 13 июня 2019

Вы правильно прочитали файл.За исключением того, что у куба нет 8 вершин.Он имеет 24. Это так, потому что, кроме хранения данных о положении, они также хранят нормали .OpenGL допускает одиночное индексирование, то есть позиции, нормали, тангеты и т. Д. Не могут быть проиндексированы отдельно.Это означает, что некоторые вершины должны быть продублированы для правильной индексации.Это хорошо объясняется здесь .

...