電腦圖形

電腦圖形（Computer Graphics，縮寫：CG）是指用電腦所創造的圖形。更具體的說，就是在電腦上用專門的軟體和硬體用來表現和控制圖像數據。

電腦圖形的發展使使用者能更容易與電腦互動，更好的明白和解釋多種類型的數據。發展電腦圖形對多種媒體有深遠的影響，並徹底改變了動畫、電影和電子遊戲行業。

## 概況

電腦圖形在學術中的廣義被用來描述為「在電腦里除了文字與聲音以外的一切」。通常，電腦圖形在學術上指以下事情：

- 用電腦表現或處理圖像數據
- 用於創建或處理圖像的各種技術
- 經過製作的圖像
- 電腦科學分領域的數字合成和處理視覺內容的研究，參見電腦圖形學

現在，電腦和電腦生成圖像接觸到日常生活的多個層面。電腦圖像出現在電視、報紙等地方，同時在天氣預報、醫療調查和手術操作等產生作用。一個精心構築的圖表可以將複雜的統計以更容易理解和解釋的方式呈現。在媒體中，「這樣的圖表可以被用於說明文件、報告、論文」，和用於其它演示材料。

已經開發出許多功能強大的工具將數據可視化。電腦生成圖像可以被分成幾種類型：二維、三維和動畫。隨著技術的改進，三維電腦圖形變得越來越常見，但二維電腦圖形仍然被廣泛使用。在過去的十年中，發展出在其它專門領域的應用，如：資訊可視化和科學可視化，其中更多涉及到「三維現象的可視化（建築、氣象、醫療、生物等）」，強調的是體積、表面、光源等的真實渲染，可能是動態（時間）的組成部分。

## 歷史

電腦圖形一詞在1960年由波音的設計師威廉·菲特創造。電腦圖形領域隨著電腦圖形硬體的出現而發展。早期的項目，如旋風計算機和半自動地面防空系統引入CRT作為可行的顯示器和交互界面，並引入光筆作為輸入設備。

<image>

### 1960年代早期發展

電腦的進一步發展導致了交互電腦圖形的巨大發展。在1959年，麻省理工學院林肯實驗室開發了TX-2電腦，集成了許多新的人機界面。光筆連接電腦，可以用來在伊凡·薩瑟蘭革命性的Sketchpad軟體繪製草圖。使用光筆，Sketchpad讓人可以在電腦螢幕上繪製簡單圖形，保存後還可以再使用它們。光筆尖端有一個微型的光電元件，將此元件置於電腦螢幕前，接收螢幕的電子槍所發射出的光線。通過簡單為電子脈衝的定時和電子槍的位置判斷，可以簡單準確的判斷筆任何時刻在螢幕上的位置。當確定位置後，電腦可以在該位置繪製光標。

薩瑟蘭面對眾多的圖形問題，似乎找到了完美的解決方案。即使在今天，許多電腦圖形界面的標準，也是以此早期的Sketchpad程序為起點。一個例子，是繪畫約束方面，如果有人想繪製一個正方形，他/她不需要為繪製完美的四條直線才能構成方形的外框而擔心，只需要簡單指定他/她想繪製的方形，並指定方形的位置和大小，然後該軟體將構造一個擁有正確面積和合適位置的完美方形。另一個例子，是薩瑟蘭的軟體建模對象，不僅是一個對象的圖片，換句話說，對一個汽車模型，改變輪胎的大小，不需要影響車的其它部分，也可以僅拉伸車身不改變車胎的形狀。

這些早期的電腦圖形是矢量圖形，由細線條構成，而現在大多是基於光柵的像素圖形。

### 1960年代後期發展

<image>

在1961年，麻省理工學院學生史蒂夫·拉塞爾（Steve Russell）創造了第一個電子遊戲Spacewar!。為DEC PDP-1編寫，Spacewar的突然成功，並在其它的PDP-1使用者間傳播，最終甚至連DEC也得到一份副本。在DEC的工程師在每台新PDP-1付運前，將其作為診斷程序。銷售人員在安裝新設備時，會快速安裝上此程序，為他們的新顧客運行世界上第一個電子遊戲。

1963年，貝爾電話實驗室（英語：Bell Telephone Laboratory，簡稱：BLT）的科學家愛德華·E·薩迦克(Edward E.Zajac)，創作了一部名為《雙旋翼重力姿態控制系統仿真模擬》（Simulation of a two-giro gravity attitude control system）的影片。在這部電腦生成影片中，顯示了衛星姿態在繞地球盤旋時的變化。他在一台IBM 7090大型計算機上創作了動畫。同在貝爾電話實驗室，肯·諾爾頓、弗蘭克·辛頓（Frank Sindon）和麥可·諾爾開始在電腦圖形領域工作。辛頓創作了一部名為《力量，質量與運動》（Force, Mass and Motion）的影片，說明運作中的牛頓定律活動。大約同時，其他科學家開始創作電腦圖形說明他們的研究。在勞倫斯發射實驗室（Lawrence Radiation Laboratory），尼爾森·馬克思創作了影片《粘稠液體的流動》（Flow of a Viscous Fluid）和《振動波在固體形式中的傳播》（Propagation of Shock Waves in a Solid Form）。波音飛機的程式設計師創作了影片名為《航空器的振動》（Vibration of an Aircraft）。

在此不久以前，大型企業開始對電腦圖形感興趣。天合汽車集團、洛克希德-喬治亞、通用電氣和斯佩里·蘭德等眾多公司在1960年代中期開始使用電腦圖形。IBM迅速作出反應，銷售首台大量供應的圖形電腦——IBM 2250圖形終端。

桑德斯聯營公司（Sanders Associates）的監理工程師拉爾夫·巴爾，在1966年構思出家庭電子遊戲機，後來授權給瑪格納沃克斯（Magnavox），並稱其為奧德賽。雖然其非常簡單，並使用相當便宜的電子零件，它允許玩家在一個螢幕上移動光點。它是第一台消費電腦圖形產品。

同樣在1966年，薩瑟蘭在麻省理工學院發明了第一台電腦控制頭戴式顯示器（HMD）。因為過重需要連接天花板的支架所以被戲稱為「達摩克利斯之劍」，它分別在每隻眼眼睛顯示獨立的線框圖像。這讓觀眾能在計算機場景中看到三維立體。在他獲得麻省理工學院的博士學位後，薩瑟蘭成為遠景研究規劃局的資訊處理總監，之後成為哈佛大學教授。

大衛·C·埃文斯從1953年到1962年在本迪克斯公司的電腦部門做工程總監，其後5年在伯克利做客座教授。在那裡他繼續研究他感興趣的電腦與人交互的界面。猶他州立大學在1968年招募了埃文斯建立電腦科學項目，而電腦圖形很快成為他的主要興趣。這個新部門之後成為世界電腦圖形的主要研究中心。

1967年，薩瑟蘭被埃文斯招募加入猶他州立大學的電腦科學項目。在那裡，他完善了他的頭戴式顯示器。20年後，美國宇航局（NASA）重新將他的技術運用到他們的虛擬實境研究。在猶他州，薩瑟蘭和埃文斯為多間大型公司做顧問後被高度追捧，但他們對當時圖形硬體的落後感到沮喪，所以他們開始制定計劃成立自己的公司。

1969年，電腦協會（ACM）創立了圖形方面的特別興趣小組（SIGGRAPH），舉辦會議、制定圖形標誌和出版電腦圖形領域的刊物。1973年舉辦首屆SIGGRAPH會議，並成為該組織的重點項目。隨著時間的增長電腦圖形領域不斷發展，SIGGRAPH的規模和重要性逐漸增強。

### 1970年代

許多在電腦圖形研究中最重要的早期突破發生在1970年代的猶他州立大學。始於一位名叫埃德溫·卡特穆爾（Edwin Catmull）的學生，在1970年簽入薩瑟蘭的電腦圖形班。卡特莫剛離開波音公司，並忙於他的物理的學位。雖然在迪士尼長大，卡特莫熱衷動畫，但他很快發現沒有繪畫方面的天分。卡特莫等人發現電腦將成為動畫的自然發展，希望自己成為變革的一部分。卡特莫製作的第一個動畫是他自己，他創作了他手部的開合動畫。使用電腦圖形製作一部達到正片長度的電影成為他的目標。在同一班上，弗雷德·帕克（Fred Parke）創作了他妻子臉部的動畫。因為埃文斯和薩瑟蘭的存在，猶他州立大學成為電腦圖形研究頗負盛名的地方。

猶他州立大學電腦圖形實驗室吸引來自各地的人，約翰·沃諾克（John Warnock）是早期的開拓者之一，他之後成立了Adobe Systems，並使用他的頁面描述語言PostScript在出版界創造了一場革命。湯姆·斯托克曼（Tom Stockham）領導猶他州立大學與電腦圖形實驗室工作最密切的圖像運算組。吉姆·克拉克（Jim Clark）也在那裡，他其後成立了Silicon Graphics, Inc。

### 1980年代

在1980年代，個人電腦出現在藝術家和圖形設計師的眼前，特別是Commodore Amiga和Macintosh。它們作為最嚴謹的設計工具，除了可以節省時間外，還能比其它方式更精準的繪畫。1980年代中期，皮克斯使用SGI電腦創作了第一條完全用電腦生成的短片。Macintosh在圖形設計工作室和商業之間成為最受歡迎的電腦圖形工具。自1980年代以來，現在電腦更多的是使用圖形使用者界面的符號、圖標和圖片顯示數據和資訊，而不是使用文本。圖形是多媒體技術的五個關鍵要素之一。

### 1990年代

自1990年代開始，在遊戲、多媒體和動畫中，三維圖形變得很受歡迎。1995年，首部正片長度電腦生成的動畫影片《玩具總動員》在全球的電影院上映。1996年，最早的全三維遊戲之一的《雷神之錘》發售。自此，由於更強大的電腦硬體和三維建模軟體，電腦圖形變得擁有更多細節和真實感。

## 圖像類型

### 二維圖形

二維電腦圖形是以電腦為基礎的數字圖像，大多來自二維模型，例如二維集合模型、文本和數字圖像，具體由它們的技術所區分。

二維電腦圖形最初主要用於傳統的印刷和繪畫技術的應用程式，如：排版、地圖、工程製圖、廣告等行業。在這些應用程式中，二維圖像不僅是真實世界物體的表現，而是添加了語義值的獨立人工製品。所以二維模型是首選，因為它們比三維電腦圖形能更直接的控制，三維圖形更接近於攝影。

### 三維圖形

<image>

三維圖形對比二維圖形來說，是指使用三維的幾何數據描繪的儲存在電腦中為了進行計算和渲染為目的的二維圖像。這些圖像會在之後顯示或實時查看。

儘管存在差異，三維電腦圖形仍舊依賴於多種二維圖形演算法，如在圖形線框模型中使用二維電腦矢量圖形，在最終渲染顯示中使用二維電腦光柵圖形。在電腦圖形軟體中，二維和三維之間的區別偶爾會模糊，二維應用程式可能會使用三維技術實現諸如光照等效果，而主要的三維也可使用二維渲染技術。

三維電腦圖形通常被稱為三維模型。除了渲染圖形以外，模型包含在圖形數據文件中。然而還是有所差別，一個三維模型是任何三維物體的精確呈現，但一個模型除非被直觀地顯示出來，否則嚴格來說還不是圖形。由於有三維列印技術，三維模型並不局限於虛擬空間。模型通過一個名為三維渲染的過程，可以用二維圖像直觀地顯示出來，或用於非圖形化的電腦模擬和計算。有專門的三維電腦圖形軟體給使用者創建三維圖像。

### 像素畫

像素畫是一種數字藝術形式，通過使用光柵圖形軟體，以像素級來編輯圖片。在很多老（或相對有限）的電腦遊戲、電子遊戲、圖形計算器遊戲和許多手機遊戲中使用的圖形，通常都是像素畫。

### 矢量圖形與光柵圖形

矢量圖形格式與光柵圖形是互補的，光柵圖形由大量像素構成，通常的代表是攝影圖像。矢量圖形使用形狀和顏色的編碼數據構成圖像，在渲染方面可以更靈活。當使用矢量時，最好使用矢量工具與格式；當使用光柵圖形時，最好使用光柵工具與格式。有時兩種圖形會同時使用。了解每種技術的優點和局限，以及它們之間的關係，可以在使用工具時能更好的使用和有更高的效率。

### 電腦動畫

<image>

電腦動畫是通過電腦創造的移動圖像藝術。它是電腦圖形和動畫的子域。雖然二維電腦圖形因為風格化、低帶寬要求、便於高速實時渲染，而被廣泛地使用在電腦動畫中（如：Flash動畫），但越來越多的動畫使用三維電腦圖形製作。有時動畫的播放媒體是電腦本身，但有時則是其它的媒體，如電影。它也被稱為電腦生成圖像（CGI，Computer-generated imagery或computer-generated imaging），特別是在電影中使用時。

虛擬實體可以自制，並被存儲在對象變換矩陣中的變換值（包括：位置、方向和大小）等屬性所控制。動畫的屬性隨時間推移而改變。動畫有多種實現的方法，基本的方法是基於關鍵幀的創作和編輯，每個關鍵幀儲存獨立賦予的時間值，播放關鍵幀成為動畫。也可以使用二維/三維圖形軟體在兩個關鍵幀間插值，創建一個映射值隨時間推移的可編輯曲線，最終生成動畫。其它動畫的實現方法，包括程序動畫和基於表達式的技術：前者將動畫實體的互動元素集中成為屬性集，用於創建粒子系統效果和群仿真；後者允許從使用者定義的邏輯表達式返回評估結果，再加上數學計算，以可預見的方式（除建立骨骼系統提供的等級外便於控制骨骼行為）自動生成動畫。

為了創造運動錯覺，顯示在電腦顯示器上的圖像快速的被新的稍微移動的圖像所替代。這種技術與電視和電影上使用的運動錯覺是相同的。