1
我想我明白glEnableVertexAttribArray的作用 - 它激活程序的特定属性(如果我错了,请纠正我)。glEnableVertexAttribArray修改了什么对象的状态?
我不明白,虽然是哪个对象存储这些信息。它是程序对象吗?也就是说,如果我做的:
glUseProgram(program);
glEnableVertexAttribArray(0);
再后来就做:
glUseProgram(program);
glDrawArray(...);
将在位置0的属性被启用?
或者它是否正在修改某些全局状态,每次在每次绘制调用之前需要重新设置? 或者它是否修改了VAO的状态?如果是这样,那么在没有VAO的OpenGL ES 2.0中呢?
太好了。谢谢!为了澄清,这意味着(在没有VAO的OpenGL ES 2.0中),每次需要使用一组新的顶点属性进行绘制时,我需要为每个属性调用glVertexAttribPointer()和glEnableVertexAttribArray(),对吧? – user2771609
你有没有想过? – nmr
我想不是。我结束了使用ES 2.0,所以我使用了VAO。 – user2771609