Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.223.114.55] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Программирую графику на openGL. Столкнулся с проблемой при работе с текстурами. А именно, при определении типа фильтрации текстуры. GL_NEAREST - полет нормальный. GL_LINEAR - полет нормальный. GL_LINEAR_MIPMAP_LINEAR - косяк. Код для создания третей текстуры. Для первых двух соответственно GL_NEAREST и GL_LINEAR. AUX_RGBImageRec *imgTexture = auxDIBImageLoad("data/img.bmp"); glGenTextures(3, &Texture[2]); glBindTexture(GL_TEXTURE_2D, Texture[2]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, 3, imgTexture->sizeX, imgTexture->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, imgTexture->data); Скрин прилагается :-) Собственно вопрос: какова причина такого поведения? Буду благодарен за любые информативные ответы. |
Сообщ.
#2
,
|
|
|
При использовании mipmaps надо их генерировать. Есть несколько способов это делать: Может с младшими номерами версий для аппаратной генерации я чуть напутал, но в общем примерно так, точнее - см. спецификации на OpenGL.org
|
Сообщ.
#3
,
|
|
|
Спасибо за детальный ответ, mitrich.
Ты мне очень помог. Буду копать OpenGL дальше, еще со многим предстоит разобраться) |
Сообщ.
#4
,
|
|
|
Примечание: самый надежный вариант - последний.
Собственно, думаю, в драйверах на функцию генерации уровней не обращают внимания, т.к. любая вменяемая программа все равно генерит уровни самостоятельно. |