Carved Marker

貼圖 filtering 與 MIP map 簡介 [Part 3]

如果重新取樣時,取樣點的間距比原來要大,即縮小圖形的時候,就會出現新的問題。最明顯的問題,在於取樣點間距放大時,相對的,取樣頻率也就減少了。這時,訊號中就可能會包含一些過高的頻率成份。所以,這時候會需要一個 low pass filter。下面是一個極端的例子:

An image with high frequency components Resample by point sampling Resample by 3×3 Gaussian filter Resample by adaptive filter
原始圖片Point sampling3×3 Gaussian filterAdaptive filter

在上圖中,原始圖形具有相當多的高頻率成份,但是並沒有超出取樣頻率的一半,所以並沒有失真的現象。但是,如果直接進行重新取樣,縮小為原來的一半時,就會出現失真的現象。可以看出,在左上角以外的三個角落都出現了原先沒有的圓形。如果使用 3×3 的 Gaussian filter 再進行重新取樣,情形就會好一些,圓形變得較為不明顯。如果使用 adaptive box filter,失真的情形就幾乎看不到了。不過,一般情形下,它會有過度模糊的現象。

事實上,對一般的情形來說,簡單的 box filter 的效果就已經很好了。事實上,要找到一個「萬用」的 filter 恐怕是不可能的。如果一個 filter 能消除失真的情形,那它通常會過於模糊。反過來說,如果一個 filter 能產生較為清晰的結果,那它通常就沒辦法有效地消除失真。所以,要使用什麼 filter 往往和圖形本身有關。

不過,如果要即時運算的話,就不太可能利用這些 filter 了。因為,如果縮小的程度愈大,就會需要愈大的 filter 才行。例如,縮小 2 倍通常 2×2 的 box filter 就可以有良好的效果。但是,如果是縮小 4 倍,就會需要 4×4 的 box filter。對於即時運算的情形,這是很麻煩的問題。

為了解決這個問題,Lance William 在 1983 年的 ACM SIGGRAPH 提出了一篇重要的論文 "Pyramidal Parametrics"。這篇論文提出了一個解決方法:如果事先把貼圖用各種大小的 filter 處理,建立許多不同大小的貼圖。將來在縮小的時候,只要選擇適當的大小,就不需要使用超過 2x2 的 filter。這個方法就是 MIP map。MIP 為拉丁文 multum in parvo(即 many things in a small place)的縮寫。

舉個例子來說:如果貼圖的大小是 256×256,可以事先計算出 128×128、64×64、32×32、…、4×4、2×2 和 1×1 的貼圖。假設現在對貼圖做重新取樣,需要縮小 5 倍,這時只要取用 64×64 的版本就可以很快得到重新取樣的結果,而不需要再對原來的貼圖做 5×5 的 filter。當然,這樣會使貼圖所需的空間增加,但是最多只會增加原來的三分之一的空間。考慮到它在速度上的優勢,這點空間其實不算什麼。

不過,即使是使用 MIP map 也無法解決所有的問題。MIP map 必需配合適當的 filter 方式,才能在某些情形下,產生較佳的結果。

[Part 1] [Part 2] [Part 3] [Part 4]

2/7/2001, Ping-Che Chen


Sorry, Traditional Chinese only. This page is encoded in UTF-8.

Copyright© 2000, 2001 Ping-Che Chen