Параметры фильтрации OpenGL и mipmap - PullRequest
2 голосов
/ 30 января 2020

При вызове

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

и

glGenerateMipmap(GL_TEXTURE_2D);

в процессе загрузки текстуры в OpenGL, что произойдет? Что преобладает или что я могу себе представить, что происходит на заднем плане?

1 Ответ

2 голосов
/ 30 января 2020

Если вы хотите использовать mipmapping , тогда функция минимизации текстуры должна быть GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR или GL_LINEAR_MIPMAP_LINEAR:
(см. glTexParameter)

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glGenerateMipmap(GL_TEXTURE_2D);

Обратите внимание, glGenerateMipmap все равно генерирует мипмапы. Если минимизировать текстуру GL_NEAREST или GL_LINEAR, то при поиске текстуры мип-карты «игнорируются».

Если минимизирующая функция GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR или GL_LINEAR_MIPMAP_LINEAR и никакие мипмапы не генерируются, тогда текстура не завершена, а доступ к текстуре вернется (0.0, 0.0, 0.0, 1.0) в программу шейдера.

...