Mutliple смещения с индексированными VBO в OpenGL
У меня есть два VBO, один полный данных, другой полный индексов в этих данных. Оба являются объединением различных ячеек. Есть ли способ нарисовать эти вещи в таком формате?
Визуально:
Each [] denotes a mesh
Vertex VBO: [ vertex data ][ vertex data ][ vertex data ]
Index VBO: [indices into ^][indices into ^][indices into ^]
Есть ли способ указать смещения в массиве индексов, а также в массиве вершин? Все данные имеют одинаковый формат.
1 ответ
Если VBO связан с glVertexAttribPointer (а также с устаревшим gl…Pointer), функции принимают смещение байта в качестве параметра "данных". Вместо приведения числа к void*
Я предлагаю вам поставить функцию подписи к uintptr_t
(находится в stdint.h), что и должно происходить.
Таким же образом вы можете сместить в массив индекса с помощью glDrawElements: если привязан буфер индекса, он смещает байтовое смещение в буфер.
Другой подход будет использовать glDrawElementsBaseVertex.