如何实现各向异性过滤

我正在加载一个纹理,并使用glGenerateMipmap()来达到某种程度的mipmaping。

我在nVidia gt 555m和Intel HD 3000上获得了不同的结果。

nVidia渲染的纹理不是用各向异性过滤,而是由intel HD 3k渲染的。 如何为不同的GPU手动调整此function?

在nVidia上纹理的拼贴也更加明显! 在这里输入图像描述

在这里输入图像描述 在glGenerateMipmap()的描述中,指定了glGenerateMipmap的工作方式对于OpenGL的不同实现是不同的。

这是与glHint()GL_FASTEST,GL_NICEST和GL_DONT_CARE? 还是我更好地自己亲手制作纹理?

如果具有EXT_texture_filter_anisotropic扩展名,则可以使用glTexParameterf设置最大纹理各向异性参数,以允许驱动程序在纹理过滤期间获取更多采样。

代码片段:

 float aniso = 0.0f; glBindTexture(GL_TEXTURE_2D, texName); glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &aniso); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, aniso);