Поскольку он «работает» с gluBuild2DMipmaps
, а не с glTexImage2D
(текстура черная, я думаю), я думаю, у вас есть текстурный фильтр на основе mipmap для текстуры (который также используется по умолчанию). Попробуйте позвонить
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); //or maybe GL_NEAREST
Всегда помните, что glTexImage2D
устанавливает только изображение для выбранного уровня mipmap (в вашем случае уровень 0), и если вы используете минифицирующий фильтр на основе mipmap (константа с _MIPMAP_
в названии), результаты текстурирование определяется только в том случае, если вы предоставляете изображения для всех уровней mipmap (что для вас делает gluBuild2DMipmaps
) или генерируете их автоматически, используя
glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
перед загрузкой изображения или новее
glGenerateMipmap(GL_TEXTURE_2D);
после того, как это обескуражено Первый требует OpenGL 1.4, а второй, я думаю, требует поддержки FBO, а также представляет собой современный способ создания mipmaps без каких-либо изменений. Эти два способа (особенно последний) также предпочтительнее устаревшей функциональности GLU.