我想知道是否有可能在 OpenGL 中(通过扩展或其他方式)有一个由glVertexAttribPointer
类型函数指定的属性数组,该类型函数为每个基元(或 N 个顶点)推进一个而不是每个顶点推进一个?
例如,如果我有一个具有纯色的三角形数组,我必须为每个顶点重复相同的颜色数据,我想要的是沿着这些线:
struct pos {
uint8_t x, y;
} positions[NUM_VERTICES];
struct col {
uint8_t r, g, b;
} colors[NUM_VERTICES / 3];
当两个数组都提交给 OpenGL并使用单个元素进行渲染时colors
,每 3 个连续元素重复使用数组的一个元素positions
glVertexAttribPointer
glDrawArrays(GL_TRIANGLES, ...);
我找到了ARB_instanced_arrays
扩展,它提供了glVertexAttribDivisorARB
起初看起来很有希望的功能,但我认为它不像我描述的那样工作。