opengl 三线性和各项异性过滤

Posted qianbo_insist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opengl 三线性和各项异性过滤相关的知识,希望对你有一定的参考价值。

概念

在纹理倾斜的时候如何设置边缘模糊,否则图像看起来会很怪异,对眼睛不适合,这个技术其实ffmpeg做得非常好,在合适的参属下,ffmpeg缩小会把这些做好。

各项异性过滤

Anisotropic Filtering 图像缩小时产生闪烁,摩尔纹,锯齿,要消除这些,必须做到精确的图像过滤,同时也是非常消耗显卡的能力,需要查询能力,老的显卡上不一定会做得很好。

opengl设置

glGenTextures(1, &texture_id));
glBindTexture(GL_TEXTURE_2D, texture_id);
//Create a 2D texture with Mipmap
//下面这个函数时老版本的 3.1 版本之前
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, m_width, m_height, GL_RGB, GL_UNSIGNED_BYTE, image_data);

使用新版本的使用如下函数
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_BGRA, GL_UNSIGNED_BYTE,ptr);
glGenerateMipmap(GL_TEXTURE_2D);
注意: 这个顺序不能变,只有先产生原始纹理,才能产生mipmap,否则会出错

//显卡 Opengl 实现支持的最大各异向程度.
//获取 最大largest_supported_anisotropic;
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &largest_supp

以上是关于opengl 三线性和各项异性过滤的主要内容,如果未能解决你的问题,请参考以下文章

各项异性滤波简单介绍Anisotropic Filtering(AF)

OpenGL 中的 2D 绘图:在原始尺寸下具有像素精度的线性过滤

OpenGL和GLSL中的glTexParameter和过滤?

✠OpenGL-5-纹理贴图

如何使各向异性过滤扩展工作?

opengl GPU 纹理加速优化