Краткий ответ: Вы этого не сделаете.Вместо этого вы разбиваете свои вершины на уникальные вершины, так что вы можете иметь единый индексный список для каждого атрибута.Если у вас есть несколько списков индексов, вам нужно пройти этот список индексов, реплицируя данные атрибутов (позиции, координаты текстуры и т. Д.) Для любого набора индексов, который не повторяется.
Длинный ответ: Вы не должны .
С современными аппаратными возможностями ( буферные текстуры в OpenGL 3.x и / или загрузка / сохранение изображения шейдера в 4.x), вы можете полностью прекратить конвейер атрибута и произвольно загрузить данные из буферных объектов.Тем не менее, вы не должны ожидать, что это будет почти так же быстро, как просто делать все правильно.
Если у вас нет некоторого четко определенного , нужно , чтобы сделать это таким образом (и я неэто означает, что формат вашей модели предоставляет такие данные), вам лучше делать все правильно.Помните: это то, что каждое графическое приложение, которое использует массивы при рендеринге, делало в течение последних полутора десятилетий.Вы не пропустите ни специальных аппаратных функций, ни чего-либо другого.