趙 方,張軍和,彭亞雄
(貴州大學 計算機科學與信息學院,貴州 貴陽 550025)
在計算機圖形學中,最令人關注的就是圖像的真實感問題。所謂圖像的真實感就是指在計算機中生成的圖形反映客觀世界的程度[1]。早期對于真實感問題的研究大都集中在算法本身的研究上,但是要把復雜的客觀世界中各種細微結構用幾何模型直接表示出來不僅難以滿足實時的需求,而且計算量龐大,所以紋理映射技術應運而生。紋理映射技術即通過光滑反光物體對周遭環境的反映,為其增加偽擬真實效果。但是紋理映射必須使用反走樣方法。Willimas發明的mip-map技術是專為紋理映射設計的最普通的反走樣方法。這種方法在濾波過程中的代價是非常大的[2],不滿足實時的需求性。在此算法的基礎上,對映射區域的邊長d采用另外一種求解方法,經實驗驗證,能得到很好的效果,有效解決走樣問題。
紋理映射是指將紋理空間中的紋理像素映射到屏幕空間中的過程,在紋理映射中經常會產生走樣。走樣是當紋理周期接近一個像素大小時,在紋理貼圖中看到的某種圖像的假象。產生走樣是因為對連續圖像進行了采樣,并且沒有在足夠高的分辨率下采樣來捕捉高空間頻率或圖像細節[3]。在紋理映射中會把將紋理圖案的像素映射到不同景物表面上,當屏幕空間中各像素的可見曲面區域與紋理圖案像素大小匹配時,它們之間就形成一種一對一直接的映射。如果景物表面在平面上的投影區域較小時,那么位于平面內的曲面區域映射到紋理平面上后極有可能覆蓋多個紋理像素。所以必須取這一區域上紋理顏色的平均值作為當前平面像素內可見區域的平均紋理屬性。如果仍基于屏幕像素中心在紋理平面是那個的點做采樣,就會產生嚴重走樣現象[4]。這時就需要用紋理映射反走樣技術來解決此類問題。
紋理映射反走樣(anti— aliasing)技術是用以減少或消除走樣的技術。紋理映射中的反走樣很困難,我們需要找到像素的前像并對落在前像范圍內的 (,)Tuv的值進行加權求和,從而得到像素的紋理強度。但是前像的形狀會隨著像素而變化,并且濾波的代價也因此而變得很高[5]。Willimas采用了逆向映射的方法來解決反走樣問題。其流程圖如圖1所示。

圖1 逆向映射流程
這種方法是建立在預先計算,以及像素逆像接近正方形這個假設的基礎上。正是這種接近使反走樣或濾波操作能預先被處理[6]。Willimas沒有使用單幅圖像組成的紋理域,而是使用多幅圖像組成的紋理域來降低分辨率。這些圖像是由原始圖像平均化后得到的。這種方法在一定程度上有其相應的局限性。現將映射區域的邊長d采用另外一種求解方法,可以避免上述方法所自有的局限性,能得到較好的紋理映射效果,使走樣問題得到有效解決。Willimas提出的Mip-Map紋理映射反走樣技術方法,該算法的基本思想是用合適的正方形來近似表示每一像素在紋理平面上的映射區域,預先將紋理圖像表示成具有不同分辨率的紋理數組,作為紋理查找表,其中高一分辨率圖像取平均值作為低一分辨率的圖像值[7]。
Mip-Map方法是在確定了屏幕上每一個象素內可見面的紋理顏色時,則需要計算幾個參數,包括屏幕象素內可見表面區域在紋理平面上所映射區域的邊長d和屏幕象素中心在紋理平面上映射點的坐標(,)uv,其中d是屏幕象素內可見表面在紋理平面上近似正方形映射區域的中心,可以通過取景變換逆變換和紋理映射變換來求得,d取為該近似正方形的邊長。其正方形逼近像素圖如圖2所示。

圖2 正方形逼近像素
Willimas通過下式求d:

研究表明,基于這種d值的算法在實際渲染中會產生很大的誤差,因此尋找到一個合適的d值的計算公式,使得渲染出來的圖像不會和實際產生較大的偏差,那么這將平衡在走樣和模糊之間的分界點,讓渲染出來的圖像能有較高的清晰度。下式是經改進之后的d值計算公式:

有了d值的計算公式,我們在VC++環境下進行編譯,得到了實驗結果圖,如圖3所示。

圖3 改進前后紋理圖像的對比
圖3(a)是用Willimas發明的Mip-map技術得到的圖像結果,圖3(b)是經過改進之后得到的圖像結果。可以看到,2幅圖像在質量上有明顯的改善。
在原有實驗結果的基礎上,將從時間上和每幀平均取樣數上加以系統分析,以便能更清晰的看出2種方法所具有的特征。其對比結果如表1所示。

表1 采用技術、時間及每幀取樣
一直以來反走樣技術都是實時渲染中紋理映射最為核心的問題,也是渲染出的圖像能否滿足實時性的關鍵所在,因此其算法的優良尤為重要。本文基于原算法的基礎之上,在VC++環境下,利用OpenGL圖形庫,驗證了改進后的算法能使渲染處理的圖像清晰度大大提高,并且在實驗中也得出了其性能對比圖,使其能較好的滿足實時性的需求。
[1] Alan Watt, Fabio Policarpo.3D游戲 卷1 實時渲染與軟件技術[M].北京:機械工業出版社,2005.
[2] 譚飛.帶通采樣在數字多通道中頻接收機中的應用[J].通信技術,2010,43(04):1-3.
[3] Thomas Driemyer.mental ray.渲染技術超級手冊[M].北京:人民郵電出版社,2007.
[4] 孫艷英.三維場景建模及其實時渲染方法[D]. 武漢:武漢理工大學,2004.
[5] 顧欽.基于紋理映射的快速渲染技術研究[D].天津:天津大學,2004.
[6] 王秀敏,汪毓鐸,張洋,等.通信系統中 FIR數字濾波器的設計研究[J].通信技術,2009,42(09):3-6.
[7] 陳斌.三維圖形引擎中凹凸紋理映射技術的研究與實現[D].成都:電子科技大學,2006.