紋理濾波

紋理濾波

計算機圖形學中,紋理濾波(Texture filtering)是一種針對一個使用材質貼圖的像素,使用臨近的一個或多個紋素計算其紋理顏色的方法。從數學上來說,紋理濾波是抗鋸齒的一種,但它更著重於濾掉紋理中的高頻,而不像其他抗鋸齒技術那樣著重於改善邊界顯示效果。簡單來說,它使得同一個紋理可以被用於不同的形狀,尺寸和角度,同時儘可能減少顯示時的模糊和閃爍。用戶可以權衡計算複雜度和圖像質量,在許多種紋理濾波方法中進行選擇。

基本介紹

  • 中文名:紋理濾波
  • 外文名:Texture filtering
  • 學科:計算機圖形學
  • 定義:使用紋素計算紋理顏色
  • 方法:最近鄰插值、雙線性濾波
  • 有關術語:抗鋸齒
簡介,濾波方式,反鋸齒,有關聯繫,

簡介

圖像傳遞著豐富的視覺信息,許多自然圖像和人造藝術圖像都包含紋理,例如一些牆壁和捷運上的徐鴉和繪畫,地毯、毛衣等工藝品上包含的各種重複的圖案。在人類歷史上,拼接一直是一種表示人物或者動物等場景的藝術形式,往往使用的石頭、玻璃、陶瓷等材料也構成了大量紋理區域。心理學認為,人類觀察圖像時,最先感知的是圖像的整體結構,而不是紋理細節,可見圖像的結構對於目標識別有著更重要的意義。但是很多圖像本身都含有豐富的紋理,而且對比度可能很高,識別工作面臨嚴峻挑戰。而紋理濾波算法能夠在一定程度上抑制不必要的紋理信息,突出圖像的主幹結構,該特性使得紋理濾波被更廣泛地套用在細節增強、圖像抽象、逆半調、結構提取等領域中。紋理濾波的核如是結構層和紋理層的分離,這也是圖像處理與模式識別領域的一個難點問題。
近十幾年,不斷有一些新的邊緣保持的濾波算法被提出。從巨觀來看,可以大致分為兩大類,第一類主要是基於局部的濾波方法,早期的工作包括各項異性擴散和雙邊濾波,研宄人員的不斷努力,改進了雙邊濾波的效率,同時也產生了一些基於不同理論的濾波加速算法。雖然這些算法的效果在一定程度上有些改善,但是依然擺脫不了它們的局限性。另外一類方法是基於全局最佳化的技術框架,這類方法都有一個類似的框架,即都含有一個結構保真項和一個正則項,通過求解能量函式的最優解來實現。保真項約束輸入和輸出的偏差不能太大,使得平滑後的圖像在結構上要和輸入圖像相類似;正則項又叫平滑項,目的是儘可能的平滑紋理。雖然這類基於全局的最佳化方法能取得優於其它局部濾波方法的效果,但是不可避免的會增加計算成本。即使一些加速技術不斷發展,全局最佳化的效率仍比局部濾波要低一個數量級。另外,全局最佳化框架的效果很大程度上依賴於結構保真項和正則項兩項的權值,參數很難設定。此外,在機器學習和人工智慧的火熱背景下,一些基於學習的濾波算法也相繼被提出,並取得了不錯的進展。總的來說不同的濾波方式適用於不同的紋理圖像。

濾波方式

最近鄰插值
最近鄰插值是最快速,也是最粗糙的濾波方式。最鄰近像素中心的紋素顏色將被作為像素的顏色。在紋理放大時,這種方式會導致色塊;而在紋理縮小時,則會導致閃爍和鋸齒。
最近鄰Mipmapping
這種方式先根據距離選擇最近的mipmap層級,再從其中選擇最靠近像素中心的紋素。這對閃爍和鋸齒很有效,但不能減少色塊。Mipmapping是一種常見的通過預計算減小渲染時所需濾波工作的方法。在紋理放大中,所參與計算一個像素的紋理值的紋素一般是四個或更少;而在紋理縮小中,隨著目標表面遠離視點,整個紋理尺寸可能最終將比一個像素還小,這將造成需要其上的所有紋素進行計算,這樣造成的計算量和頻寬在實時渲染中是不現實的。Mipmapping通過進行預計算,並將結果存儲在一系列更小尺寸的紋理中,避免了這種情況的發生。當目標表面逐漸遠離時,更小尺寸的紋理將自動被選用參與計算。
雙線性濾波
雙線性濾波會從最近的mipmap層次上,選擇最靠近像素中心的四個紋素,再根據他們靠近像素中心的具體進行權重插值。這時如果進行紋理放大,當像素相對於紋素移動時,像素顏色會從逐漸從一個紋素顏色變化到相鄰的紋素顏色,而不是像最近鄰插值那樣,在穿過兩個紋素的邊界時發生突變,這樣就消除色塊。雙線性濾波經常與mipmapping一起使用,但也可以單獨使用,但這時會出現閃爍和鋸齒化的問題。
三線性濾波
在使用mipmapping雙線性濾波時,當目標表面的距離變化時,會從一個mipmap層次突變到相鄰的層次。三線性濾波被用來解決這個問題,方法是在最相鄰的兩個mipmap層次上分別進行雙線性濾波,再用得到的兩個值進行線性插值。值得注意的是,當距離小於mipmap的零層次時(即紋素大小超過像素大小時),三線性插值退化為雙線性插值
各向異性濾波
各向異性過濾是現有消費級顯示卡所提供的圖像質量最佳的濾波方式。傳統的各項同性濾波中只是在正方形的mipmap層次間進行雙線性或三線性插值,但是當一個目標表面和攝像機之間角度較大時,紋理的填充面積並不是正方形,這樣便引入了模糊和閃爍等瑕疵。 於是,各向異性濾波需要對一個非方形紋理進行採樣。在一些簡單的實現中,顯示卡使用長方形的紋理取代方形紋理,達到了較好的近似效果。但是這種方式在處理邊界時效果依然不理想,原因是在傾斜的表面上,近端邊界比遠端邊界擁有更多的像素。於是一些高端顯示卡使用了梯形紋理,當然這也要求更大的運算量。

反鋸齒

反鋸齒,也譯為抗鋸齒或邊緣柔化、消除混疊、抗圖像摺疊有損等。它是一種消除顯示器輸出的畫面中圖物邊緣出現凹凸鋸齒的技術,那些凹凸的鋸齒通常因為高解析度的信號以低解析度表示或無法準確運算出3D圖形坐標定位時所導致的圖形混疊(aliasing)而產生的,反鋸齒技術能有效地解決這些問題。它通常被用在在數位訊號處理、數字攝影、計算機繪圖與數碼音效等方面,柔化被混疊的數位訊號。由於高解析度下的來源信號或連續的類比信號能夠存儲較多的數據,但在透過取樣(sampling)時將較多的數據以較少的數據點代替,部分的數據被忽略造成取樣結果有損,當機器把取樣後的數位訊號轉換為人類可辨別的類比信號時造成彼此交疊且有損,在聲音中,便會出現刺耳、不和諧的音調或是噪音。同樣,在3D繪圖時,每個圖形由像素組成,每段瞬間畫面由幀組成,因為螢幕上的像素有限,如果要表現出多邊形的位置時,因技術所限,使用絕對坐標定位法是無法做到的,只能使用在近似位置採樣來進行相對定位。由於沒有足夠的採樣來表現出3D世界中的所有物品的圖形,所以在最後圖像顯示上,這些現象便會造成在物品與物品中過渡的邊緣就會產生波浪狀、圓形、鋸齒和閃爍等有損現象,嚴重影響了畫面的質量。

有關聯繫

結構和平坦:結構反映了圖像的顯著性信息,其梯度較大;平坦區域一般是圖像的背景或是填充在不同結構之間的光滑區域,其梯度很小。因,利用梯度信息就可以將二者進行區分。紋理和平坦:首先,兩者都是指一片區域,不能說某個像素是紋理或平坦。
兩者的主要區別還是在梯度上。紋理是一種重複模式的區域,這些區域的像素顏色值是波動的,表現為圖像中就是梯度變化幅值較大,而平坦區域幾乎波動不大。此外,若紋理的尺度足夠小,紋理區域就近似於平坦區域。
結構和紋理:二者從梯度上很難進行區分,有強梯度的紋理,也有弱梯度的結構。兩者的差異主要反映在重複模式上。紋理是重複模式的區域,結構是稀疏的單一線條。而且紋理和結構都是相對而言的,同一塊區域,近處看是結構,遠看可能就是紋理。所以,在區分結構和紋理時,需要考慮尺度信息,這是度量結構紋理差異性的重要因素。

相關詞條

熱門詞條

聯絡我們