伙计们,我正在尝试在我的 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 什么正确的“索引”?