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

时间:2014-07-09 15:06:36

标签: opengl shader

我理解在使用glDrawArraysInstanced和朋友绘图时可以设置每个实例的属性,所以我想知道是否也可以为所有顶点设置一次属性(即每个实例)由glDrawArrays生成而不是为每个顶点单独设置它们?

1 个答案:

答案 0 :(得分:4)

当然可以。例如,如果您的属性为vec4,属性位置为attrLoc,则可以使用以下其中一项来设置适用于整个绘制调用的属性值:

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个成员的向量,有相同的调用。