парни, Я пытаюсь воспользоваться GLVERVEXATTRIBDIVISOR в моем рисунке OpenGL Instance.
Это работает в NV-карте, но она не работает на карте ATI. Ничего не рисует.
От GlextionsionViewer, он показывает оба этих карт, поддерживает GLVEXATTRIBDIVISOR / InstanceStream. В работе не было ошибки.
Я не знаю, если это связано с моим неправильным использованием.
Я помещаю данные экземпляра в отдельном буфере массива вершины, затем сопоставьте его в 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);
}
Ключевым вопросом является то, что правильный «индекс» должен дать GLVERVEXATTRIBDIVISORARB, если я пытаюсь поставить данные экземпляра на GL_MULTITEXCoord0?