首页 > 代码库 > 游戏中开启MipMap会导致纹理消耗内存增大多少

游戏中开启MipMap会导致纹理消耗内存增大多少

当物体与投影面的距离发生变化的时候,物体在投影面的大小也发生着变化,如果此时还是用一张尺寸大,分辨率高的纹理就会过分的消耗GPU的性能,所以我们有了MipMap可以生成一组分辨率逐渐降低的纹理序列,可是当我们开启MipMap的时候他究竟会比没有开内存相差多少?

技术分享

来源:https://en.wikipedia.org/wiki/Mipmap

先看一下他们的大小总和:

T(n) = 1 + 1/4 + 1/16 + 1/64 + ......1/4^n

然后我们求解这个公式可得:

其中:

1/4 + 1/16 + 1/64 + ......1/4^n = 1/4 + 1/4(1/4 + 1/16 + 1/64 + ......1/4^(n-1))

1/4 + 1/16 + 1/64 + ......1/4^n - 1/4(1/4 + 1/16 + 1/64 + ......1/4^(n-1)) = 1/4

因为接近于无穷 所以可约等于:

3/4(1/4(1/4 + 1/16 + 1/64 + ......1/4^n) = 1/4

然后将左右两侧除以3/4可得

(1/4(1/4 + 1/16 + 1/64 + ......1/4^n) ≈ 1/3

所以T(n) =1 + 1/3

所以开启MipMap之后产生的内存消耗与没有开启相差 4/3倍

       

 

游戏中开启MipMap会导致纹理消耗内存增大多少