皆さん、私は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に適切な「インデックス」を与える必要があるかどうかです。