1. 程式人生 > >計算機圖形學(三)_圖元的屬性_16_ 反走樣_7_區域邊界的反走樣

計算機圖形學(三)_圖元的屬性_16_ 反走樣_7_區域邊界的反走樣

區域邊界的反走樣

  直線的反走樣概念也可以用於區域的邊界,從而消除其鋸齒形的外貌。我們可以將這種程式加加入到掃描線演算法中,在生成區域時來平滑區域輪廓。假如系統具有允許畫素重定位的功能,那麼就可以將邊界畫素位置調整到更靠近區域邊界來實現對區域邊界的平滑處理。其他方法則是根據邊界內畫素區域的百分比來調整每個邊界位置上的畫素亮度。在圖4.53中,位置(x,y)上的畫素有大約一半的區域在多邊形邊界內。因此,該位置處的亮度將調整到其設定值的一半。沿邊界的下一個位置(x+1,y+1)的亮度則調整到約為其設定值的1/3。以畫素區域覆蓋率為基礎,類似的調整方法可以應用於沿邊界的其他亮度值。

這裡寫圖片描述

  過取樣方法可通過確定區域邊界內的子畫素數目來實現。圖4.54中的一個畫素被分割成4個子區域,原4 x 4的畫素網格則變成為8 x 8的網格。現在要處理的穿過該網格的掃描線是8條,而不是4條。圖4.55給出了這個網格中覆蓋物件邊界的畫素區域之一,沿著掃描線,可以確定子畫素區域的3個區域在邊界內。因此,將畫素亮度設定為其最大值的75%。
這裡寫圖片描述

這裡寫圖片描述

  另一種由Pitteway和Watkinson提出的確定邊界內畫素區域百分比的方法,是以中點演算法為基礎的。這個演算法通過測試兩畫素間的中間位置,確定哪個畫素更接近於直線而選擇沿掃描線的下一個畫素。類似於Bresenham演算法,可以建立決策引數p,其符號可以表明下一面的兩個候選畫素中哪一個更接近於直線。通過對p形式的略微修改,就可以得到被物件覆蓋的當前畫素區域的百分比。
  我們首先考慮斜率m在0到1之一間的畫線演算法。在圖4.56中,線路徑顯示在畫素網格之上。假設已經繪製了(xk,yk)上的畫素,那麼最接近x = xk+ 1上直線的下一個畫素可能是yk上的畫素,或是yk+1上的畫素。我們使用下列計算來確定哪個更接近直線:
這裡寫圖片描述

  這給出了從線段上的實際y座標到位置ykyk+1間的中點的垂直距離。假如差為負,那麼yk上的畫素更接近直線;假如差為正,則yk+1的畫素更接近。我們可以通過加上1-m來調整這個計算,從而使它產生一個0到1之間的正數:
這裡寫圖片描述

假如p < 1-m,則yk上的畫素更接近;假如p > 1-m,則yk+ 1.上的畫素更接近。引數p也能計算區域覆蓋當前畫素的實際量。對於圖4.57中(xk, yk)處的畫素,畫素的內部有一個區域可計算為:
這裡寫圖片描述

這個對(xk, yk)上的覆蓋區域表示式,與等式中決策引數P的表示式是相同的。因此,通過計算p值來確定沿多邊形邊界的下一個位置,也可以確定對當前畫素覆蓋區域的百分比。
這裡寫圖片描述

這裡寫圖片描述

  我們可將這個演算法一般化,以適應具有負斜率和斜率大於1的直線段。對決策引數p的這種計算可以加入到中點線演算法中,從而沿多邊形的邊對畫素位置進行定位,且並行地調整沿邊界線的畫素亮度。同樣,我們可以調整計算,將畫素座標指向左下角並保持區域比例。
  在多邊形頂點處和對於很小的多邊形(如圖4.58所示),有多於一條邊通過畫素區域。對於這些情況,我們需要處理所有通過畫素的邊並確定正確的內部區域來修改Pitteway-Watkinson演算法。
  對直線的反走樣所討論的過濾技術也能應用於區域邊。同樣,各種反走樣方法可用於多邊形區域或具有曲線邊界的區域。邊界方程則用來估計畫素區域與將要顯示的區域的覆蓋量。而相關性技術則用於沿掃描線之間以簡化計算。

這裡寫圖片描述

相關推薦

計算機圖形_屬性_16_ 走樣_6_直線亮度差的校正

直線亮度差的校正        為了減輕階梯狀效應,對直線進行反走樣也為如圖4.52所示的另一種光柵效果提供了校正。使用相同數目畫素所繪製的兩條線,對角線還是比水平線長√2倍。例如,當水平線的長度為10 cm時,對角線的長度超過14cm。這導致的視覺效果是對角線顯得比水平線

計算機圖形_屬性_16_ 走樣_7_區域邊界走樣

區域邊界的反走樣   直線的反走樣概念也可以用於區域的邊界,從而消除其鋸齒形的外貌。我們可以將這種程式加加入到掃描線演算法中,在生成區域時來平滑區域輪廓。假如系統具有允許畫素重定位的功能,那麼就可以將邊界畫素位置調整到更靠近區域邊界來實現對區域邊界的平滑處理。

計算機圖形輸出_20_章節總結_程式展示_折線和直方圖

折線圖和直方圖        第一個程式展示使用一條折線、一組多點標記和點陣圖字元標號來生成一年內按月的折線圖。儘管等寬字型與圖中的位置比較容易對齊,但此處給出了比例空間的字型。由於點陣圖左下角提供了當前光柵位置的參考,所以我們必須移動參考位置以使文字串中心與繪製資料的位置

計算機圖形輸出_3_畫線算法_2_DDA算法

通過 程序 之間 tro 取整 xen git 方程 class DDA算法? ? ? ? 數字微分分析儀(digital differential analyzer, DDA)方法是一種線段掃描轉換算法。基於使用等式(3

計算機圖形輸出_10_多邊形填充區_3_內-外測試

內-外測試        各種圖形處理經常需要鑑別物件的內部區域。識別簡單物件如凸多邊形、圓或橢圓的內部通常是一件很容易的事情。但有時我們必須處理較複雜的物件。例如,我們可能描述一個圖3.46所示的有相交邊的複雜填充區。在該形狀中,xy平面上哪一部分為物件邊界的“內部”、哪

計算機圖形輸出_5_幀快取值的裝載

幀快取值的裝載        實現線段和其他物件顯示函式的最後一步工作是設定幀快取的顏色值。由於掃描轉換演算法以連續的單位間隔生成畫素位置,因此掃描轉換演算法可使用增量方法在每一步高效地存取幀快取。        作為一個特殊的例子,假設幀快取矩陣是以行為主要順序進行編址,

計算機圖形輸出_13_畫素陣列

畫素陣列圖元        除了線段、多邊形、圓和其他圖元之外,圖形軟體包常提供一些子程式用於顯示由矩形的彩色陣列定義的各種形狀。矩形的網格圖案一可通過數字化(掃描)一張照片或其他圖形來獲得,也可以使用圖形程式來生成。陣列中每一顏色值對映到一個或多個螢幕畫素位置。如第2章所

計算機圖形輸出_16_字元函式

OpenGL 字元函式  OpenGL基本庫僅為顯示單個字元和文字串提供了基本的支援。我們可以定義圖3.61中的點陣圖字元,並將一個位圖集作為字型檔儲存。一個文字串通過將從字型檔中選擇的點陣圖序列對映到幀快取的 相鄰位置來顯示。 但是,OpenGL實用函式工具包(GLUT

計算機圖形_幾何變換_1_基本的二維幾何變換(一)

4 .幾何變換        使用線段和填充區等圖元來描述場景,並利用屬性來輔助這些圖元。我們給出了掃描線演算法,可以將圖元顯示在光柵裝置上。現在,再看看可用於物件重定位或改變大小的變換操作。這些操作也用於將世界座標系中的場景描述轉換為輸出裝置上顯示的觀察子程式中。另外,它

計算機圖形掃描線多邊形填充演算法講解與原始碼

如果喜歡轉載請標明出處: 並非菜鳥菜鳥的部落格 在這裡先說下演算法的實現過程 本人覺得這個演算法實現起來還是有點難度的!很多人都不願意去看太多描述性的文字,所以對這個演算法的過程是什麼大概也不知道,那麼我在這裡簡要的說一些! 演算法實現過程中應用兩個資料結構:

計算機圖形種畫線算法

直線 情況 算法 n) src 隨著 多邊形 取整 兩個 第二章:光柵圖形學算法 1、光柵顯示器:光柵掃描式圖形顯示器簡稱光柵顯示器,是畫點設備,可看作是一個點陣單元發生器,並可控制每個點陣單元的亮度 2、由來:隨著光柵顯示器的出現,為了在計算機上處理、顯示圖形,需要發展一

計算機圖形幾何變換_5_三維空間的幾何變換_1_維平移

三維平移 在三維齊次座標表示中,任意點P = (x, y, z)通過將平移距離tx, ty,和tz加到P的座標上而平移到位置P’= (x', y', z'): 我們可以用下面等式中的矩陣形式來表達三維平移操作。 但現在座標位置P和P’用4元列向量的齊次座標表示,且變換操

計算機圖形 視頻顯示設備_1_CRT原理

http color size 安裝 ref p s 這一 計算機圖形學 指定 第 1 章 圖形系統概述 如今。計算機圖形學的作用與應用已經得到了廣泛承認。大量的圖形硬件和軟件系統已經應用 到了差點兒全部的領域。通用計算機甚至很多手持計算器也已經

MFC計算機圖形2

mct tid spc DdGzS cin html uem ubd dcs sdsdzi狗聘毫渤口毫http://huiyi.docin.com/hnbkw203d1e5gw濫良瘟侍探蝗http://weibo.com/p/10050563731520645atr4g回救

計算機圖形幾何變換_4_二維複合變換_5_其他二維變換_2_錯切

二維複合變換_5_其他二維變換_2_錯切          錯切(shear)是一種使物件形狀發生變化的變換,經過錯切的物件好像是由已經相互滑動的內部夾層組成。兩種常用的錯切變換是移動x座標值的錯切和移動Y座標值的錯切。相對於x軸的x方向錯切由下列變換矩陣1產生: 該矩陣將

計算機圖形——微表面模型

計算機圖形學中基於物理建模的渲染技術之所以能給人極佳的視覺體驗,是因為利用這些渲染技術能夠很真實的反映出每種物體獨有的“質感”。我們能通過人眼觀察來感受物體表面“質感”的原因,也是因為物體表面反射周圍環境的特性不同而造成的,因此對物體表面的物理建模對於其表面本身的質感表現至關重要。對物體表面的建模,最簡單的是

計算機圖形幾何變換_2_矩陣表示_2_二維矩陣

二維平移矩陣使用齊次座標方法,座標位置的二維平移可表示為下面的矩陣乘法。 該平移操作可簡寫為: 其中T(tx,ty)等式中3*3矩陣。在平移引數沒有混淆的情況下,可以使用T表示平移矩陣。二維旋轉矩陣類似地,繞座標系原點的二維旋轉變換方程可以表示為矩陣形式: 或      

學習shader之前必須知道的東西之計算機圖形渲染...

shader到底是幹什麼用的?shader的工作原理是什麼?         其實當我們對這個問題還很懵懂的時候,就已經開始急不可耐的要四處搜尋有關shader的資料,恨不得立刻上手寫一個出來。但看了一些資料甚至看了不少cg的語法之後,我們還是很迷茫,UNITY_MATRIX_MVP到底是個什麼矩陣?它和v

計算機圖形幾何變換_4_二維複合變換

二維複合變換        利用矩陣表示式,可以通過計算單個變換的矩陣乘積,將任意的變換序列組成複合變換矩陣(compsite transformation matrix)。形成變換矩陣的乘積經常稱為矩陣的合併(concatenation)或複合(compsistion)。

計算機圖形DDA畫線演算法講解與原始碼

很早之前就想寫一個計算機圖形學系列的講解,可是隻寫了2篇,然後就擱置了很長一段時間,現在也算是有時間來繼續之前的想法了。 首先介紹一下演算法: 已知直線過端點P0(x0,y0),P1(x1,y1)的直線段的斜率K=(y1-y0)/(x1-x0),畫線的過程為:從x的