OpenGL各向异性过滤支持,检查结果相互矛盾

在检查是否支持各向异性过滤时,我会得到相互矛盾的结果.

if(glewIsSupported("GL_EXT_texture_filter_anisotropic") || GLEW_EXT_texture_filter_anisotropic) {
        std::cout << "support anisotropic" << std::endl;
    }

GLfloat max;
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &max);
std::cout << max << std::endl;

我机器上此部分的输出是:

16

所以看起来支持16的各向异性过滤,但是glewIsSupported和glew扩展字符串说明相反.

是否检查了GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT并且检查错误,或者是否有不同的情况?

最佳答案 显然有一个
known bug in glew,即使在OpenGL 3上下文中使用glGetString(GL_EXTENSIONS)而不是glGetStringi,它取代了OpenGL 3中的扩展查询.

所以在修补之前,扩展查询必须是done manually.

点赞