版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、圖形學(xué)論文 題 目 基本圖形生成的反走樣設(shè)計與實現(xiàn)學(xué) 生 蘇洪邁 年 級 2014級專 業(yè) 計算機(jī)科學(xué)與技術(shù)行知班系 別 學(xué) 院 教師教育學(xué)院哈爾濱師范大學(xué)2016年6月基本圖形生成的反走樣設(shè)計與實現(xiàn)蘇洪邁摘要:圖形圖像技術(shù)是現(xiàn)代社會信息化的重要技術(shù),而走樣卻是數(shù)字化表示圖形圖像的必然產(chǎn)物。為了提高圖形的顯示質(zhì)量,需要減少或消除走樣現(xiàn)象,用于減少或消除這種效果的技術(shù)稱為反走樣。消除或減緩走樣現(xiàn)象,給人視覺上產(chǎn)生更舒適光滑的圖形,在圖形界面已成為人機(jī)交互主流方式的今天,具有一定的應(yīng)用價值。本文介紹了幾種常用的反走樣方法,主要有:提高分辨率來顯示圖形對象、區(qū)域采樣、加權(quán)區(qū)域采樣以及改進(jìn)的反走樣方法
2、:Wu像素反走樣。關(guān)鍵詞:走樣;反走樣;過取樣;區(qū)域取樣;加權(quán)區(qū)域取樣;Wu像素反走樣一.引入走樣與反走樣 光柵圖形顯示器是目前使用最廣泛的圖形顯示器,因為它具有以下優(yōu)點:光柵掃描顯示器具有固定的刷新順序,掃描從屏幕的左上角開始,從左到右,從上到下的順序進(jìn)行刷新,從而刷新控制部件得以簡化,節(jié)約了成本。在光柵顯示系統(tǒng)中,構(gòu)成圖形的最小圖形元素是像素,這樣只要計算屏幕上位于給定區(qū)域以內(nèi)的所有像素,并且賦予一定的顏色,就完成了圖形的繪制。光柵顯示器中的圖形由像素構(gòu)成,而每一個像素又可呈現(xiàn)出多級灰度或不同的顏色值,顏色豐富,顯示出來的圖形具有更好的視覺效果。光柵掃描顯示器是一個畫點設(shè)備,與圖形的復(fù)雜度
3、無關(guān),刷新頻率固定,因此不會像隨機(jī)掃描顯示器那樣出現(xiàn)閃爍現(xiàn)象,人眼看上去更舒服。但光柵顯示器也有它的缺陷,數(shù)學(xué)意義上的圖形是由無線多個連續(xù)的、面積為零的點構(gòu)成,而光柵顯示系統(tǒng)中用來表示圖形的卻是一個個離散的,具有一定面積的像素。用離散的像素來表示連續(xù)的圖形時會出現(xiàn)失真,也就稱為走樣。光柵顯示系統(tǒng)為何會出現(xiàn)走樣呢?光柵圖形顯示器上被顯示的線段、字符、圖形及背景色都按像素點一一存儲在幀緩沖存儲器中。當(dāng)我們要畫一條直線時,它通常不可能完全精確地從一個可編址的像素點畫一條直線到另一個可編址的像素點,只可能用盡可能靠近這條直線路徑的像素點集來近似地表示這條直線。顯然只有畫水平線、垂直線時,像素點集在直線
4、路徑上的位置才是準(zhǔn)確的,其他情況下的直線均或多或少地存在階梯狀(鋸齒狀)的現(xiàn)象。光柵圖形的走樣現(xiàn)象除了上述鋸齒狀邊界外,還有圖形細(xì)節(jié)失真,狹小圖形遺失等現(xiàn)象。為了提高圖形的顯示質(zhì)量,需要減少或消除走樣現(xiàn)象,這種用于減少或消除走樣現(xiàn)象的技術(shù)稱為反走樣技術(shù)。二.實現(xiàn)反走樣技術(shù)的一些方法2.1 過取樣技術(shù)一種簡單的反走樣方法是以較高的分辨率顯示對象,如圖1。假設(shè)把顯示器分辨率提高一倍,直線經(jīng)過兩倍的像素,鋸齒也增加一倍,但同時每個階梯的寬度也減小了一倍,所以顯示出的直線段看起來就平直光滑了一些。這種反走樣方法是以4倍的存儲器代價和掃描轉(zhuǎn)換時間獲得的。因此,增加分辨率雖然簡單,但是不經(jīng)濟(jì)的方法,而且它
5、也只能減輕而不能消除鋸齒問題。但是它的思想給我們以后的反走樣方法一定的啟示。 (1)圖1 分辨率提高一倍,階梯程度減小一倍一種可行的反走樣方法:在較高分辨率下用點取樣方法計算,然后對幾個像素的屬性進(jìn)行平均得到較低分辨率下的像素屬性,這種技術(shù)稱為過取樣(Supersampling),或后濾波(Postfiltering)。該技術(shù)是把顯示器看成是比實際更細(xì)的網(wǎng)格來增加取樣率,然后根據(jù)這種更細(xì)的網(wǎng)格使用取樣點來確定每個屏幕像素合適的亮度等級。2.1.1 提高分辨率方法過取樣方式的一個簡單實現(xiàn)是用較高的分辨率進(jìn)行計算,如圖2,在x方向和y 方向上把分辨率提高一倍,使每個像素都對應(yīng)4個子像素,然后掃描轉(zhuǎn)
6、換求得各子像素的顏色亮度,再對4個像素的顏色亮度進(jìn)行平均,得到較低分辨率下的像素顏色亮度。由于像素中可供選擇的子像素最大數(shù)目是4,因此,該例中提供的亮度等級數(shù)是5。圖中,編號為1和7的像素亮度級別是1,編號為2,3,4,5和6的像素亮度是2。通過這個方法為圖中的每個像素設(shè)定不同的灰度值,可以使顯示出來的直線看起來平滑一些,達(dá)到減少走樣現(xiàn)象。圖2 簡單的過取樣方式2.1.2 基于加權(quán)模板的過取樣另一種過取樣方式(重疊過取樣)。為了得到更好的效果,在對一個像素點進(jìn)行著色處理時,不僅僅只對其本身的子像素進(jìn)行采樣,同時對其周圍的多個像素的子像素進(jìn)行采樣,來計算該點的顏色屬性。如圖3所示。由于接近像素區(qū)
7、域中心的子像素在決定像素的顏色亮度值中發(fā)揮著重要的作用,因此過取樣算法中采用了加權(quán)平均的方法來計算顯示像素的顏色亮度值(基于加權(quán)模板的過取樣)。圖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 重疊過取樣】 圖4 常用的加權(quán)模板2.1.3 過取樣算法的實現(xiàn)對于過取樣,不管用哪一種方法都需要在內(nèi)存中建立一個比現(xiàn)在大幾倍的圖,便于對像素取樣,取得像素的亮度值。具體實現(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 簡單的區(qū)域取樣在整個像素區(qū)域內(nèi)進(jìn)行采樣的技術(shù)稱為區(qū)域取樣,又由于像素的亮度是作為一個整體被確定的,不需要劃分子像素,故也被稱為前置濾波。直線段掃描轉(zhuǎn)換算法中均假定像素是數(shù)學(xué)上的一個點,像素顏色是由對應(yīng)于像素中心的圖形中一點的顏色決定的;并且直線段是數(shù)學(xué)上抽象的直線段,它的寬度是0。但實際上像素不是一個點,而是一個有限區(qū)域。屏幕上所畫的直線不是數(shù)學(xué)意義上的無寬度的理想線段,而是一個寬
16、度至少為一個像素單位的線條。因此,將屏幕上的直線段看成如圖5中顯示的矩形更為合理。算法中所假定的條件和實際情況之間的差距是造成走樣的原因之一。為了減少走樣,必須改變直線段的模型,從而得到了簡單區(qū)域取樣的方法,這個方法的具體步驟是:1)將直線看成具有一定寬度的狹小矩形; 2)當(dāng)直線與像素相交時,求出兩者相交區(qū)域的面積;3) 根據(jù)相交區(qū)域的面積,確定像素的亮度值;相交面積大的像素亮度高,相交面積小的像素亮度低。 圖5 有寬度的直線段這種方法將產(chǎn)生模糊的邊界,以此來減輕鋸齒效應(yīng)。在圖5中,像素1約有40被線條區(qū)域覆蓋,因此該像素的亮度就設(shè)置為線條亮度的40。同樣,像素2的亮度設(shè)置為線條亮度的60,而
17、像素3的亮度則設(shè)置為線條亮度的90,等等。對于圖5中寬度線段的任何一個像素而言,其面積S是介于0-1之間的正數(shù),用它乘以像素的最大光強(qiáng)為Imax,則該像素的光強(qiáng)I=S×Imax。區(qū)域取樣中,起關(guān)鍵作用的是直線段與像素相交區(qū)域的面積。這個面積可根據(jù)直線的斜率K和直線的精確起點位置求出。如圖6中(a)所示情況為例,如果已知直線的精確起點,則可得到圖中的D值,利用D和直線斜率K可以得到相交區(qū)域的面積:12×D×(D/K)=(D×D)/(2×K)。同樣,可以計算出(b)中重疊區(qū)域的面積。 圖6 重疊區(qū)域面積的計算在OpenGL中實現(xiàn)這種算法,現(xiàn)在利用改
18、進(jì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
19、); 為了簡化計算,可以利用一種求相交區(qū)域近似面積的離散計算方法:1)將屏幕像素分割成n個更小的子像素,2)計算中心落在直線段內(nèi)的子像素的個數(shù)m,3) m/n為線段與像素相交區(qū)域面積的近似值。這種簡單的區(qū)域采樣也稱為非加權(quán)區(qū)域采樣,這種方法有兩個缺點:像素的亮度與相交區(qū)域的面積成正比,而與相交區(qū)域落在象素內(nèi)的位置無關(guān),這仍然會導(dǎo)致鋸齒效應(yīng)。直線條上沿理想直線方向的相鄰兩個象素有時會有較大的灰度差。為了克服這樣的缺點,可以采用加權(quán)區(qū)域采樣方法,使相交區(qū)域?qū)ο笏亓炼鹊呢暙I(xiàn)依賴于該區(qū)域與象素中心的距離。2.2.2 加權(quán)區(qū)域采樣在區(qū)域取樣中,我們使用覆蓋像素的連續(xù)的加權(quán)函數(shù)(Weighting Fun
20、ction)或濾波函數(shù)(Filtering Function)來確定像素的亮度。加權(quán)函數(shù)W(x,y)是定義在二維顯示平面上的函數(shù)。對于位置為(x,y)的小區(qū)域dA來說,函數(shù)值W(x,y)(也稱為在(x,y)處的高度)表示小區(qū)域dA的權(quán)值。將加權(quán)函數(shù)在整個二維顯示圖形上積分,得到具有一定體積的濾波器(Filter),該濾波器的體積為1。將加權(quán)函數(shù)在顯示圖形上進(jìn)行積分,得到濾波器的一個子體,該子體的體積介于0到1之間。用它來表示像素的亮度。如圖7所示的盒式濾波器:圖7 盒式濾波器的加權(quán)區(qū)域取樣 除了盒式濾波器外,常用的濾波器還有圓錐濾波器和高斯濾波器(如圖8所示)。濾波器的底可以具有不同的大小,類
21、似于過取樣加權(quán)模板的大小,但是為了獲得較好的效果,盒式濾波器的底常取作邊長為像素單位整數(shù)倍的正方形,而圓錐濾波器和高斯濾波器的底則是半徑為像素單位整數(shù)倍的圓。圖8 常用的濾波函數(shù)這種加權(quán)區(qū)域采樣的特點是:接近理想直線的象素將被分配更多的灰度值。 相鄰兩個象素的濾波器相交,有利于縮小直線條上相鄰象素的灰度差。2.3 反走樣算法的改進(jìn)通常的整數(shù)畫線因為只能在整數(shù)坐標(biāo)上繪圖,所以產(chǎn)生難看的鋸齒。因此,我們可以用一種非整數(shù)坐標(biāo)改進(jìn)它,Wu像素反走樣就是一種可以處理非整數(shù)坐標(biāo)的方法。Wu像素的繪制原理是:1)繪制多個像素代替一個像素2)理論點位置不一定在屏幕像素的正中,這個偏差是我們按偏差的比例來繪制多
22、個像素來代替理論像素的根據(jù)。3)繪制的多個像素灰度和要于原像素相等。一個WU直線不僅僅是看上去比一個普通直線好,它也產(chǎn)生更好的動畫。一個普通的直線從一個位置簡單的跳到下一個位置。然而,一條Wu直線非常悠閑的漂到下一個位置,最終的算法相當(dāng)容易實現(xiàn),但是在實際應(yīng)用中顯得太慢。因此,還有待于改進(jìn)。三.總結(jié)在分析討論了反走樣理論知識的基礎(chǔ)上,本論文實現(xiàn)了普通過取樣、加權(quán)過取樣、普通區(qū)域取樣、加權(quán)區(qū)域取樣、Wu像素反走樣算法。即:在高于顯示分辨率的較高分辨率下用點取樣方法計算,然后對幾個象素的屬性進(jìn)行平均得到較低分辨率下的象素屬性的技術(shù)稱為過取樣,或后濾波;在整個像素區(qū)域內(nèi)進(jìn)行采樣的技術(shù)稱為區(qū)域取樣,這種技術(shù)由于像素的亮度是作為一個整體被確定的,不需要劃分子像
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 搬家服務(wù)設(shè)備租賃協(xié)議模板
- 2025房屋買賣居間合同書
- 美容院銷售顧問聘用協(xié)議
- 建筑施工賠償合同樣本
- 裝修施工合同樣本完整
- 生態(tài)保護(hù)與治理施工合同類型
- 臨時演員招聘協(xié)議零時工
- 老舊耕地升級施工協(xié)議
- 博士研究生教育中心建設(shè)方案與發(fā)展路徑
- 生態(tài)觀光園園林建設(shè)工程合同
- 三字經(jīng)英文版-趙彥春
- 婦科腫瘤微創(chuàng)手術(shù)
- 生態(tài)學(xué)概論智慧樹知到期末考試答案2024年
- DL-T 5148-2021水工建筑物水泥灌漿施工技術(shù)條件-PDF解密
- 高三班高考前心理疏導(dǎo)主題班會
- 鋼管架搭設(shè)施工方案
- 500字作文標(biāo)準(zhǔn)稿紙A4打印模板-直接打印
- GB/T 22849-2024針織T恤衫
- 2024年國家電網(wǎng)招聘之通信類題庫及答案【名師系列】
- GB/Z 43684-2024納米技術(shù)光柵的描述、測量和尺寸質(zhì)量參數(shù)
- 《籃球運動員的選材》課件
評論
0/150
提交評論