版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、圖形學(xué)論文 題 目 基本圖形生成的反走樣設(shè)計(jì)與實(shí)現(xiàn)學(xué) 生 蘇洪邁 年 級(jí) 2014級(jí)專(zhuān) 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)行知班系 別 學(xué) 院 教師教育學(xué)院哈爾濱師范大學(xué)2016年6月基本圖形生成的反走樣設(shè)計(jì)與實(shí)現(xiàn)蘇洪邁摘要:圖形圖像技術(shù)是現(xiàn)代社會(huì)信息化的重要技術(shù),而走樣卻是數(shù)字化表示圖形圖像的必然產(chǎn)物。為了提高圖形的顯示質(zhì)量,需要減少或消除走樣現(xiàn)象,用于減少或消除這種效果的技術(shù)稱(chēng)為反走樣。消除或減緩走樣現(xiàn)象,給人視覺(jué)上產(chǎn)生更舒適光滑的圖形,在圖形界面已成為人機(jī)交互主流方式的今天,具有一定的應(yīng)用價(jià)值。本文介紹了幾種常用的反走樣方法,主要有:提高分辨率來(lái)顯示圖形對(duì)象、區(qū)域采樣、加權(quán)區(qū)域采樣以及改進(jìn)的反走樣方法
2、:Wu像素反走樣。關(guān)鍵詞:走樣;反走樣;過(guò)取樣;區(qū)域取樣;加權(quán)區(qū)域取樣;Wu像素反走樣一.引入走樣與反走樣 光柵圖形顯示器是目前使用最廣泛的圖形顯示器,因?yàn)樗哂幸韵聝?yōu)點(diǎn):光柵掃描顯示器具有固定的刷新順序,掃描從屏幕的左上角開(kāi)始,從左到右,從上到下的順序進(jìn)行刷新,從而刷新控制部件得以簡(jiǎn)化,節(jié)約了成本。在光柵顯示系統(tǒng)中,構(gòu)成圖形的最小圖形元素是像素,這樣只要計(jì)算屏幕上位于給定區(qū)域以?xún)?nèi)的所有像素,并且賦予一定的顏色,就完成了圖形的繪制。光柵顯示器中的圖形由像素構(gòu)成,而每一個(gè)像素又可呈現(xiàn)出多級(jí)灰度或不同的顏色值,顏色豐富,顯示出來(lái)的圖形具有更好的視覺(jué)效果。光柵掃描顯示器是一個(gè)畫(huà)點(diǎn)設(shè)備,與圖形的復(fù)雜度
3、無(wú)關(guān),刷新頻率固定,因此不會(huì)像隨機(jī)掃描顯示器那樣出現(xiàn)閃爍現(xiàn)象,人眼看上去更舒服。但光柵顯示器也有它的缺陷,數(shù)學(xué)意義上的圖形是由無(wú)線多個(gè)連續(xù)的、面積為零的點(diǎn)構(gòu)成,而光柵顯示系統(tǒng)中用來(lái)表示圖形的卻是一個(gè)個(gè)離散的,具有一定面積的像素。用離散的像素來(lái)表示連續(xù)的圖形時(shí)會(huì)出現(xiàn)失真,也就稱(chēng)為走樣。光柵顯示系統(tǒng)為何會(huì)出現(xiàn)走樣呢?光柵圖形顯示器上被顯示的線段、字符、圖形及背景色都按像素點(diǎn)一一存儲(chǔ)在幀緩沖存儲(chǔ)器中。當(dāng)我們要畫(huà)一條直線時(shí),它通常不可能完全精確地從一個(gè)可編址的像素點(diǎn)畫(huà)一條直線到另一個(gè)可編址的像素點(diǎn),只可能用盡可能靠近這條直線路徑的像素點(diǎn)集來(lái)近似地表示這條直線。顯然只有畫(huà)水平線、垂直線時(shí),像素點(diǎn)集在直線
4、路徑上的位置才是準(zhǔn)確的,其他情況下的直線均或多或少地存在階梯狀(鋸齒狀)的現(xiàn)象。光柵圖形的走樣現(xiàn)象除了上述鋸齒狀邊界外,還有圖形細(xì)節(jié)失真,狹小圖形遺失等現(xiàn)象。為了提高圖形的顯示質(zhì)量,需要減少或消除走樣現(xiàn)象,這種用于減少或消除走樣現(xiàn)象的技術(shù)稱(chēng)為反走樣技術(shù)。二.實(shí)現(xiàn)反走樣技術(shù)的一些方法2.1 過(guò)取樣技術(shù)一種簡(jiǎn)單的反走樣方法是以較高的分辨率顯示對(duì)象,如圖1。假設(shè)把顯示器分辨率提高一倍,直線經(jīng)過(guò)兩倍的像素,鋸齒也增加一倍,但同時(shí)每個(gè)階梯的寬度也減小了一倍,所以顯示出的直線段看起來(lái)就平直光滑了一些。這種反走樣方法是以4倍的存儲(chǔ)器代價(jià)和掃描轉(zhuǎn)換時(shí)間獲得的。因此,增加分辨率雖然簡(jiǎn)單,但是不經(jīng)濟(jì)的方法,而且它
5、也只能減輕而不能消除鋸齒問(wèn)題。但是它的思想給我們以后的反走樣方法一定的啟示。 (1)圖1 分辨率提高一倍,階梯程度減小一倍一種可行的反走樣方法:在較高分辨率下用點(diǎn)取樣方法計(jì)算,然后對(duì)幾個(gè)像素的屬性進(jìn)行平均得到較低分辨率下的像素屬性,這種技術(shù)稱(chēng)為過(guò)取樣(Supersampling),或后濾波(Postfiltering)。該技術(shù)是把顯示器看成是比實(shí)際更細(xì)的網(wǎng)格來(lái)增加取樣率,然后根據(jù)這種更細(xì)的網(wǎng)格使用取樣點(diǎn)來(lái)確定每個(gè)屏幕像素合適的亮度等級(jí)。2.1.1 提高分辨率方法過(guò)取樣方式的一個(gè)簡(jiǎn)單實(shí)現(xiàn)是用較高的分辨率進(jìn)行計(jì)算,如圖2,在x方向和y 方向上把分辨率提高一倍,使每個(gè)像素都對(duì)應(yīng)4個(gè)子像素,然后掃描轉(zhuǎn)
6、換求得各子像素的顏色亮度,再對(duì)4個(gè)像素的顏色亮度進(jìn)行平均,得到較低分辨率下的像素顏色亮度。由于像素中可供選擇的子像素最大數(shù)目是4,因此,該例中提供的亮度等級(jí)數(shù)是5。圖中,編號(hào)為1和7的像素亮度級(jí)別是1,編號(hào)為2,3,4,5和6的像素亮度是2。通過(guò)這個(gè)方法為圖中的每個(gè)像素設(shè)定不同的灰度值,可以使顯示出來(lái)的直線看起來(lái)平滑一些,達(dá)到減少走樣現(xiàn)象。圖2 簡(jiǎn)單的過(guò)取樣方式2.1.2 基于加權(quán)模板的過(guò)取樣另一種過(guò)取樣方式(重疊過(guò)取樣)。為了得到更好的效果,在對(duì)一個(gè)像素點(diǎn)進(jìn)行著色處理時(shí),不僅僅只對(duì)其本身的子像素進(jìn)行采樣,同時(shí)對(duì)其周?chē)亩鄠€(gè)像素的子像素進(jìn)行采樣,來(lái)計(jì)算該點(diǎn)的顏色屬性。如圖3所示。由于接近像素區(qū)
7、域中心的子像素在決定像素的顏色亮度值中發(fā)揮著重要的作用,因此過(guò)取樣算法中采用了加權(quán)平均的方法來(lái)計(jì)算顯示像素的顏色亮度值(基于加權(quán)模板的過(guò)取樣)。圖4示出了3×3像素分割常采用的加權(quán)模板。中心子像素的權(quán)是角子像素的4倍,是其他子像素的2倍,中心子像素的加權(quán)系數(shù)是1/4,頂部和底部及兩側(cè)子像素的加權(quán)系數(shù)是1/8,而角子像素的加權(quán)系數(shù)是1/16。 圖3 重疊過(guò)取樣】 圖4 常用的加權(quán)模板2.1.3 過(guò)取樣算法的實(shí)現(xiàn)對(duì)于過(guò)取樣,不管用哪一種方法都需要在內(nèi)存中建立一個(gè)比現(xiàn)在大幾倍的圖,便于對(duì)像素取樣,取得像素的亮度值。具體實(shí)現(xiàn)的算法如下:void SuperSamplingLine(int x
8、a, 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,
9、0; 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; /設(shè)置白底色&
10、#160; big_bmp->Canvas->Brush->Color = clWhite; big_bmp->Canvas->FillRect(big_bmp->Canvas->ClipRect); big_bmp->Canvas->Refresh(); /設(shè)置綠筆 big_bmp->Canvas->Pen->Color = clGreen; big_bmp->Canvas->M
11、oveTo(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);
12、60; s = 0; for (i=xs;i<xs+3;i+) for (j=ys;j<ys+3;j+) if (big_bmp->Canvas->Pixelsij=clGreen)
13、0; if (Weighted) s=s+wi-xsj-ys; else s+; &
14、#160; if (Weighted) gray = (BYTE)(255.0 - s*(255.0/8.0); else gray = (BYTE)(255.0-s*(255.0/3.0); Form1
15、->Image2->Canvas->Pixelsxy=RGB(gray,gray,gray); 2.2 區(qū)域取樣2.2.1 簡(jiǎn)單的區(qū)域取樣在整個(gè)像素區(qū)域內(nèi)進(jìn)行采樣的技術(shù)稱(chēng)為區(qū)域取樣,又由于像素的亮度是作為一個(gè)整體被確定的,不需要?jiǎng)澐肿酉袼兀室脖环Q(chēng)為前置濾波。直線段掃描轉(zhuǎn)換算法中均假定像素是數(shù)學(xué)上的一個(gè)點(diǎn),像素顏色是由對(duì)應(yīng)于像素中心的圖形中一點(diǎn)的顏色決定的;并且直線段是數(shù)學(xué)上抽象的直線段,它的寬度是0。但實(shí)際上像素不是一個(gè)點(diǎn),而是一個(gè)有限區(qū)域。屏幕上所畫(huà)的直線不是數(shù)學(xué)意義上的無(wú)寬度的理想線段,而是一個(gè)寬
16、度至少為一個(gè)像素單位的線條。因此,將屏幕上的直線段看成如圖5中顯示的矩形更為合理。算法中所假定的條件和實(shí)際情況之間的差距是造成走樣的原因之一。為了減少走樣,必須改變直線段的模型,從而得到了簡(jiǎn)單區(qū)域取樣的方法,這個(gè)方法的具體步驟是:1)將直線看成具有一定寬度的狹小矩形; 2)當(dāng)直線與像素相交時(shí),求出兩者相交區(qū)域的面積;3) 根據(jù)相交區(qū)域的面積,確定像素的亮度值;相交面積大的像素亮度高,相交面積小的像素亮度低。 圖5 有寬度的直線段這種方法將產(chǎn)生模糊的邊界,以此來(lái)減輕鋸齒效應(yīng)。在圖5中,像素1約有40被線條區(qū)域覆蓋,因此該像素的亮度就設(shè)置為線條亮度的40。同樣,像素2的亮度設(shè)置為線條亮度的60,而
17、像素3的亮度則設(shè)置為線條亮度的90,等等。對(duì)于圖5中寬度線段的任何一個(gè)像素而言,其面積S是介于0-1之間的正數(shù),用它乘以像素的最大光強(qiáng)為Imax,則該像素的光強(qiáng)I=S×Imax。區(qū)域取樣中,起關(guān)鍵作用的是直線段與像素相交區(qū)域的面積。這個(gè)面積可根據(jù)直線的斜率K和直線的精確起點(diǎn)位置求出。如圖6中(a)所示情況為例,如果已知直線的精確起點(diǎn),則可得到圖中的D值,利用D和直線斜率K可以得到相交區(qū)域的面積:12×D×(D/K)=(D×D)/(2×K)。同樣,可以計(jì)算出(b)中重疊區(qū)域的面積。 圖6 重疊區(qū)域面積的計(jì)算在OpenGL中實(shí)現(xiàn)這種算法,現(xiàn)在利用改
18、進(jìn)后的Bresenham反走樣畫(huà)線算法,如下:BresenhamAntialiasingLine(int x1, int y1, int x2, int y2,int I)/ (x1, y1),(x2, y2)分別是直線的起點(diǎn)和終點(diǎn)/ I是畫(huà)線的最大亮度值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
19、); 為了簡(jiǎn)化計(jì)算,可以利用一種求相交區(qū)域近似面積的離散計(jì)算方法:1)將屏幕像素分割成n個(gè)更小的子像素,2)計(jì)算中心落在直線段內(nèi)的子像素的個(gè)數(shù)m,3) m/n為線段與像素相交區(qū)域面積的近似值。這種簡(jiǎn)單的區(qū)域采樣也稱(chēng)為非加權(quán)區(qū)域采樣,這種方法有兩個(gè)缺點(diǎn):像素的亮度與相交區(qū)域的面積成正比,而與相交區(qū)域落在象素內(nèi)的位置無(wú)關(guān),這仍然會(huì)導(dǎo)致鋸齒效應(yīng)。直線條上沿理想直線方向的相鄰兩個(gè)象素有時(shí)會(huì)有較大的灰度差。為了克服這樣的缺點(diǎn),可以采用加權(quán)區(qū)域采樣方法,使相交區(qū)域?qū)ο笏亓炼鹊呢暙I(xiàn)依賴(lài)于該區(qū)域與象素中心的距離。2.2.2 加權(quán)區(qū)域采樣在區(qū)域取樣中,我們使用覆蓋像素的連續(xù)的加權(quán)函數(shù)(Weighting Fun
20、ction)或?yàn)V波函數(shù)(Filtering Function)來(lái)確定像素的亮度。加權(quán)函數(shù)W(x,y)是定義在二維顯示平面上的函數(shù)。對(duì)于位置為(x,y)的小區(qū)域dA來(lái)說(shuō),函數(shù)值W(x,y)(也稱(chēng)為在(x,y)處的高度)表示小區(qū)域dA的權(quán)值。將加權(quán)函數(shù)在整個(gè)二維顯示圖形上積分,得到具有一定體積的濾波器(Filter),該濾波器的體積為1。將加權(quán)函數(shù)在顯示圖形上進(jìn)行積分,得到濾波器的一個(gè)子體,該子體的體積介于0到1之間。用它來(lái)表示像素的亮度。如圖7所示的盒式濾波器:圖7 盒式濾波器的加權(quán)區(qū)域取樣 除了盒式濾波器外,常用的濾波器還有圓錐濾波器和高斯濾波器(如圖8所示)。濾波器的底可以具有不同的大小,類(lèi)
21、似于過(guò)取樣加權(quán)模板的大小,但是為了獲得較好的效果,盒式濾波器的底常取作邊長(zhǎng)為像素單位整數(shù)倍的正方形,而圓錐濾波器和高斯濾波器的底則是半徑為像素單位整數(shù)倍的圓。圖8 常用的濾波函數(shù)這種加權(quán)區(qū)域采樣的特點(diǎn)是:接近理想直線的象素將被分配更多的灰度值。 相鄰兩個(gè)象素的濾波器相交,有利于縮小直線條上相鄰象素的灰度差。2.3 反走樣算法的改進(jìn)通常的整數(shù)畫(huà)線因?yàn)橹荒茉谡麛?shù)坐標(biāo)上繪圖,所以產(chǎn)生難看的鋸齒。因此,我們可以用一種非整數(shù)坐標(biāo)改進(jìn)它,Wu像素反走樣就是一種可以處理非整數(shù)坐標(biāo)的方法。Wu像素的繪制原理是:1)繪制多個(gè)像素代替一個(gè)像素2)理論點(diǎn)位置不一定在屏幕像素的正中,這個(gè)偏差是我們按偏差的比例來(lái)繪制多
22、個(gè)像素來(lái)代替理論像素的根據(jù)。3)繪制的多個(gè)像素灰度和要于原像素相等。一個(gè)WU直線不僅僅是看上去比一個(gè)普通直線好,它也產(chǎn)生更好的動(dòng)畫(huà)。一個(gè)普通的直線從一個(gè)位置簡(jiǎn)單的跳到下一個(gè)位置。然而,一條Wu直線非常悠閑的漂到下一個(gè)位置,最終的算法相當(dāng)容易實(shí)現(xiàn),但是在實(shí)際應(yīng)用中顯得太慢。因此,還有待于改進(jìn)。三.總結(jié)在分析討論了反走樣理論知識(shí)的基礎(chǔ)上,本論文實(shí)現(xiàn)了普通過(guò)取樣、加權(quán)過(guò)取樣、普通區(qū)域取樣、加權(quán)區(qū)域取樣、Wu像素反走樣算法。即:在高于顯示分辨率的較高分辨率下用點(diǎn)取樣方法計(jì)算,然后對(duì)幾個(gè)象素的屬性進(jìn)行平均得到較低分辨率下的象素屬性的技術(shù)稱(chēng)為過(guò)取樣,或后濾波;在整個(gè)像素區(qū)域內(nèi)進(jìn)行采樣的技術(shù)稱(chēng)為區(qū)域取樣,這種技術(shù)由于像素的亮度是作為一個(gè)整體被確定的,不需要?jiǎng)澐肿酉?/p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度門(mén)店合伙人激勵(lì)機(jī)制服務(wù)合同4篇
- 2025年度二零二五農(nóng)行個(gè)人二手房交易貸款合同2篇
- 2025年度綠色建筑節(jié)能改造工程合同(二零二五版)4篇
- 二零二五年度商業(yè)門(mén)面租賃合同范本-@-1
- 2025年度綠色生態(tài)餐廳檔口租賃合同樣本4篇
- 2025年度城市軌道交通鋼管材料供應(yīng)與承包合同協(xié)議書(shū)范本
- 2025版南海區(qū)創(chuàng)新創(chuàng)業(yè)人才居住就業(yè)支持合同4篇
- 2025版門(mén)面租賃合同消防安全及責(zé)任承擔(dān)4篇
- 二零二五年度外賣(mài)送餐服務(wù)合同書(shū)(含增值服務(wù))
- 二零二五年度年薪制工資與員工晉升合同模板
- 衛(wèi)生服務(wù)個(gè)人基本信息表
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專(zhuān)題課件
- 高技能人才培養(yǎng)的策略創(chuàng)新與實(shí)踐路徑
- 廣東省湛江市廉江市2023-2024學(xué)年八年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2024年湖北省知名中小學(xué)教聯(lián)體聯(lián)盟中考語(yǔ)文一模試卷
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- 交叉口同向可變車(chē)道動(dòng)態(tài)控制與信號(hào)配時(shí)優(yōu)化研究
- 燃?xì)庑袠I(yè)有限空間作業(yè)安全管理制度
- 數(shù)列練習(xí)題(含答案)基礎(chǔ)知識(shí)點(diǎn)
- 通用電子嘉賓禮薄
- 充電站監(jiān)理規(guī)劃
評(píng)論
0/150
提交評(píng)論