OpenGL:每个原语的顶点属性数组?

时间:2012-07-05 19:48:46

标签: c opengl

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

例如,如果我有一个当前颜色为纯色的三角形数组,我不得不为每个顶点重复相同的颜色数据,我想要的是这些行:

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

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

当两个数组都使用colors提交给OpenGL并使用单个positions <呈现时,每{3}个元素重复使用glVertexAttribPointer数组的一个元素/ p>

我找到了glDrawArrays(GL_TRIANGLES, ...);扩展程序,它提供了ARB_instanced_arrays函数,它起初看起来很有希望,但我认为它不会像我描述的那样工作。

1 个答案:

答案 0 :(得分:4)

这实际上是this question about multi-indexed rendering的另一种形式(它不同,这就是为什么我不称它为副本)。简单回答是不。答案不那么简单就是自己进行访问和编制索引。