




已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
精品文檔反走樣設計與實現(xiàn)學 生 董慶洋班 級 2012級四班反走樣設計與實現(xiàn)董慶洋摘 要:圖形圖像技術是現(xiàn)代社會信息化的重要技術,而走樣卻是數字化表示圖形圖像的必然產物。為了提高圖形的顯示質量,需要減少或消除走樣現(xiàn)象,用于減少或消除這種效果的技術稱為反走樣。消除或減緩走樣現(xiàn)象,給人視覺上產生更舒適光滑的圖形,在圖形界面已成為人機交互主流方式的今天,具有一定的應用價值。本文介紹了幾種常用的反走樣方法,主要有:提高分辨率來顯示圖形對象、區(qū)域采樣、加權區(qū)域采樣以及改進的反走樣方法:Wu像素反走樣。關鍵詞:走樣;反走樣;過取樣;區(qū)域取樣;加權區(qū)域取樣;Wu像素反走樣1.引入走樣與反走樣光柵圖形顯示器是目前使用最廣泛的圖形顯示器,因為它具有以下優(yōu)點:光柵掃描顯示器具有固定的刷新順序,掃描從屏幕的左上角開始,從左到右,從上到下的順序進行刷新,從而刷新控制部件得以簡化,節(jié)約了成本。在光柵顯示系統(tǒng)中,構成圖形的最小圖形元素是像素,這樣只要計算屏幕上位于給定區(qū)域以內的所有像素,并且賦予一定的顏色,就完成了圖形的繪制。光柵顯示器中的圖形由像素構成,而每一個像素又可呈現(xiàn)出多級灰度或不同的顏色值,顏色豐富,顯示出來的圖形具有更好的視覺效果。光柵掃描顯示器是一個畫點設備,與圖形的復雜度無關,刷新頻率固定,因此不會像隨機掃描顯示器那樣出現(xiàn)閃爍現(xiàn)象,人眼看上去更舒服。但光柵顯示器也有它的缺陷,數學意義上的圖形是由無線多個連續(xù)的、面積為零的點構成,而光柵顯示系統(tǒng)中用來表示圖形的卻是一個個離散的,具有一定面積的像素。用離散的像素來表示連續(xù)的圖形時會出現(xiàn)失真,也就稱為走樣。光柵顯示系統(tǒng)為何會出現(xiàn)走樣呢?光柵圖形顯示器上被顯示的線段、字符、圖形及背景色都按像素點一一存儲在幀緩沖存儲器中。當我們要畫一條直線時,它通常不可能完全精確地從一個可編址的像素點畫一條直線到另一個可編址的像素點,只可能用盡可能靠近這條直線路徑的像素點集來近似地表示這條直線。顯然只有畫水平線、垂直線時,像素點集在直線路徑上的位置才是準確的,其他情況下的直線均或多或少地存在階梯狀(鋸齒狀)的現(xiàn)象。光柵圖形的走樣現(xiàn)象除了上述鋸齒狀邊界外,還有圖形細節(jié)失真,狹小圖形遺失等現(xiàn)象。為了提高圖形的顯示質量,需要減少或消除走樣現(xiàn)象,這種用于減少或消除走樣現(xiàn)象的技術稱為反走樣技術。2.實現(xiàn)反走樣技術的一些方法2.1 過取樣技術一種簡單的反走樣方法是以較高的分辨率顯示對象,如圖1。假設把顯示器分辨率提高一倍,直線經過兩倍的像素,鋸齒也增加一倍,但同時每個階梯的寬度也減小了一倍,所以顯示出的直線段看起來就平直光滑了一些。這種反走樣方法是以4倍的存儲器代價和掃描轉換時間獲得的。因此,增加分辨率雖然簡單,但是不經濟的方法,而且它也只能減輕而不能消除鋸齒問題。但是它的思想給我們以后的反走樣方法一定的啟示。 (1)圖1 分辨率提高一倍,階梯程度減小一倍一種可行的反走樣方法:在較高分辨率下用點取樣方法計算,然后對幾個像素的屬性進行平均得到較低分辨率下的像素屬性,這種技術稱為過取樣(Supersampling),或后濾波(Postfiltering)。該技術是把顯示器看成是比實際更細的網格來增加取樣率,然后根據這種更細的網格使用取樣點來確定每個屏幕像素合適的亮度等級。2.1.1 提高分辨率方法過取樣方式的一個簡單實現(xiàn)是用較高的分辨率進行計算,如圖2,在x方向和y 方向上把分辨率提高一倍,使每個像素都對應4個子像素,然后掃描轉換求得各子像素的顏色亮度,再對4個像素的顏色亮度進行平均,得到較低分辨率下的像素顏色亮度。由于像素中可供選擇的子像素最大數目是4,因此,該例中提供的亮度等級數是5。圖中,編號為1和7的像素亮度級別是1,編號為2,3,4,5和6的像素亮度是2。通過這個方法為圖中的每個像素設定不同的灰度值,可以使顯示出來的直線看起來平滑一些,達到減少走樣現(xiàn)象。圖2 簡單的過取樣方式2.1.2 基于加權模板的過取樣另一種過取樣方式(重疊過取樣)。為了得到更好的效果,在對一個像素點進行著色處理時,不僅僅只對其本身的子像素進行采樣,同時對其周圍的多個像素的子像素進行采樣,來計算該點的顏色屬性。如圖3所示。由于接近像素區(qū)域中心的子像素在決定像素的顏色亮度值中發(fā)揮著重要的作用,因此過取樣算法中采用了加權平均的方法來計算顯示像素的顏色亮度值(基于加權模板的過取樣)。圖4示出了33像素分割常采用的加權模板。中心子像素的權是角子像素的4倍,是其他子像素的2倍,中心子像素的加權系數是1/4,頂部和底部及兩側子像素的加權系數是1/8,而角子像素的加權系數是1/16。 圖3 重疊過取樣】 圖4 常用的加權模板2.1.3 過取樣算法的實現(xiàn)對于過取樣,不管用哪一種方法都需要在內存中建立一個比現(xiàn)在大幾倍的圖,便于對像素取樣,取得像素的亮度值。具體實現(xiàn)的算法如下:void SuperSamplingLine(int xa, int ya, int xb, int yb,boolean Weighted) int dx = xb-xa+1, dy = yb-ya+1, x,y,xs,ys,i,j,s, w33= 1,2,1, 2,4,2, 1,2,1; BYTE gray; Graphics:TBitmap * big_bmp; big_bmp = new Graphics:TBitmap(); big_bmp-Width = 3*dx; big_bmp-Height = 3*dy; /設置白底色 big_bmp-Canvas-Brush-Color = clWhite; big_bmp-Canvas-FillRect(big_bmp-Canvas-ClipRect); big_bmp-Canvas-Refresh(); /設置綠筆 big_bmp-Canvas-Pen-Color = clGreen; big_bmp-Canvas-MoveTo(1,1); big_bmp-Canvas-LineTo(3*dx-1,3*dy-1); for (x=xa;x=xb;x+) xs = 3*(x-xa); for (y=ya;y=yb;y+) ys = 3*(y-ya); s = 0; for (i=xs;ixs+3;i+) for (j=ys;jCanvas-Pixelsij=clGreen) if (Weighted) s=s+wi-xsj-ys; else s+; if (Weighted) gray = (BYTE)(255.0 - s*(255.0/8.0); else gray = (BYTE)(255.0-s*(255.0/3.0); Form1-Image2-Canvas-Pixelsxy=RGB(gray,gray,gray); 2.2 區(qū)域取樣2.2.1 簡單的區(qū)域取樣在整個像素區(qū)域內進行采樣的技術稱為區(qū)域取樣,又由于像素的亮度是作為一個整體被確定的,不需要劃分子像素,故也被稱為前置濾波。直線段掃描轉換算法中均假定像素是數學上的一個點,像素顏色是由對應于像素中心的圖形中一點的顏色決定的;并且直線段是數學上抽象的直線段,它的寬度是0。但實際上像素不是一個點,而是一個有限區(qū)域。屏幕上所畫的直線不是數學意義上的無寬度的理想線段,而是一個寬度至少為一個像素單位的線條。因此,將屏幕上的直線段看成如圖5中顯示的矩形更為合理。算法中所假定的條件和實際情況之間的差距是造成走樣的原因之一。為了減少走樣,必須改變直線段的模型,從而得到了簡單區(qū)域取樣的方法,這個方法的具體步驟是:1)將直線看成具有一定寬度的狹小矩形; 2)當直線與像素相交時,求出兩者相交區(qū)域的面積;3)根據相交區(qū)域的面積,確定像素的亮度值;相交面積大的像素亮度高,相交面積小的像素亮度低。 圖5 有寬度的直線段這種方法將產生模糊的邊界,以此來減輕鋸齒效應。在圖5中,像素1約有40被線條區(qū)域覆蓋,因此該像素的亮度就設置為線條亮度的40。同樣,像素2的亮度設置為線條亮度的60,而像素3的亮度則設置為線條亮度的90,等等。對于圖5中寬度線段的任何一個像素而言,其面積S是介于0-1之間的正數,用它乘以像素的最大光強為Imax,則該像素的光強I=SImax。區(qū)域取樣中,起關鍵作用的是直線段與像素相交區(qū)域的面積。這個面積可根據直線的斜率K和直線的精確起點位置求出。如圖6中(a)所示情況為例,如果已知直線的精確起點,則可得到圖中的D值,利用D和直線斜率K可以得到相交區(qū)域的面積:12D(D/K)=(DD)/(2K)。同樣,可以計算出(b)中重疊區(qū)域的面積。圖6 重疊區(qū)域面積的計算在OpenGL中實現(xiàn)這種算法,現(xiàn)在利用改進后的Bresenham反走樣畫線算法,如下:BresenhamAntialiasingLine(int x1, int y1, int x2, int y2,int I)/ (x1, y1),(x2, y2)分別是直線的起點和終點/ I是畫線的最大亮度值int x,y,dx,dy,m,w,e;x = x1;y = y1;dx = x2x1;dy = y2y1;m = I*dy/dx;w = Im;e = I/2;SetPixel(x,y,m/2);while (x x2)if (e w)x +;e += m;elsex +;y+;e -= m;SetPixel(x,y,e); 為了簡化計算,可以利用一種求相交區(qū)域近似面積的離散計算方法:1)將屏幕像素分割成n個更小的子像素,2)計算中心落在直線段內的子像素的個數m,3) m/n為線段與像素相交區(qū)域面積的近似值。這種簡單的區(qū)域采樣也稱為非加權區(qū)域采樣,這種方法有兩個缺點:像素的亮度與相交區(qū)域的面積成正比,而與相交區(qū)域落在象素內的位置無關,這仍然會導致鋸齒效應。直線條上沿理想直線方向的相鄰兩個象素有時會有較大的灰度差。為了克服這樣的缺點,可以采用加權區(qū)域采樣方法,使相交區(qū)域對象素亮度的貢獻依賴于該區(qū)域與象素中心的距離。2.2.2 加權區(qū)域采樣在區(qū)域取樣中,我們使用覆蓋像素的連續(xù)的加權函數(Weighting Function)或濾波函數(Filtering Function)來確定像素的亮度。加權函數W(x,y)是定義在二維顯示平面上的函數。對于位置為(x,y)的小區(qū)域dA來說,函數值W(x,y)(也稱為在(x,y)處的高度)表示小區(qū)域dA的權值。將加權函數在整個二維顯示圖形上積分,得到具有一定體積的濾波器(Filter),該濾波器的體積為1。將加權函數在顯示圖形上進行積分,得到濾波器的一個子體,該子體的體積介于0到1之間。用它來表示像素的亮度。如圖7所示的盒式濾波器:圖7 盒式濾波器的加權區(qū)域取樣 除了盒式濾波器外,常用的濾波器還有圓錐濾波器和高斯濾波器(如圖8所示)。濾波器的底可以具有不同的大小,類似于過取樣加權模板的大小,但是為了獲得較好的效果,盒式濾波器的底常取作邊長為像素單位整數倍的正方形,而圓錐濾波器和高斯濾波器的底則是半徑為像素單位整數倍的圓。圖8 常用的濾波函數這種加權區(qū)域采樣的特點是:接近理想直線的象素將被分配更多的灰度值。 相鄰兩個象素的濾波器相交,有利于縮小直線條上相鄰象素的灰度差。2.3 反走樣算法的改進通常的整數畫線因為只能在整數坐標上繪圖,所以產生難看的鋸齒。因此,我們可以用一種非整數坐標改進它,Wu像素反走樣就是一種可以處理非整數坐標的方法。Wu像素的繪制原理是:1)繪制多個像素代替一個像素2)理論點位置不一定在屏幕像素的正中,這個偏差是我們按偏差的比例來繪制多個像素來代替理論像素的根據。3)繪制的多個像素灰度和要于原像素相等。一個WU直線不僅僅是看上去比一個普通直線好,它也產生更好的動畫。一個普通的直線從一個位置簡單的跳到下一個位置。然而,一條Wu直線非常悠閑的漂到下一個位置,最終的算法相當容易實現(xiàn),但是在實際應用中顯得太慢。因此,還有待于改進。3.總結在分析討論了反走樣理論知識的基礎上,本論文實現(xiàn)了普通過取樣、加權過取樣、普通區(qū)域取樣、加權區(qū)域取樣、Wu像素反走樣算法。即:在高于顯示分辨率的較高分辨率下用點取樣方法計算,然后對幾個象素的屬性進行平均得到較低分辨率下的象素屬性的技術稱為過取樣,或后濾波;在整個像素區(qū)域內進行采樣的技術稱為區(qū)域取樣,這種技術由于像素的亮度是作為一個整體被確定的,不需要劃分子像素,故也被稱為前置濾波;而加權區(qū)域取樣技術是基于這兩種技術之上:過取樣中,我們對所有子像素的亮度進行簡單平均或加權平均來確定像素的亮度;在區(qū)域取樣中,我們使用覆蓋像素的連續(xù)的加權函數(Weighting Function)或濾波函數(Filtering Function)來確定像素的亮度。對于這幾種反走樣方法的比較:過取樣是在較高分辨率下用點取樣方法計算,然后對幾個像素的屬性進行平均得到較低分辨率下的像素屬性。由于是對每個像素進行平均值計算,因此速度明顯慢了很多。普通區(qū)域取樣是將直線看成具有一定寬度的狹小矩形,當直線與像素相交時,求出兩者相交區(qū)域的面積,然后確定像素的亮度值,達到反走樣效果。區(qū)域取樣的速度要比過取樣快得多,不過從效果上來講,還是過取樣的視覺效果更好,更平滑。但由于這些方法畫線只能在整數坐標上繪圖,會產生難看的鋸齒,我們又可以選在非整數坐標上繪圖的方法Wu像素反走樣。因此,在實際應用中要根據需要來選取不同的反走樣算法。參考文獻: 1 計算機圖形學基礎/陸楓,何云峰編著 2版 北京:電子工業(yè)出版社;2008.10 高等學校規(guī)劃教材2 常進;OpenGL機載圖形生成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45725-2025農作物可見光-短波紅外光譜反射率測量
- 2025年品牌管理與傳播戰(zhàn)略試卷及答案
- 2025年護理倫理與法律風險管理試題及答案
- 《現(xiàn)代文閱讀技巧提升:高中語文閱讀教案》
- 第一次獨自面對困境的經歷作文(15篇)
- 《世界歷史綱要:初中歷史課程教案》
- 《蒸汽機的發(fā)明及其影響:初中歷史科技史教案》
- 感悟自然風光讀后感13篇
- 2024年上海行知中學高一(下)第二次月考英語試題及答案
- 一次精彩的辯論賽記事作文13篇
- 職業(yè)教育專業(yè)教學資源庫建設工作方案和技術要求
- DB14T-苜蓿草顆粒生產技術規(guī)程
- 2024至2030年中國番茄行業(yè)研究及市場投資決策報告
- 海南省2021年初中生物學業(yè)水平考試仿真模擬卷
- “職業(yè)健康達人”競賽考試題庫500題(含答案)
- DL∕T 2553-2022 電力接地系統(tǒng)土壤電阻率、接地阻抗和地表電位測量技術導則
- GB/T 44190-2024政務服務便民熱線集成規(guī)范
- 江蘇省住宅物業(yè)管理服務標準
- 湖南省長沙市2024年七年級下冊生物期末試卷附答案
- 2024年05月內蒙古包頭市總工會2024年招考49名工作人員筆試歷年高頻考點(難、易錯點)附帶答案詳解
- 城軌專業(yè)職業(yè)生涯規(guī)劃
評論
0/150
提交評論