关于 opengl:glDrawArrays:所有三角形的属性相同

glDrawArrays: Same attribute for all triangles

我知道在与 glDrawArraysInstanced 和朋友一起绘制时可以设置每个实例的属性,所以我想知道是否也可以为由 < 生成的所有顶点设置一次属性(即每个实例) x1> 而不是为每个顶点单独设置它们?


当然。例如,如果您的属性是 vec4,并且属性位置是 attrLoc,您可以使用以下方法之一设置适用于整个绘图调用的属性值:

1
2
3
4
5
6
glVertexAttrib4f(attrLoc, 1.0f, 2.0f, 3.0f, 4.0f);
glDrawArrays(...);

GLfloat attrVal[4] = {1.0f, 2.0f, 3.0f, 4.0f};
glVertexAttrib4fv(attrLoc, attrVal);
glDrawArrays(...);

对于具有 1、2 和 3 个成员的向量有等效的调用。