各位好,我正在尝试在我的OpenGL实例绘图中使用glVertexAttribDivisor。
在NV显卡中它可行,但在ATI显卡中无效,没有进行任何绘制。
从GlExtensionViewer中可以看到这两个显卡都支持glVertexAttribDivisor/ InstancedStream,运行时也没有出现错误。
我不知道这是否是由于我的错误用法造成的。
我将实例数据放在单独的顶点数组缓冲区中,然后将其映射到gl_MultiTexCoord0~3中。实例数据是世界矩阵。
代码如下。
for( int i=0;i<3;i++)
{
glClientActiveTexture(kGL_TEXTURE0 + i);
glTexCoordPointer(size, type, stride, i*4*sizeof(float));
int instanceVertexAttribIndex = i + 8;
glVertexAttribDivisorARB(instanceVertexAttribIndex, 1);
}
重点问题是,如果我尝试将实例数据放在gl_MultiTexCoord0上,那么我应该给glVertexAttribDivisorARB哪个正确的“index”?