猶他茶壺（Utah teapot）；呢個立體模型喺電腦圖像學當中成日俾人攞嚟做例子。用 Blender 軟件整嘅一個立體模型；個模型係一隻黑猩猩塊面。一幅用電腦畫、有三條軸嘅立體坐標圖；幅圖將一啲數據呈現出嚟，等研究者唔使齋靠睇啲數字，亦都方便佢哋發表研究結果俾人睇。
**電腦圖像學**（英文：**computer graphics**）係研究電腦圖像嘅一個電腦科學子領域。

二維圖像
----

內文：二維電腦圖像
### 點陣圖

內文：點陣圖
一幅點陣圖（raster image）由若干粒像素（pixel）組成。一部電腦所顯示嘅點陣圖每一幅都係由一大柞像素所組成嘅，每一粒像素都有一個坐標記住佢喺邊個位置，並且有一隻色水，隻色水係由唔同濃度嘅紅、綠、同藍結合形成（例如紅溝藍會出紫），從而一齊組成一幅圖。舉個例說明，喺用紅綠藍色彩模式（RGB model）將一幅圖存入去佢嘅記憶體嗰陣，部電腦會記住類似

```
 [[207, 229, 78], [141, 159, 138], [146, 109, 81], ...]
```

噉嘅一系列數字，每組數字有三個數，每個最細可以係 0 最大可以係 255，第一個數代表嗰一點有幾多紅（R），第二個數代表嗰一點有幾多綠（G），而第三個數代表嗰一點有幾多藍（B），而成串嘢當中有 {\displaystyle n} 組「每組三個數」嘅數－{\displaystyle n} 就係幅圖嘅像素；最後形成一個矩陣，令到部電腦可以記住幅圖嘅樣。

一幅點陣圖嘅解像度（resolution）係指幅圖有幾多粒像素（{\displaystyle n}），解像度愈高，幅圖就會愈精細，但同時亦都需要嘥更多嘅記憶體嚟保存。廿一世紀嘅電腦經已先進到幅幅圖像都閒閒地都有過 1,000,000 粒像素，用佢哋整嘅圖像就噉用肉眼睇望落好似冇點點噉，但係無論一幅電腦圖像幾精細都好，如果靠得夠近，係可以睇到佢由一點點組成嘅。

一幅點陣圖近睇嘅話就會睇得出係由好多點點所組成嘅。
### 向量圖像

內文：向量圖像
向量圖像（vector graphics）係相對於點陣圖嘅一種圖像記憶法。點陣圖嘅做法將一幅圖像以一大柞像素同埋「每粒像素係乜嘢色水」嘅方式嚟代表，並且要部電腦死記住每粒像素嘅色水數值。相比之下，向量圖像用嘅係一種冇咁靠死記嘅做法：喺向量圖像當中，部電腦會記住幅圖有啲乜嘢形狀同每個形狀喺乜嘢位置（每種形狀都可以用一條數學式表達；睇幾何學），仲有係幅圖每一忽係乜嘢色水，當個用家想睇幅圖像嗰時，部電腦再用呢啲資訊即場砌返幅圖出嚟。例：部電腦記住一幅向量圖像當中背景係白色，有一個紅色嘅圓形，圓形直徑係幾多幾多，圓心坐標喺邊（唔使好似點陣圖噉死記一大柞數字），然後當個用家叫部電腦顯示幅圖像嗰時，部電腦就即刻按照佢所知嘅呢啲資訊即刻砌返幅圖出嚟。喺某啲情況下，向量圖像儲起上嚟比較慳記憶體，而且無論放幾大，幅圖都唔會起格。

### 記住啲顏色

睇埋：紅綠藍色彩模式同埋HSV、HSL、HSB 色彩模式
電腦圖像學界有研究唔同嘅方法嚟向部電腦表示一點嘅顏色。頭先提到嘅紅綠藍色彩模式（**R**ed **G**reen **B**lue）係最常用嘅，幅圖每點用三個由 0 到 255 嘅數嚟表達嗰點有幾多紅幾多綠同幾多藍，但電腦圖像學界仲有第啲方法嚟向部電腦表示一點嘅顏色，例如 HSV 色彩模式（HSV model）噉，都係用三個數字代表一點嘅顏色，不過三個數字代表嘅唔係紅綠藍嘅濃度，而係代表**色相**（**H**ue；基本顏色屬性）、**飽和度**（**S**aturation；色彩純度）、同**光度**（**V**alue；色彩光度）。有電腦圖像學方面嘅學者指出，一般人類思考一隻顏色嗰陣都係傾向諗「呢隻係乜嘢色」（色相），而唔係諗「呢隻係幾多紅幾多綠幾多藍」，所以 HSV 色彩模式比較合乎直覺，對唔係專業做圖像嘢嘅人嚟講比較易用。

坦克遊戲當中嘅平面圖像。喺二維電腦圖像當中，每幅圖都係由多幅細啲嘅二維圖像砌出嚟嘅，嗰兩架坦克喺個遊戲程式入面都有各自嘅精靈圖。
### 精靈圖

內文：精靈圖
精靈圖（sprite）係指一啲用嚟結合埋一齊，並且產生一部大嘅景嘅二維圖像。例如係喺一隻二維嘅超級瑪利奧（Super Mario）電子遊戲入面，個遊戲嘅程式會內含主角嘅精靈圖同埋啲怪獸嘅精靈圖，而個主角瑪利奧嘅精靈圖又會包含咗（例如）佢企喺度嗰陣嘅樣、佢行路嗰陣嘅樣、同埋佢跳嗰陣嘅樣等等。喺每一個時間點，個程式都會

1. 接收玩家俾嘅輸入（例：如果玩家撳咗個「跳」掣，就將遊戲主角向上移動），
2. 按照「個主角同每隻怪獸喺邊個位置，喺度做緊乜」呢樣資訊，揀應該用邊幾幅精靈圖，並且
3. 按照每件物件嘅位置（可以睇埋物件導向程式編寫），將呢啲精靈圖同個背景合拼埋一齊，最後形成一個畫面。

精靈圖喺廿世紀嘅電子遊戲當中極之常見，好似係超任時代嘅遊戲多數都係用精靈圖嚟代表隻遊戲啲人物嘅。但由廿一世紀開始，電子遊戲產業變成以三維圖像做主導，會用精靈圖嘅遊戲已經買少見少，多數都係喺一啲運算能力冇咁勁嘅平台上面出嘅遊戲嗰度先會見到，好似係手機遊戲噉。 

一隻遊戲入面某個角色嘅精靈圖；遊戲程式入面儲住咗描繪個角色企喺度、行緊、跳緊... 等嘅樣嘅精靈圖。

三維圖像
----

一個旋轉緊嘅三維模型；個模型由好多個細少嘅簡單立體物件（立方體、錐體等等）組成。
內文：三維電腦圖像
三維電腦圖像（3D computer graphics）會要部電腦記住一啲三維嘅圖像。呢啲圖像會要求部電腦記住三維嘅資訊，即係長度、闊度、同高度－相比之下，二維嘅圖像淨係使部電腦記住一幅圖像長度同闊度。三維電腦圖像嘅處理會用到一啲二維圖像會用嘅技術（例如記顏色嘅方法），但又會涉及一啲二維圖像唔需要嘅技術，例如係彩現（睇下面）噉。

### 三維模型

內文：三維模型
三維模型（3D model），或者叫「立體模型」，係指一個（對於部電腦嚟講）用數字呈現嘅三維物體。三維模型可以用自動或者手動嘅方法整：有研究者會用一啲架生掃描一件真實嘅物件，再將啲數據傳去部電腦嗰度，等部電腦計算出個三維模型嘅樣，例如個掃描器嘅感應器可以射啲波出嚟，喺每一點嗰度量度吓「啲波射出去嘅時間」同「返到個感應器度嘅時間」之間差幾遠，噉就可以知道喺每個點度件物件嘅表面離個感應器幾遠，跟手將呢個數據傳過去部電腦，就係有關件物件嘅形狀嘅數據；另一方面，研究者又有得手動噉整啲 3D 模型出嚟。

舉個簡單例子說明，以下呢段 VRML 原始碼（VRML 係一種廿世紀常用嘅程式語言，專門用嚟整立體模型）代表咗一個喺一條好幼嘅藍色圓柱上面嘅紅色球體（即係好似珍寶珠噉嘅形狀）：

```
Shape { // 整一件物體出嚟。
 geometry Cylinder { // 設佢形狀係「圓柱體」。
 radius 0.1
 height 3.0} // 碌圓柱嘅高度係 3.0 個單位，但係半徑得嗰 0.1 個單位－係一碌好幼嘅圓柱。
 appearance Appearance {
 material Material { diffuseColor 0.1 0.1 0.9 } // 設佢色水係藍色。
 }
}

Transform { // 整一件新物體
 translation 0 2.5 0 // 將佢移去第一件物體對上 2.5 單位高嘅位置。
 children [
 Shape {
 geometry Sphere { radius 1 } // 設佢形狀係「球體」，半徑係 1 個單位。
 appearance Appearance {
 material Material { diffuseColor 1 0 0 } // 設佢色水係紅色。
 }
 }
 ]
}

```

呢段碼係一個簡單嘅例子，一啲複雜啲嘅模型－好似係一個人類角色嘅立體模型－閒閒地可以有成幾千幾萬行呢啲噉嘅碼。

### 線框模型

內文：線框模型
線框模型（wire-frame model）係三維模型嘅一種。呢啲模型會用類似上面嗰段 VRML 碼噉嘅源碼，話俾部電腦聽件物體有邊啲邊（edge），每條連接住兩個喺數學上連續嘅平滑表面，又或者俾部電腦知件物體有邊啲頂點（vertex）同每隻角嘅位置坐標以及邊啲角之間有邊，再俾部電腦喺要睇個模型嗰陣按某啲法則（例如「所有邊都係直線」）做彩現，砌個模型俾個用家睇。線框模型淨係考慮角同邊，唔似得多邊形網格噉會講埋表面嘅色水同光源等嘅資訊，所以一旦一個線框模型做咗彩現，望落會好似用鐵線幫件物體整咗個模型噉。如果喺個線框模型上加色水同光源等嘅資訊，就會變成一個完整嘅多邊形網格（睇下面）。即係好似噉：

一個線框模型例子：

每隻角嘅坐標

| 角 | X | Y | Z |
| --- | --- | --- | --- |
| 1 | 1 | 1 | 1
  |
| 2 | 1 | -1 | 1 |
| 3 | -1 | -1 | 1 |
| 4 | -1 | 1 | 1 |
| 5 | 1 | 1 | -1 |
| 6 | 1 | -1 | -1 |
| 7 | -1 | -1 | -1 |
| 8 | -1 | 1 | -1 |

個模型有邊幾條邊

| 邊 | 起始角 | 終結角 |
| --- | --- | --- |
| 1 | 1 | 2
  |
| 2 | 2 | 3 |
| 3 | 3 | 4 |
| 4 | 4 | 1 |
| 5 | 5 | 6 |
| 6 | 6 | 7 |
| 7 | 7 | 8 |
| 8 | 8 | 5 |
| 9 | 1 | 5 |
| 10 | 2 | 6 |
| 11 | 3 | 7 |
| 12 | 4 | 8 |

### 多邊形網格

內文：多邊形網格
多邊形網格（polygon mesh）係完整過－即係更加接近出得街嘅完成品－線框模型嘅三維模型。呢啲模型又係會用類似上面嗰段 VRML 碼噉嘅語言，話俾部電腦聽個模型有幾多個角（vertex）、每隻角嘅位置坐標、每兩個角之間有冇邊（edge）、同埋（更加重要嘅係）塊表面係乜嘢色水呀噉。而當個用家要睇個三維模型嗰陣，部電腦就會即場砌返個模型出嚟，再考慮個用家由乜嘢角度睇緊個模型，計出最後個平面影像應該係點嘅樣（彩現）。廿一世紀開始嘅電腦運算能力勁到可以俾個用家即場改變觀察角度，即刻以肉眼睇唔到嘅速度計出由呢個新角度睇個模型會係乜樣，等個用家可以自由噉睇個模型嘅唔同面。

好似係以下呢個立方體嘅立體模型噉：

上面幅圖嘅意思係：部電腦記住咗一串數字，代表每隻角嘅坐標位置（vertex list；{\displaystyle vn} 代表第 {\displaystyle n} 隻角），跟住另一串數字記住每條邊喺邊兩隻角之間（edge list；{\displaystyle en} 代表第 {\displaystyle n} 條邊），最後再有一串數字記住邊啲邊之間有表面（face list；{\displaystyle fn} 代表第 {\displaystyle n} 塊面）。當要用個模型嗰陣，部電腦就會睇吓個用家由乜嘢角度睇緊個模型，計出個模型由嗰個角度睇應該係點嘅樣嘅。

### 材質貼圖

內文：材質貼圖
材質貼圖（texture mapping）指嘅係，個圖像處理程式要加一啲仔細位、色水、或者表面材質落一個立體模型嗰度。個電腦圖像設計師喺整好咗一個立體模型之後，好多時會想個模型表面唔淨係只係得純色，而係想個模型望落似真實嘅物體，而真實嘅物體嘅表面好少可真係純色嘅，所以佢哋就會想加啲**材質**（texture）落個模型嗰度，令到個模型表面好似用（例如）木頭造嘅噉；佢要搵一幅二維嘅圖像返嚟，幅圖像望落似佢想要嗰款材質，然後再教部電腦將幅材質圖貼落去個模型嘅表面嗰度；成個過程可以想像成將一張有圖案嘅紙包落去一件立體物件嗰度噉。

材質貼圖嘅圖解；一個立體模型每個表面都有特定嘅材質。

攷
-

1. ↑  Lehmann, A. S. (2012). Taking the Lid off the Utah Teapot Towards a Material Analysis of Computer Graphics. *Zeitschrift für Medien-und Kulturforschung*, 2012(1), 169-184.
2. 1 2  Rudolf F. Graf (1999). *Modern Dictionary of Electronics*. Oxford: Newnes. p. 569.
3. ↑   Noll, A. Michael (March 1971). "Scanned-Display Computer Graphics". *Communications of the ACM*. 14 (3): 143–150.
4. ↑  Goldberg, Adele and Robert Flegal. "ACM president's letter: Pixel Art". *Communications of the ACM*. Vol. 25. Issue 12. Dec. 1982.
5. ↑  Greenberg, Ira (2007). *Processing: Creative Coding and Computational Art*. Apress.
6. ↑  Amy Arntson (2011). *Graphic Design Basics* (6th ed.). Cengage Learning. p. 194.
7. ↑  Toby Berk; Arie Kaufman; Lee Brownston (August 1982). "A human factors study of color notation systems for computer graphics". *Communications of the ACM*. 25 (8): 547–550.
8. 1 2  Hague, James. "Why Do Dedicated Game Consoles Exist? 互聯網檔案館嘅歸檔，歸檔日期2018年4月23號，.". *dadgum.com*.
9. ↑  Schaul, T. (2013, August). A video game description language for model-based or interactive learning. In 2013 IEEE Conference on Computational Inteligence in Games (CIG) (pp. 1-8). *IEEE*.
10. ↑  Khalifa, A. Green, M. C. Perez-Liebana, D. & Togelius, J. (2017, August). General video game rule generation. In 2017 IEEE Conference on Computational Intelligence and Games (CIG) (pp. 170-177). *IEEE*.
11. ↑  Sikos, L. F. (2016). Rich Semantics for Interactive 3D Models of Cultural Artifacts. *Communications in Computer and Information Science*. 672.
12. ↑  VRML Annotated Reference 互聯網檔案館嘅歸檔，歸檔日期2007年1月9號，..
13. ↑  Zhengxu, Z. Ghosh, S. K. & Link, D. (1990). Recognition of machined surfaces for manufacturing based on wireframe models. *Journal of Materials Processing Technology*, 24, 137-145.
14. 1 2  Bruce Baumgart, Winged-Edge Polyhedron Representation for Computer Vision. *National Computer Conference*, May 1975.
15. ↑  Blythe, David. *Advanced Graphics Programming Techniques Using OpenGL*. Siggraph 1999.
16. ↑  Wang, Huamin. "Texture Mapping 互聯網檔案館嘅歸檔，歸檔日期2019年7月11號，." (PDF). *department of Computer Science and Engineering*.

| * 睇
* 傾
* 改
電腦圖像（CG） |
| --- |
| 數碼圖像同圖像檔案格式 · 實時 CG · 電腦圖像學 · CG 詞彙表 |
| 2D | Pixel（解像度） · 點陣圖 · 精靈圖 · 向量圖像 · 等軸測遊戲圖像 |  |
| 3D | 

|  |  |
| --- | --- |
| 模型 | 網格同線框模型 · 材質貼圖（UV） · 多邊形同細節層次 · 包圍體 · T-姿勢 · 布公仔物理 · 猶他茶壺 · 天盒 |
| 彩現 | 

|  |
| --- |
| 虛擬鏡頭（視體） · 光照圖 · 掃描線彩現 · 光線追蹤 · 明暗處理 · 圖像管道 · 遮擋剔除 |

 |

 |
| 色彩表示 | RGB 色彩模式 · HSV、HSL、HSB 色彩模式 |
| 幾何變換 | 縮放 · 移位 · 轉動 · 仿射轉換 · 3D 投影 |
| 電腦動畫 | 關鍵格 · FPS · 動作捕捉 · 全動態影像 · 粒子系統 · 骨骼動畫（逆運動學） |
| 應用 | 用家介面（圖像用家介面） · 資訊可視化 · 數據視覺化 · 電子遊戲圖像 · 虛擬實境同擴張實境 · 神經造影 |
| 製作架生 | 程式語言（VRML · OpenGL · Processing） · 繪圖軟件（Photoshop · Blender · Autodesk Maya · Cinema 4D） |
| 主要硬件 | 顯示咭 · GPU · 顯示器（熒光幕） · 3D 打印 · 彩現農場 |
| 相關領域 | 電腦科學 · 電腦程式編寫 · 電腦模擬 · 物理學（光學） · 幾何學（歐幾里得幾何 · 解析幾何） · 數碼藝術 · 圖像設計 |
| 拉雜相關 | 視像遊戲 · 3D 掃瞄 · 色彩理論 · 景深感知 · 視覺效果 · Compositing · 數碼繪畫 · 演算法藝術 · 混疊 · 2.5D · 彼思 |
| CG 類 |

| * 睇
* 傾
* 改
電腦科學 |
| --- |
| 研究運算嘅科學工程領域 |
| 重要概念 | 運算 · I/O · 電腦 · 運算邏輯 · 數論 · 二進制 · 數學邏輯 · 離散數學（圖論） · 抽象化 · 電腦科學詞彙表 |  |
| 電腦理論 | 

|  |  |
| --- | --- |
| 運算理論 | 自動機理論 · 可運算度理論 · 運算複雜度理論 · 圖靈機 · 量子運算 |
| 資訊理論（資訊 · 訊號 · 資訊熵 · 編碼理論） · 資料類型‎同數據結構 · 系統資源 · 演算法（分析） · 形式化方法 |

 |
| 電腦系統 | 電腦架構（邏輯門 · 指令集架構 · 微架構 · 多元處理 · 作業系統） · 並行運算、平行運算同分散運算 · 電腦性能 |
| 電腦通訊 | 

|  |  |
| --- | --- |
| 電腦網絡 | 網絡傳輸協議 · 網絡拓樸 · 數據傳輸 · 互聯網 · 網頁設計 |
| 電腦保安 | 網絡保安 · 漏洞 · 公共漏洞同暴露 · 網絡攻擊 · 電腦病毒 · 密碼學 |

 |
| 程式編寫 | 程式語言（程式語言理論 · 低級同高級程式語言 · 控制流程） · 程式執行 · 編譯器 · 程式編寫範式 |
| 電腦應用 | 

|  |  |
| --- | --- |
| 數碼藝術 | 電腦圖像（2D · 3D · 電腦動畫 · 資訊可視化 · VR · AR · 電腦圖像學） · 電腦音樂 |
| 軟件工程 | 電腦軟件 · 軟件開發 · 軟件需求 · 軟件項目管理 · 電子遊戲製作 |
| HCI | 

|  |
| --- |
| 用家 · 易用度 · 用家介面（設計 · 圖像 · 命令行 · 腦機） |

 |
| 其他應用 | 資訊系統（數據庫） · 科學運算（電腦模擬） · 運算數論 · 電腦代數 |

 |
| AI | AI 哲學 · 知識表示 · 自動計劃 · 電腦視覺 · NLP · 機械學習（ANN · 監督式學習 · 非監督式學習 · 強化學習） |
| 相關領域 | 

|  |  |
| --- | --- |
| 　工程學 | 電子工程（電訊） · 電腦工程 · 資訊科技 · 機械人學 · 機電工程 |
| 邏輯學 · 數學（統計學 · 博弈論） · 認知科學 · 模控學 · 資訊科學 · 系統科學 |

 |
| 電腦科學類 |