当检查是否支持各向异性滤波时,我得到了矛盾的结果。
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足够了吗? glew检查错了吗?还是正在发生什么不同的事情?
发布于 2013-08-26 17:34:29
显然,有一个glew中已知的bug,即使在OpenGL 3+上下文中也使用了glGetString(GL_EXTENSIONS),而不是在OpenGL 3+中取代了扩展查询的glGetStringi。
因此,在进行修补之前,扩展查询必须是手工完成。
发布于 2013-10-14 20:25:58
解决鸡和蛋问题的一种可能方法是调用glGetString(GL_EXTENSIONS)并检查glGetError()是否为GL_INVALID_ENUM。只有在GL_EXTENSIONS不可用的情况下才会引发此问题。如果遇到此错误,请尝试glGetStringi。别忘了在这里检查错误。GLEW没有(从1.10 :/版本开始)。
https://stackoverflow.com/questions/18447881
复制相似问题