OpenGL之Mipmap、压缩纹理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL之Mipmap、压缩纹理相关的知识,希望对你有一定的参考价值。
参考技术A Mipmap是一个功能强大的纹理技术,它可以提高渲染的性能以及提升场景的视觉质量。为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为Mipmap。mipmap有多少个层级是由glTexImage1D、glTexImage2D载入纹理的第二个参数level决定的。 层级从0开始,0,1,2,3这样递增,如果没有使用mipmap技术,只有第0层的纹理会被加载。在默认情况下, 为了使用mipmap,所有层级都会被加载,但是我们可以用纹理参数来控制要加载的层级范围。
经过Mip贴图的纹理过滤
各向异性过滤 (Anisotropic Filtering )是用来过滤、处理当视角变化导致3D物体表面倾斜时造成的纹理错误。传统的双线性和三线性过滤技术都是指"Isotropy"(各向同性)的,其各方向上矢量值是一致的,就像正方形和正方体。
各向异性过滤是最新型的过滤方法(相对各向同性2/3线性过滤),它需要对映射点周围方形8个或更多的像素进行取样,获得平均值后映射到像素点上。
在3D游戏里,设置各向异性过滤后,游戏镜头随着鼠标不断移动,物体的显示依然很清晰,画面显示稳定、真实。
我们来对比下使用了没使用各向异性过滤和使用了各向异性过滤的效果
openGL之API学习(二零四)GL_TEXTURE_MIN_FILTER GL_TEXTURE_MAG_FILTER
设置纹理过滤方式。
1、GL_TEXTURE_MIN_FILTER
GL_TEXTURE_MIN_FILTER取值GL_NEAREST GL_LINEAR GL_NEAREST_MIPMAP_NEAREST GL_LINEAR_MIPMAP_NEAREST GL_NEAREST_MIPMAP_LINEAR GL_LINEAR_MIPMAP_LINEAR,默认GL_NEAREST_MIPMAP_LINEA
2、GL_TEXTURE_MAG_FILTER
GL_TEXTURE_MAG_FILTER取值GL_NEAREST GL_LINEAR,默认GL_LINEAR。
当从纹理采样时使用的“细节级别”功能确定纹理应该被成像时,就会使用“纹理放大”功能。它将纹理放大功能设置为GL_NEAREST或GL_LINEAR。GL_NEAREST通常比GL_LINEAR更快,但它可以生成边缘更锐利的纹理图像,因为纹理元素之间的过渡没有那么平滑。GL_纹理_MAG_过滤器的初始值为GL_线性。
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
以上是关于OpenGL之Mipmap、压缩纹理的主要内容,如果未能解决你的问题,请参考以下文章