遊戲中開啓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