是否在openGL 3.1中支持实例化?

时间:2015-03-30 02:15:35

标签: c++ opengl opengl-3

所以glVertexAttribDivisor似乎在3.3中受到支持。我的显卡只支持3.3,你需要glVertexAttribDivisor函数进行实例化吗?实例化是否支持其他方式,因为glVertexAttribDivisor函数在我的显卡上不起作用?

2 个答案:

答案 0 :(得分:3)

您的总帐实施可能会支持ARB_instanced_arrays扩展程序。

答案 1 :(得分:3)

glVertexAttribDivisor()不是实例化的必要条件。它增加了每个实例推进顶点属性的可能性。没有它,所有属性都会像往常一样在每个顶点前进。

这意味着您将为顶点着色器中的所有实例获取相同的顶点属性值。对于每个实例,您想要做的每件事都必须关闭内置的gl_InstanceID变量。

例如,如果要在顶点着色器中使用每个实例值,则可以将它们存储在统一缓冲区中。在着色器中,然后定义包含数组的统一块,并通过使用gl_InstanceID索引此数组来访问每个实例的值。