【发布时间】:2011-09-01 03:20:52
【问题描述】:
伙计们, 我正在尝试在我的 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 什么正确的“索引”?
【问题讨论】: