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