В моей программе (C ++ / OpenGL) я загружаю набор текстур и устанавливаю параметры текстуры следующим образом:
//TEXTURES
glGenTextures(1, &texture1);
glBindTexture(GL_TEXTURE_2D, texture1);
// set the texture wrapping parameters
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
// set texture filtering parameters
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
Я обнаружил, что анизотропная фильтрация поможет мне улучшить внешний вид сцены. Поэтому я использовал эту строку для достижения этой цели:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY, 16);
Хотя у меня не было проблем с компиляцией этой строки кода на моем ноутбуке (у которого был производитель AMD GPU), я не могу добиться того, чтобы скомпилировать этот фрагмент кода на моем другом компьютере, используя Intel® R Graphics HD 530 (Skylake GT2) ,
В частности, попытка скомпилировать этот кусок кода с использованием g ++ выдает следующую ошибку:
error: ‘GL_TEXTURE_MAX_ANISOTROPY’ was not declared in this scope
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY, 16);
В частности, запустив в моем терминале Linux следующую команду:
glxinfo | grep -i opengl
раскрывает следующую информацию о моем поставщике графических процессоров и поддержке OpenGL:
Я понимаю, что ANISOTROPIC FILTERING был включен в ARB_texture_filter_anisotropic , но я, честно говоря, не знаю, как проверить, поддерживает ли мой поставщик GPU расширение, и, если он это делает, как мне его сделать Можно ли использовать Анизотропную фильтрацию?
Кстати: я использую glfw3 и загрузчик GLAD.