什么是MipMap?
MipMap(多级渐远纹理),许多个纹理,每一个纹理的纹理像素是上一个的1/2,当超过一定距离后,根据距离选择不同的纹理(有点类似LOD),
为什么使用MipMap?
当一个高像素(例如400*400)要映射到20*20的空间时,需要使用纹理过滤,纹理过滤分为GL_NEAREST(也叫邻近过滤,Nearest Neighbor Filtering)、GL_LINEAR(也叫线性过滤,(Bi)linear Filtering)
他们的效果如下:
简单理解就是 邻近过滤是在几个像素中调一个像素作为当前像素,而线性过滤就是将附近的几个像素根据距离加权插值。
邻近过滤会产生锯齿或者摩尔纹而且浪费显存,线性过滤效果虽好却又极其消耗性能。
于是!MipMap成了我们最好的选择。
MipMap的使用
MipMap也是通过线性插值得来的,每次映射上一级的纹理不过因为落到某一层纹理时,它一个像素对应原图的像素个数是远多于原本直接线性插值对应的像素个数(因为递归),于是就避免了失真
Mipmap的优点与缺点
优点:质量好、性能好
缺点:占显存(也可使用IO换显存)