OpenGL; gluBuild2DMipmaps Неверный перечислитель

Я пытаюсь реализовать mipmaps в OpenGL Framework. После попытки использовать учебник в http://www.swiftless.com/tutorials/opengl/mipmap_generation.html Я пробовал следующее

for (int i=0;i<used_textures;i++)
{
//glEnable( GL_TEXTURE_2D );
GLGETERROR("Texture set up a");

glActiveTexture(GL_TEXTURE0+i);
glBindTexture(GL_TEXTURE_2D,texhandles[i]);//bind texture - assume all are 2D
GLGETERROR("Texture set up aa");
for (int d=0;d<global_textures[i].depth;d++)
{
switch(global_textures[i].comp)
{
//There are 4 cases in the actual code but case 3 is the only one that is used based on the data file.
case 3:
//REMOVED  - glTexImage2D( GL_TEXTURE_2D,  d, GL_RGB32F, global_textures[i].sx>>d, global_textures[i].sy>>d, 0, GL_RGB, GL_UNSIGNED_BYTE, global_textures[i].texMap[d] );
gluBuild2DMipmaps(GL_TEXTURE_2D, 4, global_textures[i].sx >> d, global_textures[i].sy >> d, GL_RGB32F, GL_UNSIGNED_BYTE, global_textures[i].texMap[d]);
break;

}
}
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST_MIPMAP_LINEAR );
//REMOVED - glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
//REMOVED - glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
}

в котором закомментированные строки, начинающиеся с REMOVED, — это то, что я удаляю в minmap вместо этого согласно учебнику swiftless.com. Код ошибки get создается это окно ошибки, что мне кажется ошибкой в ​​строках glActiveTexture или glBindTexture, но я только изменил код после этого. Для второго параметра в gluBuild2DMipmaps я попытался использовать d, 1,2,3 и 4, но я все еще не совсем уверен, что это значит.

Может кто-нибудь объяснить недопустимую ошибку перечислителя и где я должен искать, чтобы это исправить?

0

Решение

Ошибка происходит, скорее всего, во второй итерации:

GL_NEAREST_MIPMAP_LINEAR не является допустимым значением для GL_TEXTURE_MAG_FILTER так как мипмаппинг может помочь только с уменьшением, а не с увеличением. Вы должны использовать GL_NEAREST или же GL_LINEAR вместо.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]