- 計(jì)算機(jī)輔助設(shè)計(jì)與繪圖技術(shù)(AutoCAD 2014教程)(第三版)
- 杜忠友 杜元婧等
- 1139字
- 2019-11-06 14:24:00
1.5 反走樣技術(shù)
在光柵掃描顯示器上顯示二維圖形時(shí),弧線、非水平或非垂直的直線,都不同程度地呈現(xiàn)鋸齒形。原因是它們由一組相同亮度的離散像素組成。在光柵圖形中用離散量來(lái)顯示連續(xù)量所帶來(lái)的這種失真現(xiàn)象,稱為走樣(Aliasing)。用于消除或減輕這種失真的技術(shù),稱為反走樣技術(shù)(Antialiasing)。
反走樣技術(shù)有兩種,一是提高顯示器的分辨率;二是使用不同的灰度來(lái)顯示邊緣的像素。其中后者又分為不加權(quán)的區(qū)域取樣和加權(quán)的區(qū)域取樣。
1.5.1 提高顯示器分辨率
假設(shè)像素以邊長(zhǎng)為1的正方形表示,其真實(shí)坐標(biāo)是正方形的中心?,F(xiàn)假定把顯示器的水平、垂直方向的分辨率都提高一倍,如圖1-6所示,則同樣長(zhǎng)度的直線穿過的掃描線條數(shù)增加一倍,直線上的階梯個(gè)數(shù)也增加一倍,每個(gè)階梯的寬度減小一倍。這樣一來(lái),直線的平滑程度增加了,反走樣取得了效果。

圖1-6 分辨率提高,平滑度增加
1.5.2 不加權(quán)區(qū)域取樣
實(shí)際的像素不是一個(gè)點(diǎn),有一定的面積,直線的寬度也不為0,至少有一個(gè)像素寬。這是造成等亮度的圖形走樣的根本原因。因此,必須對(duì)等亮度的直線模型進(jìn)行改進(jìn)。不加權(quán)區(qū)域取樣反走樣的步驟如下:
(1)將直線看成具有一定寬度的狹長(zhǎng)的矩形。
(2)當(dāng)直線與像素相交時(shí),求出相交區(qū)域的面積。
(3)根據(jù)此面積確定該像素的亮度。
如圖1-7中的長(zhǎng)方形表示要畫的一條黑色直線,背景為白色。用等亮度掃描轉(zhuǎn)換法繪制時(shí),屏幕上的像素非黑即白,明顯有鋸齒形狀。若采用不加權(quán)區(qū)域取樣繪制,如果某一像素的正方形區(qū)域全部落在該直線上,則其顏色取為黑色;如果一個(gè)像素的正方形區(qū)域與該直線條部分相交,可根據(jù)相交部分的面積大小取不同的灰度。相交面積大的,像素灰度大,相交面積小的,像素灰度小。用此法繪制的邊界比較模糊,但邊界平滑些了,如圖1-8所示。這種使顯示灰度正比于覆蓋區(qū)域面積的反走樣技術(shù),稱為不加權(quán)區(qū)域取樣。

圖1-7 寬度一定的直線段

圖1-8 像素灰度與相交區(qū)域的面積成比例
正方形像素與直線部分相覆蓋有3種情況,如圖1-9所示。若覆蓋區(qū)域?yàn)槿切危垡妶D1-9(a)],其面積為0.5mD2;若覆蓋區(qū)域?yàn)樘菪危垡妶D1-9(b)],其面積為(D+D-m)·0.5=D-0.5m;若覆蓋區(qū)域?yàn)閳D1-9(c)所示的情形,則其面積為正方形面積與兩個(gè)三角形面積之差。當(dāng)然,若正方形像素全被覆蓋,其面積為1。式中m為直線的斜率。

圖1-9 計(jì)算覆蓋的面積
上述所得的面積都介于0和1之間。將它乘以最大灰度值并取整,即為該像素顯示的灰度值。
用不同灰度值顯示出的直線或曲線,其反走樣效果好于提高分辨率法。但采用這種方法,覆蓋面積與理想直線的差距不管有多大,取得的灰度值都相同。另外,在理想直線方向上相鄰的兩個(gè)像素,有時(shí)會(huì)有較大的灰度差。因此,仍然會(huì)有較明顯的鋸齒顯現(xiàn)。
1.5.3 加權(quán)區(qū)域取樣
采用這種方法時(shí),接近理想直線的像素將被賦予較大的灰度值,使灰度值和覆蓋面積、理想直線間的距離有關(guān),從而有效地改善了鋸齒走樣現(xiàn)象。
- HornetQ Messaging Developer’s Guide
- 玩轉(zhuǎn)Scratch少兒趣味編程
- Ext JS Data-driven Application Design
- PostgreSQL技術(shù)內(nèi)幕:事務(wù)處理深度探索
- MySQL 8 DBA基礎(chǔ)教程
- Learning Python by Building Games
- Kotlin從基礎(chǔ)到實(shí)戰(zhàn)
- Python項(xiàng)目實(shí)戰(zhàn)從入門到精通
- Apache Camel Developer's Cookbook
- 寫給程序員的Python教程
- IBM Cognos TM1 Developer's Certification guide
- Mockito Essentials
- MongoDB Cookbook(Second Edition)
- SQL Server 2012 數(shù)據(jù)庫(kù)應(yīng)用教程(第3版)
- Web前端測(cè)試與集成:Jasmine/Selenium/Protractor/Jenkins的最佳實(shí)踐