Mipmap
在三維計算機圖形的貼圖渲染中有一個常用的技術被稱為Mipmapping。為了加快渲染速度和減少圖像鋸齒,貼圖被處理成由一系列被預先計算和優化過的圖片組成的文件,這樣的貼圖被稱為 MIP map 或者 mipmap。這個技術在三維遊戲中被非常廣泛的使用。「MIP」來自於拉丁語 multum in parvo 的首字母,意思是「放置很多東西的小空間」。Mipmap 需要占用一定的內存空間,同時也遵循小波壓縮規則 (wavelet compression)。
來源
編輯Mipmapping技術在1983年由Lance Williams 發明,在他的論文 Pyramidal parametrics 有描述。[1]
如何使用
編輯Mipmap中每一個層級的小圖都是主圖的一個特定比例的縮小細節的複製品。雖然在某些必要的視角,主圖仍然會被使用,來渲染完整的細節。但是當貼圖被縮小或者只需要從遠距離觀看時,mipmap就會轉換到適當的層級。事實上,在三線性過濾(trilinear filtering)起作用時,會在兩個相近的層級之間切換。
因為mipmap貼圖需要被讀取的像素遠少於普通貼圖,所以渲染的速度得到了提升。而且操作的時間減少了,因為mipmap的圖片已經是做過抗鋸齒處理的,從而減少了實時渲染的負擔。放大和縮小也因為mipmap而變得更有效率。
如果貼圖的基本尺寸是256x256像素的話,它mipmap就會有8個層級。每個層級是上一層級的四分之一的大小,依次層級大小就是:128x128;64x64;32x32;16x16;8x8;4x4;2x2;1x1(一個像素)。例如在一個場景中,渲染貼圖需要填滿的空間大小是40x40像素的話,如果沒有三線性過濾,那32x32 會被放大顯示,或者有三線性過濾,會在64x64和32x32之間切換。最簡單的生成貼圖的方法就是依次做平均,當然也可以用更加高級的算法。