游戏中开启MipMap会导致纹理消耗内存增大多少
游戏中开启MipMap会导致纹理消耗内存增大多少
当物体与投影面的距离发生变化的时候,物体在投影面的大小也发生着变化,如果此时还是用一张尺寸大,分辨率高的纹理就会过分的消耗GPU的性能,所以我们有了MipMap可以生成一组分辨率逐渐降低的纹理序列,可是当我们开启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倍
mipmapping : 多级渐远纹理,主要是为了做贴图的缩小,贴图勾选mipmap选项后,会事先生成一组缩小后的纹理贴图,当摄像头距离纹理比较远的时候自动用较小的纹理贴图。通常会多占用33%的存储空间,这个是典型的空间换取时间的用法。
来源:https://en.wikipedia.org/wiki/Mipmap