2012-07-05 49 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的替代形式(它不同,這就是爲什麼我不稱它爲重複的原因)。簡單回答是不。不太簡單的答案是自己進行訪問和索引。