C OpenGL:每个基本体的顶点属性数组?
我想知道在OpenGL中(通过扩展或其他方式)是否有可能由C OpenGL:每个基本体的顶点属性数组?,c,opengl,C,Opengl,我想知道在OpenGL中(通过扩展或其他方式)是否有可能由glvertexattributepointer类型函数指定一个属性数组,该函数对每个基本体(或N个顶点)前进一步,而不是对每个顶点前进一步 例如,如果我有一个三角形数组,它当前有一个纯色,我必须为每个顶点重复相同的颜色数据,我想要的是沿着这些线的东西: struct pos { uint8_t x, y; } positions[NUM_VERTICES]; struct col { uint8_t r, g, b;
glvertexattributepointer
类型函数指定一个属性数组,该函数对每个基本体(或N个顶点)前进一步,而不是对每个顶点前进一步
例如,如果我有一个三角形数组,它当前有一个纯色,我必须为每个顶点重复相同的颜色数据,我想要的是沿着这些线的东西:
struct pos {
uint8_t x, y;
} positions[NUM_VERTICES];
struct col {
uint8_t r, g, b;
} colors[NUM_VERTICES / 3];
当使用glvertexattributepointer
将两个数组提交给OpenGL并使用单个glDrawArrays(GL\u三角形,…)渲染时,colors
数组中的一个元素被重新用于每3个连续的位置
元素代码>
我发现了ARB\u instanced\u数组
扩展,它提供了glvertexattributedivisiorab
函数,起初似乎很有希望,但我认为它的工作方式与我描述的不一样。这本质上是另一种形式(它不同,这就是为什么我不称它为副本)。简单的答案是否定的。不那么简单的答案是自己进行访问和索引