




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機圖形學反走樣設計與實現學 生 董慶洋班 級 2012級四班反走樣設計與實現董慶洋摘 要:圖形圖像技術是現代社會信息化的重要技術,而走樣卻是數字化表示圖形圖像的必然產物。為了提高圖形的顯示質量,需要減少或消除走樣現象,用于減少或消除這種效果的技術稱為反走樣。消除或減緩走樣現象,給人視覺上產生更舒適光滑的圖形,在圖形界面已成為人機交互主流方式的今天,具有一定的應用價值。本文介紹了幾種常用的反走樣方法,主要有:提高分辨率來顯示圖形對象、區域采樣、加權區域采樣以及改進的反走樣方法:Wu像素反走樣。關鍵詞:走樣;反走樣;過取樣;區域取樣;加權區域取樣;Wu像素反走樣1.引入走樣與反走樣光柵圖形顯示
2、器是目前使用最廣泛的圖形顯示器,因為它具有以下優點:光柵掃描顯示器具有固定的刷新順序,掃描從屏幕的左上角開始,從左到右,從上到下的順序進行刷新,從而刷新控制部件得以簡化,節約了成本。在光柵顯示系統中,構成圖形的最小圖形元素是像素,這樣只要計算屏幕上位于給定區域以內的所有像素,并且賦予一定的顏色,就完成了圖形的繪制。光柵顯示器中的圖形由像素構成,而每一個像素又可呈現出多級灰度或不同的顏色值,顏色豐富,顯示出來的圖形具有更好的視覺效果。光柵掃描顯示器是一個畫點設備,與圖形的復雜度無關,刷新頻率固定,因此不會像隨機掃描顯示器那樣出現閃爍現象,人眼看上去更舒服。但光柵顯示器也有它的缺陷,數學意義上的圖
3、形是由無線多個連續的、面積為零的點構成,而光柵顯示系統中用來表示圖形的卻是一個個離散的,具有一定面積的像素。用離散的像素來表示連續的圖形時會出現失真,也就稱為走樣。光柵顯示系統為何會出現走樣呢?光柵圖形顯示器上被顯示的線段、字符、圖形及背景色都按像素點一一存儲在幀緩沖存儲器中。當我們要畫一條直線時,它通常不可能完全精確地從一個可編址的像素點畫一條直線到另一個可編址的像素點,只可能用盡可能靠近這條直線路徑的像素點集來近似地表示這條直線。顯然只有畫水平線、垂直線時,像素點集在直線路徑上的位置才是準確的,其他情況下的直線均或多或少地存在階梯狀(鋸齒狀)的現象。光柵圖形的走樣現象除了上述鋸齒狀邊界外,
4、還有圖形細節失真,狹小圖形遺失等現象。為了提高圖形的顯示質量,需要減少或消除走樣現象,這種用于減少或消除走樣現象的技術稱為反走樣技術。2.實現反走樣技術的一些方法2.1 過取樣技術一種簡單的反走樣方法是以較高的分辨率顯示對象,如圖1。假設把顯示器分辨率提高一倍,直線經過兩倍的像素,鋸齒也增加一倍,但同時每個階梯的寬度也減小了一倍,所以顯示出的直線段看起來就平直光滑了一些。這種反走樣方法是以4倍的存儲器代價和掃描轉換時間獲得的。因此,增加分辨率雖然簡單,但是不經濟的方法,而且它也只能減輕而不能消除鋸齒問題。但是它的思想給我們以后的反走樣方法一定的啟示。 (1)圖1 分辨率提高一倍,階梯程度減小一
5、倍一種可行的反走樣方法:在較高分辨率下用點取樣方法計算,然后對幾個像素的屬性進行平均得到較低分辨率下的像素屬性,這種技術稱為過取樣(Supersampling),或后濾波(Postfiltering)。該技術是把顯示器看成是比實際更細的網格來增加取樣率,然后根據這種更細的網格使用取樣點來確定每個屏幕像素合適的亮度等級。2.1.1 提高分辨率方法過取樣方式的一個簡單實現是用較高的分辨率進行計算,如圖2,在x方向和y 方向上把分辨率提高一倍,使每個像素都對應4個子像素,然后掃描轉換求得各子像素的顏色亮度,再對4個像素的顏色亮度進行平均,得到較低分辨率下的像素顏色亮度。由于像素中可供選擇的子像素最大
6、數目是4,因此,該例中提供的亮度等級數是5。圖中,編號為1和7的像素亮度級別是1,編號為2,3,4,5和6的像素亮度是2。通過這個方法為圖中的每個像素設定不同的灰度值,可以使顯示出來的直線看起來平滑一些,達到減少走樣現象。圖2 簡單的過取樣方式2.1.2 基于加權模板的過取樣另一種過取樣方式(重疊過取樣)。為了得到更好的效果,在對一個像素點進行著色處理時,不僅僅只對其本身的子像素進行采樣,同時對其周圍的多個像素的子像素進行采樣,來計算該點的顏色屬性。如圖3所示。由于接近像素區域中心的子像素在決定像素的顏色亮度值中發揮著重要的作用,因此過取樣算法中采用了加權平均的方法來計算顯示像素的顏色亮度值(
7、基于加權模板的過取樣)。圖4示出了3×3像素分割常采用的加權模板。中心子像素的權是角子像素的4倍,是其他子像素的2倍,中心子像素的加權系數是1/4,頂部和底部及兩側子像素的加權系數是1/8,而角子像素的加權系數是1/16。 圖3 重疊過取樣】 圖4 常用的加權模板2.1.3 過取樣算法的實現對于過取樣,不管用哪一種方法都需要在內存中建立一個比現在大幾倍的圖,便于對像素取樣,取得像素的亮度值。具體實現的算法如下:void SuperSamplingLine(int xa, int ya, int xb, int yb,boolean Weighted) int
8、dx = xb-xa+1, dy = yb-ya+1, x,y,xs,ys,i,j,s, w33= 1,2,1, 2,4,2,
9、60; 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
10、; 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
11、,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;
12、160; for (i=xs;i<xs+3;i+) for (j=ys;j<ys+3;j+) if (big_bmp->Canvas->Pixelsij=clGreen) if (Weighted)
13、160; s=s+wi-xsj-ys; else s+; if (Weighted)
14、; 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);
15、0; 2.2 區域取樣2.2.1 簡單的區域取樣在整個像素區域內進行采樣的技術稱為區域取樣,又由于像素的亮度是作為一個整體被確定的,不需要劃分子像素,故也被稱為前置濾波。直線段掃描轉換算法中均假定像素是數學上的一個點,像素顏色是由對應于像素中心的圖形中一點的顏色決定的;并且直線段是數學上抽象的直線段,它的寬度是0。但實際上像素不是一個點,而是一個有限區域。屏幕上所畫的直線不是數學意義上的無寬度的理想線段,而是一個寬度至少為一個像素單位的線條。因此,將屏幕上的直線段看成如圖5中顯示的矩形更為合理。算法中所假定的條件和實際情況之間的差距
16、是造成走樣的原因之一。為了減少走樣,必須改變直線段的模型,從而得到了簡單區域取樣的方法,這個方法的具體步驟是:1)將直線看成具有一定寬度的狹小矩形; 2)當直線與像素相交時,求出兩者相交區域的面積;3)根據相交區域的面積,確定像素的亮度值;相交面積大的像素亮度高,相交面積小的像素亮度低。 圖5 有寬度的直線段這種方法將產生模糊的邊界,以此來減輕鋸齒效應。在圖5中,像素1約有40被線條區域覆蓋,因此該像素的亮度就設置為線條亮度的40。同樣,像素2的亮度設置為線條亮度的60,而像素3的亮度則設置為線條亮度的90,等等。對于圖5中寬度線段的任何一個像素而言,其面積S是介于0-1之間的正數,用它乘以像
17、素的最大光強為Imax,則該像素的光強I=S×Imax。區域取樣中,起關鍵作用的是直線段與像素相交區域的面積。這個面積可根據直線的斜率K和直線的精確起點位置求出。如圖6中(a)所示情況為例,如果已知直線的精確起點,則可得到圖中的D值,利用D和直線斜率K可以得到相交區域的面積:12×D×(D/K)=(D×D)/(2×K)。同樣,可以計算出(b)中重疊區域的面積。圖6 重疊區域面積的計算在OpenGL中實現這種算法,現在利用改進后的Bresenham反走樣畫線算法,如下:BresenhamAntialiasingLine(int x1, int y
18、1, 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); 為了簡化計算,可以利用一種求相交區域近似面積的離散計算方法:1)將屏幕像素分割成n個更小的子像素,2)計算中心落在直線
19、段內的子像素的個數m,3) m/n為線段與像素相交區域面積的近似值。這種簡單的區域采樣也稱為非加權區域采樣,這種方法有兩個缺點:像素的亮度與相交區域的面積成正比,而與相交區域落在象素內的位置無關,這仍然會導致鋸齒效應。直線條上沿理想直線方向的相鄰兩個象素有時會有較大的灰度差。為了克服這樣的缺點,可以采用加權區域采樣方法,使相交區域對象素亮度的貢獻依賴于該區域與象素中心的距離。2.2.2 加權區域采樣在區域取樣中,我們使用覆蓋像素的連續的加權函數(Weighting Function)或濾波函數(Filtering Function)來確定像素的亮度。加權函數W(x,y)是定義在二維顯示平面上的
20、函數。對于位置為(x,y)的小區域dA來說,函數值W(x,y)(也稱為在(x,y)處的高度)表示小區域dA的權值。將加權函數在整個二維顯示圖形上積分,得到具有一定體積的濾波器(Filter),該濾波器的體積為1。將加權函數在顯示圖形上進行積分,得到濾波器的一個子體,該子體的體積介于0到1之間。用它來表示像素的亮度。如圖7所示的盒式濾波器:圖7 盒式濾波器的加權區域取樣 除了盒式濾波器外,常用的濾波器還有圓錐濾波器和高斯濾波器(如圖8所示)。濾波器的底可以具有不同的大小,類似于過取樣加權模板的大小,但是為了獲得較好的效果,盒式濾波器的底常取作邊長為像素單位整數倍的正方形,而圓錐濾波器和高斯濾波器
21、的底則是半徑為像素單位整數倍的圓。圖8 常用的濾波函數這種加權區域采樣的特點是:接近理想直線的象素將被分配更多的灰度值。 相鄰兩個象素的濾波器相交,有利于縮小直線條上相鄰象素的灰度差。2.3 反走樣算法的改進通常的整數畫線因為只能在整數坐標上繪圖,所以產生難看的鋸齒。因此,我們可以用一種非整數坐標改進它,Wu像素反走樣就是一種可以處理非整數坐標的方法。Wu像素的繪制原理是:1)繪制多個像素代替一個像素2)理論點位置不一定在屏幕像素的正中,這個偏差是我們按偏差的比例來繪制多個像素來代替理論像素的根據。3)繪制的多個像素灰度和要于原像素相等。一個WU直線不僅僅是看上去比一個普通直線好,它也產生更好的動畫。一個普通的直線從一個位置簡單的跳到下一個位置。然而,一條Wu直線非常悠閑的漂到下一個位置,最終的算法相當容易實現,但是在實際應用中顯得太慢。因此,還有待于改進。3.總結在分析討論了反走樣理論知識的基礎上,本論文實現了普通過取樣、加權過取樣、普通區域取樣、加權區域取樣、Wu像素反走樣算法。即:在高于顯示分辨率的較高分辨率下用點取樣方法計算,然后對幾個象素的屬性進行平均得到較低分辨率下的象素屬性的技術稱為過取樣,或后濾波;在整個像素區域內進行采樣的技術稱為區域取樣,這種技術由于像素的亮度是作為一個整體被確定的,不需要劃分子像素,故
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共享單車停放點規劃規劃設計方案
- 設計院項目管理流程
- 管廊安全施工專項施工方案
- 汕頭職業技術學院《房屋建筑學課程設計》2023-2024學年第二學期期末試卷
- 集美大學《半導體芯片技術》2023-2024學年第二學期期末試卷
- 揚州大學《證券投資交易模擬》2023-2024學年第二學期期末試卷
- 南京城市職業學院《算法與數據結構實驗》2023-2024學年第二學期期末試卷
- 江西工程學院《視覺檢測技術及應用》2023-2024學年第二學期期末試卷
- 哈爾濱廣廈學院《高中思想政治課程標準與教材研究》2023-2024學年第二學期期末試卷
- 和田職業技術學院《軟件質量保證與測試實驗》2023-2024學年第二學期期末試卷
- 醫療質量安全核心制度要點釋義(國家衛健委)
- FZ/T 51011-2014纖維級聚己二酰己二胺切片
- 電子版-鐵路貨物運價規則
- 《月光下的中國》朗誦稿
- 印染工業園八萬噸日污水集中處理項目環境影響評價報告書簡本
- 單片機紅外遙控系統設計
- 第15課《驛路梨花》教學實錄
- 動物英語俚語課件
- 園林綠化種子進場檢驗記錄
- 混凝土基礎質量檢驗記錄表
- 二級社會體育指導員培訓分析課件
評論
0/150
提交評論