Mipmap是紋理圖像的較小的預(yù)濾波變體,表示紋理的不同細(xì)節(jié)層次(LOD)。通過使用mipmap的縮小過濾器模式,Graphics Core可以設(shè)置為自動計算哪個LOD最接近將mipmap的紋理元素映射到渲染目標(biāo)中的像素,并使用正確的mipmap 進(jìn)行紋理化。
使用 Mipmap 有兩個重要的優(yōu)點(diǎn):
? 通過大幅提高紋理緩存效率來提高性能, 特別是在強(qiáng)縮小的情況下。
? 通過消除不使用 mipmapping 的紋理采樣而造成的混疊,從而提高圖像質(zhì)量。
mipmapping 的單一限制是每個圖像需要大約三分之一的紋理內(nèi)存。根據(jù)情況,與渲染速度和圖像質(zhì)量方面的好處相比,這個成本可能很小。在某些情況下,不應(yīng)使用Mipmap。具體來說,在不能合理應(yīng)用過濾的情況下,不應(yīng)使用mipmapping,例如包含非圖像數(shù)據(jù)(如索引或深度紋理)的紋理。對于從不縮小的紋理也應(yīng)該避免,例如,UI元素中的紋理元素總是與像素一一映射。
理想情況下,應(yīng)該使用諸如PVRTexTool之類的工具離線創(chuàng)建mipmap,該工具可作為PowerVR圖形SDK的一部分提供。可以在運(yùn)行時生成mipmap,這對于更新渲染紋理目標(biāo)的mipmap非常有用。在OpenGL ES中,可以使用函數(shù)glGenerateMipmap來實(shí)現(xiàn)。在Vulkan中沒有這樣的內(nèi)置函數(shù),開發(fā)人員必須手動生成它們。這不適用于PVRTC紋理,它必須離線生成mipmap。必須決定哪一個代價是最合適的,離線生成的存儲成本還是運(yùn)行時間成本(在Vulkan的情況下增加代碼復(fù)雜度)在運(yùn)行時生成mipmap。
最后,應(yīng)該注意的是,在mipmap級別之間缺少過濾可能導(dǎo)致在mipmap過渡處出現(xiàn)可見的接縫,這是一種稱為“mipmap banding”的人工制品形式。 OpenGL ES中的三線性濾波可以通過使用濾波器模式GL_LINEAR_MIPMAP_LINEAR來實(shí)現(xiàn)。在Vulkan中,過濾模式應(yīng)該設(shè)置為VK_SAMPLER_MIPMAP_MODE_LINEAR以進(jìn)行三線性過濾。這樣可以有效地消除這些接縫,從而獲得更高的圖像質(zhì)量。
-
紋理圖像
+關(guān)注
關(guān)注
0文章
3瀏覽量
6301 -
LOD
+關(guān)注
關(guān)注
0文章
17瀏覽量
9462
原文標(biāo)題:使用Mipmap有什么好處?
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論