趙 方,張軍和,彭亞雄
(貴州大學(xué) 計(jì)算機(jī)科學(xué)與信息學(xué)院,貴州 貴陽(yáng) 550025)
在計(jì)算機(jī)圖形學(xué)中,最令人關(guān)注的就是圖像的真實(shí)感問(wèn)題。所謂圖像的真實(shí)感就是指在計(jì)算機(jī)中生成的圖形反映客觀世界的程度[1]。早期對(duì)于真實(shí)感問(wèn)題的研究大都集中在算法本身的研究上,但是要把復(fù)雜的客觀世界中各種細(xì)微結(jié)構(gòu)用幾何模型直接表示出來(lái)不僅難以滿足實(shí)時(shí)的需求,而且計(jì)算量龐大,所以紋理映射技術(shù)應(yīng)運(yùn)而生。紋理映射技術(shù)即通過(guò)光滑反光物體對(duì)周遭環(huán)境的反映,為其增加偽擬真實(shí)效果。但是紋理映射必須使用反走樣方法。Willimas發(fā)明的mip-map技術(shù)是專為紋理映射設(shè)計(jì)的最普通的反走樣方法。這種方法在濾波過(guò)程中的代價(jià)是非常大的[2],不滿足實(shí)時(shí)的需求性。在此算法的基礎(chǔ)上,對(duì)映射區(qū)域的邊長(zhǎng)d采用另外一種求解方法,經(jīng)實(shí)驗(yàn)驗(yàn)證,能得到很好的效果,有效解決走樣問(wèn)題。
紋理映射是指將紋理空間中的紋理像素映射到屏幕空間中的過(guò)程,在紋理映射中經(jīng)常會(huì)產(chǎn)生走樣。走樣是當(dāng)紋理周期接近一個(gè)像素大小時(shí),在紋理貼圖中看到的某種圖像的假象。產(chǎn)生走樣是因?yàn)閷?duì)連續(xù)圖像進(jìn)行了采樣,并且沒(méi)有在足夠高的分辨率下采樣來(lái)捕捉高空間頻率或圖像細(xì)節(jié)[3]。在紋理映射中會(huì)把將紋理圖案的像素映射到不同景物表面上,當(dāng)屏幕空間中各像素的可見(jiàn)曲面區(qū)域與紋理圖案像素大小匹配時(shí),它們之間就形成一種一對(duì)一直接的映射。如果景物表面在平面上的投影區(qū)域較小時(shí),那么位于平面內(nèi)的曲面區(qū)域映射到紋理平面上后極有可能覆蓋多個(gè)紋理像素。所以必須取這一區(qū)域上紋理顏色的平均值作為當(dāng)前平面像素內(nèi)可見(jiàn)區(qū)域的平均紋理屬性。如果仍基于屏幕像素中心在紋理平面是那個(gè)的點(diǎn)做采樣,就會(huì)產(chǎn)生嚴(yán)重走樣現(xiàn)象[4]。這時(shí)就需要用紋理映射反走樣技術(shù)來(lái)解決此類問(wèn)題。
紋理映射反走樣(anti— aliasing)技術(shù)是用以減少或消除走樣的技術(shù)。紋理映射中的反走樣很困難,我們需要找到像素的前像并對(duì)落在前像范圍內(nèi)的 (,)Tuv的值進(jìn)行加權(quán)求和,從而得到像素的紋理強(qiáng)度。但是前像的形狀會(huì)隨著像素而變化,并且濾波的代價(jià)也因此而變得很高[5]。Willimas采用了逆向映射的方法來(lái)解決反走樣問(wèn)題。其流程圖如圖1所示。
圖1 逆向映射流程
這種方法是建立在預(yù)先計(jì)算,以及像素逆像接近正方形這個(gè)假設(shè)的基礎(chǔ)上。正是這種接近使反走樣或?yàn)V波操作能預(yù)先被處理[6]。Willimas沒(méi)有使用單幅圖像組成的紋理域,而是使用多幅圖像組成的紋理域來(lái)降低分辨率。這些圖像是由原始圖像平均化后得到的。這種方法在一定程度上有其相應(yīng)的局限性?,F(xiàn)將映射區(qū)域的邊長(zhǎng)d采用另外一種求解方法,可以避免上述方法所自有的局限性,能得到較好的紋理映射效果,使走樣問(wèn)題得到有效解決。Willimas提出的Mip-Map紋理映射反走樣技術(shù)方法,該算法的基本思想是用合適的正方形來(lái)近似表示每一像素在紋理平面上的映射區(qū)域,預(yù)先將紋理圖像表示成具有不同分辨率的紋理數(shù)組,作為紋理查找表,其中高一分辨率圖像取平均值作為低一分辨率的圖像值[7]。
Mip-Map方法是在確定了屏幕上每一個(gè)象素內(nèi)可見(jiàn)面的紋理顏色時(shí),則需要計(jì)算幾個(gè)參數(shù),包括屏幕象素內(nèi)可見(jiàn)表面區(qū)域在紋理平面上所映射區(qū)域的邊長(zhǎng)d和屏幕象素中心在紋理平面上映射點(diǎn)的坐標(biāo)(,)uv,其中d是屏幕象素內(nèi)可見(jiàn)表面在紋理平面上近似正方形映射區(qū)域的中心,可以通過(guò)取景變換逆變換和紋理映射變換來(lái)求得,d取為該近似正方形的邊長(zhǎng)。其正方形逼近像素圖如圖2所示。
圖2 正方形逼近像素
Willimas通過(guò)下式求d:
研究表明,基于這種d值的算法在實(shí)際渲染中會(huì)產(chǎn)生很大的誤差,因此尋找到一個(gè)合適的d值的計(jì)算公式,使得渲染出來(lái)的圖像不會(huì)和實(shí)際產(chǎn)生較大的偏差,那么這將平衡在走樣和模糊之間的分界點(diǎn),讓渲染出來(lái)的圖像能有較高的清晰度。下式是經(jīng)改進(jìn)之后的d值計(jì)算公式:
有了d值的計(jì)算公式,我們?cè)赩C++環(huán)境下進(jìn)行編譯,得到了實(shí)驗(yàn)結(jié)果圖,如圖3所示。
圖3 改進(jìn)前后紋理圖像的對(duì)比
圖3(a)是用Willimas發(fā)明的Mip-map技術(shù)得到的圖像結(jié)果,圖3(b)是經(jīng)過(guò)改進(jìn)之后得到的圖像結(jié)果??梢钥吹?,2幅圖像在質(zhì)量上有明顯的改善。
在原有實(shí)驗(yàn)結(jié)果的基礎(chǔ)上,將從時(shí)間上和每幀平均取樣數(shù)上加以系統(tǒng)分析,以便能更清晰的看出2種方法所具有的特征。其對(duì)比結(jié)果如表1所示。
表1 采用技術(shù)、時(shí)間及每幀取樣
一直以來(lái)反走樣技術(shù)都是實(shí)時(shí)渲染中紋理映射最為核心的問(wèn)題,也是渲染出的圖像能否滿足實(shí)時(shí)性的關(guān)鍵所在,因此其算法的優(yōu)良尤為重要。本文基于原算法的基礎(chǔ)之上,在VC++環(huán)境下,利用OpenGL圖形庫(kù),驗(yàn)證了改進(jìn)后的算法能使渲染處理的圖像清晰度大大提高,并且在實(shí)驗(yàn)中也得出了其性能對(duì)比圖,使其能較好的滿足實(shí)時(shí)性的需求。
[1] Alan Watt, Fabio Policarpo.3D游戲 卷1 實(shí)時(shí)渲染與軟件技術(shù)[M].北京:機(jī)械工業(yè)出版社,2005.
[2] 譚飛.帶通采樣在數(shù)字多通道中頻接收機(jī)中的應(yīng)用[J].通信技術(shù),2010,43(04):1-3.
[3] Thomas Driemyer.mental ray.渲染技術(shù)超級(jí)手冊(cè)[M].北京:人民郵電出版社,2007.
[4] 孫艷英.三維場(chǎng)景建模及其實(shí)時(shí)渲染方法[D]. 武漢:武漢理工大學(xué),2004.
[5] 顧欽.基于紋理映射的快速渲染技術(shù)研究[D].天津:天津大學(xué),2004.
[6] 王秀敏,汪毓鐸,張洋,等.通信系統(tǒng)中 FIR數(shù)字濾波器的設(shè)計(jì)研究[J].通信技術(shù),2009,42(09):3-6.
[7] 陳斌.三維圖形引擎中凹凸紋理映射技術(shù)的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2006.