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