2012-07-05 50 views
3

我想知道是否可以在OpenGL(通过扩展或其他方式)具有由glVertexAttribPointer类型函数指定的属性数组,每个基元(或N个顶点)前进一个,而不是每个顶点一个?OpenGL:每个基元的顶点属性数组?

举例来说,如果我有有我目前不必重复相同颜色的数据每个顶点纯色三角形的阵列,我想反而是沿着这些路线的东西:

struct pos { 
    uint8_t x, y; 
} positions[NUM_VERTICES]; 

struct col { 
    uint8_t r, g, b; 
} colors[NUM_VERTICES/3]; 

colors阵列的一个元件,用于当两个阵列被提交到OpenGL与glVertexAttribPointer和呈示具有单个glDrawArrays(GL_TRIANGLES, ...);

我发现ARB_instanced_arrays延伸,其提供了每3个连续的positions元件重复使用函数起初看起来很有希望,但我认为它不像我描述的那样工作。

回答

4

这实质上是this question about multi-indexed rendering的替代形式(它不同,这就是为什么我不称它为重复的原因)。简单回答是不。不太简单的答案是自己进行访问和索引。