雙線性過濾和三線過濾

2021-09-10 05:45:44 字數 799 閱讀 2072

雙線性過濾(bilinear_filtering)是進行縮放顯示的時候進行紋理平滑的一種紋理過濾方法。 在大多數情況下,紋理在螢幕上顯示的時候都不會同儲存的紋理一模一樣,沒有任何失真。正因為這樣,所以一些畫素要使用紋素之間的點進行表示,在這裡我們假設紋素都是位於各個單元中心或者左上或者其它位置的點。雙線性過濾器利用這些點在畫素所表示點周圍四個最近的點之間進行雙線性插值。

侷限在紋理縮減到一半或者放大一倍的範圍內,雙線性過濾都能夠有非常好的精度。這也就是說,如果紋理在每個方向都有 256 個畫素,那麼將它縮減到 128 以下或者放大到 512 以上的時候,由於會丟掉太多的畫素或者進行了過多的平滑處理,紋理看起來就會很差。通常,可以在縮減的過程中使用 mipmap 來實現較好的效能;但是,在透檢視中的紋理上的經過雙線性過濾處理的兩個不同尺寸的 mipmap 之間的過渡將非常明顯。三線性過濾儘管比較複雜,但是可以使得過渡非常平滑。

trilinear interpolation (三線過濾)

這是一種更複雜材質影像插補處理方式,會用到相當多的材質影像,而每張的大小恰好會是另一張的四分之一。

例如有一張材質影像是512×512個圖素,第二張就會是256×256個圖素,第三張就會是128×128個圖素等等,總之最小的一張是1×1。憑藉這些多重解析度的材質影像,當遇到景深極大的場景時(如飛行模擬),就能提供高品質的貼圖效果。乙個「雙線過濾」需要三次混合,而「三線過濾」就得作七次混合處理,所以每個畫素就需要多用21/3倍以上的計算時間。還需要兩倍大的儲存器時鐘頻寬。但是「三線過濾」可以提供最高的貼圖品質,會去除材質的「閃爍」效果。對於需要動態物體或景深很大的場景應用方面而言,只有「三線過濾」才能提供可接受的材質品質。

雙線性過濾近似高斯模糊

如果使用兩遍演算法,再結合雙線性過濾,那麼對於kernel大小為5x5的高斯模糊而言,我們可以用6個texture呼叫來計算畫素的值。但是在 real time rendering 上還提到一種方法,即採用一遍演算法,最多使用9個texture呼叫來計算畫素值,這需要用雙線性過濾來近似4個畫素的加權...

bmp 雙線性插值 雙線性插值原理和實現

在對影象進行空間變換的過程中,典型的情況是在對影象進行放大處理的時候,影象會出現失真的現象。這是由於在變換之後的影象中,存在著一些變換之前的影象中沒有的畫素位置。為了說明這個問題,不妨假設有一副大小為64x64的灰度影象a,現在將影象放大到256x256,不妨令其為影象b,如圖1所示。顯然,根據簡單...

數值分析 雙線性插值(三)

雙線性插值其函式其實不是線性的,函式類似於f x,y a0 a1x a2y a3xy。也可以表示為 ax b cy d 從這種表示我們就可以看出來是兩個線性函式的乘積,由向量的叉積我們知道,得到的結果是他們的法向量。通過函式我就可以看出來,我們想要得到的插值點是位於任意一 x,y 位置上的第三維的值...