二維計算機圖形檢視原始碼討論檢視歷史
二維計算機圖形 |
中文名: 二維計算機圖形 外文名: 2D computer graphics 簡 稱: 2D CG 學科類型: 二維計算機圖形學 |
二維計算機圖形(2D computer graphics),也簡稱為2D CG,是基於計算機的數字圖像的產生—主要是從二維模型的(例如二維幾何模型,文本,和數字圖像)產生,並且使用只適用這些模型的技術。該詞也用於指代這些模型本身。採用該技術的計算機科學的分支稱為二維計算機圖形學。
二維圖形模型可以是如下這些的組合:幾何模型(也稱為矢量圖形),數字圖像(也稱為光柵圖形),需要排版的文本(由內容、字體和大小、顏色、和方向定義),數學函數和方程,等等。這些組件可以通過象平移、旋轉、縮放這樣的二維幾何變換來修改和操作。
二維圖形技術
在面向對象圖形中,圖像通過一個有自繪製方法—一個用任意的算法來賦予圖像像素色彩值的例程—的對象來描述。複雜的模型可以通過將更簡單的對象組合起來得到,可以採用面向對象編程的範式。
直接繪製
創建一個複雜圖像的一個簡易辦法是從一塊空白畫布開始—填滿單一背景色的光柵圖(像素數組—也稱為位圖)—然後通過正確的次序「畫」,「漆」或者「貼」上簡單的色塊。特別的有,畫布可以是計算機顯示器的幀緩存。
有些程序會直接設置像素色彩值,但多數會依賴一些二維圖形庫以及(或者)機器的圖形卡,它們通常會實現下列操作:
將一個給定的數字圖像以一個給定的偏移貼到畫布上;
在給定的位置和角度將一個字符串以給定的字體寫如幀緩存;
繪製一個簡單的幾何形體,例如用三個定點定義的三角形,或者給定圓心和半徑的圓;
繪製一條線段、圓弧、或者用給定粗細的虛擬筆繪製簡單曲線。
擴充色彩模型
文本、形狀和線條使用用戶指定的色彩繪製。很多庫和卡提供色彩梯度,它對於產生平滑變化的背景、陰影效果、等等都很實用(參看Gouraud明暗圖。像素色彩也可以從紋理中取得,例如從一個數字圖像中(這樣就可以模擬刮擦網目調(screentone)和以前只有卡通片中才有的「棋盤格噴漆」)。
用給定色彩繪製一個像素通常會取代其原先的色彩。但是,很多系統支持用透明和透過色彩繪製,它只會修改原先的像素值。
兩個色彩也可以用更花哨的方法組合,例如通過計算它們的比特異或。這個技術被稱為反色或者色彩翻轉,並經常在圖形用戶界面中採用,用於高亮顯示、釘釘板(rubber-band drawing)、以及其它臨時繪製—因為再次以同樣的色彩繪製相同的圖形會恢復原始的像素值。
層次
二維計算機圖形採用的模型經常不提供三維形狀,也不提供光照、陰影、反射、折射、等等這樣的三維光學效果。但是,它們通常會有多個層次的模型(概念上就是墨水、紙、或者膠片組成的層次;可以是不透明、透明、或者半透明—並且以特定次序疊加。該次序通常用單個數字定義(該層次的深度,或者說離觀察者的距離)。
分層模型有時稱為2 1/2維計算機圖形。它們使得模擬傳統的基於膠片和紙的草圖和印刷技術成為可能;並使得用戶能夠不對其它層次產生任何影響地編輯任意一層。因此,它們在多數圖形編輯器中得到採用。分層模型使得複雜圖像的反走樣變得更好,並且為諸如榫接和奇偶規則的特殊技術提供了一個正確的模型。
分層模型也用於允許用戶在察看或打映文檔時限制不需要的信息,例如地圖上的公路或者鐵路、集成電路布線圖的特定加工層次、商務信件的手寫注釋等等。
在分層模型中,目標圖像通過「繪製」或者「粘貼」每個層次到虛擬畫布上產生,次序是按深度遞減。概念上,每一層首先獨自繪製,產生所需分辨率的數字圖像,然後在畫布上一個像素一個像素地描繪。當然,層次全透明的部分無須繪製。繪製和描繪可以並行的進行,也就是說,每個層次的像素在繪製進程中一產生就可以描繪到畫布上。
包含複雜幾何體的層次(例如文本或者多邊形)可以分解為更簡單的元素(分別是字符或者線段),然後作為分離的層次以某種次序繪製。但是,這個辦法可能在兩個元素重疊在同一個像素時產生不良的走樣這樣的人工因素。
二維圖形硬件
現代計算機圖形卡幾乎全部採用光柵技術顯示,把整個屏幕分成像素的矩形點陣,這是因為基於光柵的圖形硬件和矢量圖形硬件相比要低價。多數圖形硬件對於位圖傳送操作和精靈繪製有內部支持。專門用於位圖傳送的協處理器稱為傳送器芯片。
1970年代晚期和1980年代早期的用於8位遊戲平台和家用機的經典二維圖形芯片包括:
Atari的ANTIC (實際上是一個二維GPU),TIA, CTIA,和GTIA
Commodore/MOS Technology的VIC和VIC-II
二維圖形軟件
很多圖形用戶界面(GUI),包括Mac OS,微軟視窗,或者X視窗系統,主要基於二維圖形概念。這些軟件提供了和計算機交互的視覺環境,並且常常包括某種形式的視窗管理器來幫助用戶從概念上區分不同的應用程序。 單個軟件應用程序的典型用戶界面也是本質上二維的,部分因為最普通的輸入設備(例如鼠標)被限制於做二維的運動。
二維圖形在打印機、繪圖儀、線切割機等等外圍設備的控制中殊為重要。它們也用於早期的視頻遊戲和計算機遊戲中;並且依然在棋牌類遊戲中使用,例如接龍、象棋、麻將、等等。
二維圖形編輯器或者說繪圖程序是應用程序級的軟件,用於圖像、流程圖、插圖等的創建,它採用二維圖形體素的直接操縱實現(通過鼠標,繪圖版,或者類似的設備)。這些編輯器一般提供二維幾何體素以及數字圖象;有些甚至支持過程化模型。插圖通常內部表示為分層模型,經常會有一個等級結構以方便編輯。這些編輯器通常輸出圖形文件,其中層和體素分別以其原始形式保存。MacDraw,是於1984年在麥金塔系列計算機上創建的,它是這類程序的一個早期的例子;現代的例子有商用產品Adobe Illustrator和CorelDraw,以及免費編輯器xfig。也有很多二維圖形編輯器專用於特定的製圖,例如電氣、電子和大規模集成電路線路圖、地形圖、計算機字體、等等。
1圖像編輯器是專用於數字圖像的操作的,主要通過自由手繪和信號處理操作。他們主要採用直接繪製的范型,其中用戶控制虛擬筆、刷、以及其他自由手動藝術設備來將色彩繪於虛擬畫布上。有些圖像編輯器支持多層模型;但是,為了支持象模糊這樣的信號處理操作,每個層通常表示為一個數字圖像。所以,任何編輯器提供的幾何體素直接被轉換成像素並描到畫布上。光柵圖形編輯器這個名稱有時被用來強調該方法和一般也能處理矢量圖形的編輯器的不同。最早的流行的圖形編輯器有蘋果公司的MacPaint,MacDraw的伴侶軟件。現代的例子有免費的GIMP編輯器,商用產品Photoshop和Paint Shop Pro。這類軟件也包括很多專門化的編輯器—用於醫藥、遙感、數字攝影、等等。
向量的一些基本概念
向量的相加和數乘
向量的線性組合
仿射組合:如果線性組合的係數a1,a2,...am的和等於1,那麼它就是仿射組合,即 a1 + a2 + ... + am = 1
凸組合:滿足仿射組合的條件,且 ai >= 0 (i = 1,2,...,m)
向量的度量和單位向量
向量的點積與叉積
計算機圖形學中坐標系的分類
1、世界坐標系:世界坐標系是一個公共坐標系,是現實中物體或場景的統一參照系。計算機圖形系統中涉及的其他坐標系都是參照它進行定義的。
2、建模坐標系(局部坐標系):每個物體(對象)有它自己的局部中心和坐標系。
3、觀察坐標系:主要用於從觀察者的角度對整個世界坐標系內的對象進行重新定位和描述。
4、設備坐標系:適合特定輸出設備輸出對象的坐標系。設備坐標一般都是整數。
5、規範化坐標系:規範化坐標系獨立於設備,能容易地轉變為設備坐標系,是一個中間坐標系。
二維圖形變化
齊次坐標:用三維向量表示二維向量,或者一般而言,用一個n+1維的向量表示一個n維向量的方法稱為齊次坐標表示法。
為什麼要引入齊次坐標:在笛卡爾坐標系內,向量(x, y)是位於z=0的平面上的點;而向量(x, y, 1)是位於z=1的高平面上的點。對於圖形來說,兩者並沒有實質性的差別,但是卻給後面的矩陣運算提供了可行性和方便性。
基本幾何變換:指對圖形的幾何信息經過平移、比例、旋轉等變換後產生的新圖形。[1]
參考來源
- ↑ 計算機圖形學之二維圖形變換,穿山甲成長中心,