電腦圖像詞彙表

以下係**[[電腦圖像]]**，可以借英文簡稱 **CG**，嘅常用詞彙一覽。電腦圖像泛指用電腦方法整出嚟嘅圖像或者視像。製作電腦圖像可以複雜得好交關，製作者成日都要做編程，亦要對相關嘅演算法有返咁上下認識。

電腦圖像係視像遊戲製作不可或缺嘅一部份。譬如依家要製作用立體圖像嘅遊戲，製作遊戲關卡嘅人就必定要準備好啲立體模型，再用呢啲模型砌出一個個能夠令玩家產生投入感嘅遊戲環境。事實係，遊戲製作團隊通常都會聘請電腦圖像專家，專門負責處理呢啲嘢。

## 基本概念

*幾何學：研究空間同形狀等概念嘅數學子領域；好似係坐標系統同埋計算幾何物體大細嘅方程式，冚唪唥都係嚟自幾何學研究嘅；响廿一世紀初嘅 CG 界，幾何學係不可或缺嘅知識，譬如用 Blender 等嘅 CG 軟件製作 3D 模型，往往就要始於簡單嘅幾何形狀，然後再更改個模型啲角同邊，最後得出想要嘅形狀。
*解像度：簡單講可以當係反映幅圖像「有幾精細」嘅數值；某幅圖或者某個畫面嘅解像度會以`闊 × 高`噉嘅形式表示，當中闊度同高度嘅單位都係像素，例如 `1024 × 768` 就表示幅圖或者個畫面 1024 粒像素咁闊 768 粒像素咁高。像素嘅數量愈多，幅圖就愈能夠精細。 
*圖像檔案格式：處理數碼圖像嘅檔案格式；一套圖像檔案格式會以特定嘅方法將「幅圖像係乜樣」嘅資訊儲喺記憶體裏面，唔同格式各有優劣，有啲可能會將檔案壓縮得勁啲，能夠令檔案更慳位但同時又會搞到個檔案冇咁高質。廿一世紀初多人用嘅圖像檔案格式包括 PNG、JPEG 同 GIF 呀噉。
*實時電腦圖像同幀率：指實時噉行嘅 CG；實時運算簡化講即係喺某啲緊湊嘅時間限制下行運算例如視像遊戲就係實時 CG 嘅例子，行緊遊戲程式嘅電腦要係噉按玩家畀嘅輸入計出跟住落嚟要顯示咩圖像，而由於玩家可以喺一秒內撳成閒閒哋幾個掣咁多，所以部機就要係噉進行快速運算，計下一刻要顯示乜嘢。
**喺 2020 年代，會攞出街賣嘅遊戲閒閒哋會有成 60 FPS（即係每秒顯示 60 幅唔同嘅影像），所以遊戲機或者畀人攞嚟打機用嘅 PC 要以極高速係噉計「下一刻要顯示乜圖像」。
*粒子系統：用嚟整粒子效果嘅演算法，可以用嚟製作煙、雲或者火焰等嘅視覺效果；虛擬碼可以噉想像：
*:
```arduino
void setup() { // 設定個背景
  size(640,360);
  ps = new ParticleSystem(); // 系統有若干粒「粒子」。
}
 
void draw() {
  background(255); 
  ps.run(); // foreach 粒子，計佢跟住落嚟會點郁。
}
```


*最細包圍框：幾何學概念，某幾何物體 *S* 嘅最細包圍框係一個**盒**（喺 2D 空間，盒係指長方形），個**盒**達致包含晒 *S* 入便嘅所有點，而且盡可能有咁細得咁細。喺應用上，CG 相關嘅演算法成日會用最細包圍框嚟做一啲「唔使精確，最緊要快」嘅運算，譬如係碰撞探測噉。睇埋包圍體。

## 幾何變換

CG 上講嘅幾何變換涉及操控圖像同 3D 模型等物體嘅屬性（位置或者角度呀噉）嚟到將想用嘅物體移去目標位置或者做某啲特定嘅變形。

*移位：將物體由空間入面嘅一個位置移去另一個例：要做嘅嘢係將 3D 模型位移 (3, 7, -10)，部電腦要將個 3D 模型每隻角嘅 x 坐標加 3，y 坐標加 7，同 z 坐標減 10，達致改變個模型嘅位置。
*縮放：指將件物體按比例放大 n 倍例：將 p_1 同 p_3 之間嘅距離增加 n 倍，而 p_2 同 p_4 之間嘅距離等等... 同理。
*轉動：將件物體喺空間入面旋轉若干角度，部電腦要按旋轉嘅角度同沿乜嘢旋轉嚟計出每隻角嘅新坐標。可以睇吓剛體動力學上講到嘅定向概念。
*仿射轉換：幾何變換一類，泛指變換嗰陣起碼
*#保留共線特質，即係如果有拃點喺變換前冚唪唥都喺同一條線上面，變換後佢哋都仲會喺同一條線上面；
*#保留線上面啲點嘅距離比例，即係例如有 A、B 同 C 三點喺同一條直線上，AB:BC = 1:2，轉換過後「AB:BC = 1:2」依然仲會成立；
**移位、縮放同轉動都屬於仿射轉換。

## 色彩表示

## 2D 圖像

2D 電腦圖像係指 2D 嘅 CG，啲圖（包括用嘅圖像同最後成品）上面嘅點可以攞 2D 向量表達佢哋嘅位置。
*點陣圖：一幅點陣圖由若干粒像素組成；電腦所顯示嘅點陣圖，每一幅都係由一大拃像素組成，每粒像素都有
*#個坐標記住佢喺邊個位，同埋
*#有一隻色，隻色水係由唔同濃度嘅紅、綠同藍結合形成（例如紅溝藍會出紫），
**從而一齊組成成幅圖。
*向量圖像：相對於點陣圖嘅一種圖像記憶法；向量圖像用嘅係一種冇咁靠死記嘅做法：喺向量圖像當中，部電腦會記住幅圖有啲乜嘢形狀同每個形狀喺乜嘢位置（每種形狀都可以用數學式表達；睇幾何學），仲有係幅圖每一忽係乜嘢色水，當個用家想睇幅圖像嗰時，部電腦再用呢啲資訊即場砌返幅圖出嚟。
*精靈圖：用嚟「結合埋一齊、並且產生大影像」嘅 2D 圖像。

*等軸測遊戲圖像

## 3D 圖像

整 3D 電腦圖像會用到以下概念。
*景深錯覺：指人嘅視覺能夠攞住一幅 2D 圖像，判斷圖像入面嘅每件物件「離自己有幾遠」，好似係下面幅相噉，幅相係 2D 嘅，但睇相嘅人往往能夠講得出（例如）「幅相最左邊嗰架車離鏡頭最近」，反映睇相嘅人能夠感受到「幅圖入面嘅唔同物件，分別離自己（鏡頭）有幾遠」；人腦對景深嘅判斷可以受到好多因素左右，簡單例子有「近嘅物件會遮住遠嘅物件，所以如果 A 遮住咗物件 B，A 比較似係喺 B 前面」噉。

*3D 投影：一大類攞嚟做「用 2D 圖像表達 3D 物體」呢樣工作嘅方法，包括透視投影同平行投影呀噉。
**透視投影：講緊製作 2D 影像嗰陣，用消失點同「物件望落嘅大細」等嘅技巧，令望住幅 2D 影像嘅人產生「幅 2D 圖像係表示緊一笪 3D 空間」嘅感覺；廿一世紀初嘅主流 CG 軟件都會提供透視投影功能，畀用家用透視投影概念調較整緊嘅圖像，例如 Blender 就畀用家揀係咪要用透視式嘅角度望整緊嗰個景。
**平行投影：一大類嘅 3D 投影做法。平行投影會由想像中件物體射啲彼此之間成平行嘅射線；平行投影被指能夠造出客觀描述件物體嘅圖，但因為缺乏景深嘅原因做唔到逼真圖像（尤其係同透視投影比）所以美術上比較少用。

### 3D 模型

立體模型，或者叫 3D 模型：指（對於部電腦嚟講）用數字呈現嘅 3D 物體，任何 3D CG 嘢都係以 3D 模型做起始點嘅。出名嘅 3D 模型有猶他茶壺同虛擬地球呀噉。
*多邊形網格：一幅多邊形網格（好似下圖噉）會包含若干隻**角**，角係空間入面一點；啲角之間會有**邊**；如果有拃邊形成咗一塊完整嘅 2D 表面，塊表面就可以做一塊**立面**，面係件 3D 物體睇得到嗰浸表面。喺 Blender 等嘅圖像軟件入便整 3D 模型，最基本嘅做法係同角、邊同立面做幾何變換（移位、變大細等），大致造出想要嘅形狀。好多 CG 專家認為，模型嘅表面唔使太精細，因為望落似表面細節嘅效果，可以用着色器同材質貼圖技巧造出嚟。




*線框模型：基本上等同多邊形網格，只係冇咗啲立面，淨係展示個模型啲角同邊（好似下圖噉）；喺好多情況下，線框模型都（同多邊形網格比）會方便用家睇清楚個模型嘅形狀。廿一世紀初嘅 CG 軟件會畀用家揀用邊種方式（多邊形網格定線框模型）嚟睇個 3D 模型。




*着色器

*多邊形：用嚟衡量啲 3D 模型有幾複雜嘅指標，如果話某個 3D 模型多邊形多，即係話個模型有好多塊表面，通常表示個模型望落多細節。
*細節層次，簡稱 LOD：指 3D 模型**嘅表示**有幾複雜；例如想像家陣有個 3D 模型，設計者將個程式設計成如果用家近睇個模型，就將個模型啲多邊形完全顯示晒出嚟（LOD 高）而如果用家遠睇個模型，就將個模型簡化（少噉咗多邊形）噉顯示（LOD 低）；噉就可以避免部機要做不必要咁仔細嘅運算，慳返運算用嘅時間。可以睇睇最佳化嘅概念。


*材質貼圖
**UV 貼圖
**法線貼圖
*明暗處理
*3D 掃瞄
*天盒：將虛擬 3D 世界用一個虛擬嘅方柱包圍住，並且將天同山等嘅影像投射落去個方柱嘅內部表面度，噉個虛擬鏡頭無論點轉，用家都會見到個遊戲世界嘅天同「遙遠」嘅背景嗰度有嘢；喺廿一世紀初，天盒好多時會係圓頂噉形嘅，進一步提升遊戲世界嘅像真度。

*邏輯代數

### 角色模型

*T-姿勢：一般係遊戲角色 3D 模型嘅預定姿勢；喺 3D 遊戲程式入面，每個遊戲角色都會有個 3D 模型代表佢，而個程式內部多數會將佢個姿勢預設成「企喺度，雙手向外伸直」（由前面睇好似英文字母 T 噉），個角色要做動作嗰陣先郁手改變佢個模型嘅姿勢。
*骨骼動畫：指角色嘅 3D 模型分做兩部份表面同「骨架」；個 3D 模型嘅骨架會係一條條隱形嘅線；骨架一般會穿透個模型嘅四肢、頸同手指等需要拗彎嘅部份；當整電腦動畫嘅人想個 3D 模型做唔同動作嗰陣，需要做嘅就係向電腦下指令，叫部電腦（例如）手腕接住嗰兩條骨架向某個方向轉若干咁多角度。
*逆運動學：演算法一種，做嘅係攞一條條運動鏈，例如係某個角色嘅 3D 模型嘅骨架，睇吓條鏈嘅最尾端要擺邊，再計吓條鏈嘅其餘部份需要擺咩位同埋成咩角度；舉例說明，想像有隻視像遊戲，個玩家角色企喺唔平嘅表面（例如遊戲世界嘅樓梯）上，左腳下嘅地板高度同右腳下嘅地板唔同，如果隻遊戲唔做逆運動學，會搞到個角色一係其中一隻腳企喺空氣上面，一係其中一隻腳 clip 咗入去塊地嗰度；逆運動學演算法做嘅係攞嗰兩隻腳，計吓個角色嘅膝頭分別要拗彎幾多度，先可以令個角色兩隻腳板都啱啱好掂到地。
*布公仔物理：物理模擬，講緊教電腦處理角色嘅 3D 模型點樣跌低倒地（好似跌落地嘅公仔噉）嘅；布公仔物理喺視像遊戲當中成日用到喺廿一世紀初嘅 3D 遊戲當中，虛擬角色死嗰陣，通常會用布公仔物理嚟控制個角色嘅 3D 模型倒地。

### 彩現

彩現係講緊運用電腦程式由一柞 3D 模型度整一幅 2D 影像出嚟嘅過程，係 CG 製作上最基本嘅工序之一。
*圖像管道：指定彩現步驟嘅理論模型。
*景檔案：一個景檔案會包含多種資訊，包括係個景用咗乜嘢 3D 模型、每個模型喺邊個位、光源喺邊、鏡頭擺喺邊個位、同埋幾何變換呀噉，描述個景係點嘅；然後部電腦會將呢個檔案入面嘅數據傳去一個彩現程式度。
*光照圖：3D CG 會用嘅一種數據結構；部電腦事前計好一個景檔案每塊表面有幾光，將呢樣資訊儲起嚟俾彩現程式用。
*虛擬鏡頭：3D 電腦圖像會用嘅程式系統；呢個系統會負責控制一個（或者一拃）鏡頭，個鏡頭喺虛擬世界入面有個位置，鏡頭所見到嘅影像會係用家見到嘅嘢。
**順帶一提，鏡頭系統嘅設計好多時係視像遊戲設計嘅重要部份，例如恐怖遊戲名作《生化危機系列》嘅某啲作品就用咗特別嘅做法，無論玩家角色企邊，鏡頭都淨係影住個景嘅某一個角度，搞到玩家成日睇唔到角落頭有乜被指係增強咗懸疑同恐怖嘅感覺。
**視體：指虛擬鏡頭會影到嗰笪空間。下圖左下角黑色嗰嚿嘢係鏡頭，笪有色空間就係個鏡頭嘅視體。




*光效
*光線追蹤：彩現演算法一種；個程式會模擬物理學上嘅光，假想有光由光源射出，計出每條光線會由乜嘢表面反射（同埋反射咗之後變成乜嘢顏色）最後進入個鏡頭度變成咩樣；喺廿一世紀初，呢種做法（同掃描線彩現比起嚟）可以創造出好迫真嘅 CG，但運算量好大，所以好多時要嘥好多時間行。
*掃描線彩現
*遮擋剔除
*彩現農場：例如要播有高質 CG 嘅戲嗰陣，部電腦要高速做極大量嘅運算，而呢啲噉嘅運算普通嘅電腦好多時做唔嚟，可能會  成幾日至出到一格；彩現農場就係一啲高性能嘅電腦叢集，專門用嚟高速做彩現；拍戲等工作成日都會用到彩現農場。

## 電腦動畫

*動作捕捉（英文叫 motion capture，簡稱 mocap；）：技術一種，用嚟同角色嘅 3D 模型整動畫；用 mocap 整動畫嗰時，製作人員會叫受過訓嘅人員戴感應器喺身，戴住感應器嘅人跟住就會做出各種動作，途中每個感應器會將佢「每點時間喺咩位置」嘅資訊傳返去電腦度，然後製作人員就可以叫部電腦將角色嘅 3D 模型嘅各忽對應落相應嘅感應器數據度（例如角色 3D 模型嘅手踭，會對應個人員嘅手踭）就會令到角色嘅 3D 模型做出好似真人噉嘅動作。

## 拉雜相關

*電子遊戲圖像
*Compositing（）
*3D 打印
*2.5D：視像遊戲概念，講緊隻遊戲嘅圖像以 3D 為主，但郁動方向上係 2D；例子有《風之少年系列》，喺呢個平台遊戲當中，玩家控制嘅主角古羅亞只可以有上下左右四個方向郁動，但關卡嘅背景嗰度會有三維圖像。

## 睇埋
*電腦科學詞彙表
*視像遊戲詞彙表
*視像遊戲製作
*視藝設計原則

## 註釋

## 詞彙
文中用咗嘅重要詞彙嘅外語版（預設係英文）：

## 引咗

## 拎
* 簡介電腦圖像，1.3 版
* Modifier，呢度講 Blender 入便有啲咩**修改器**（譯自英文 modifier），可以用嚟令到立體模型製作過程更加方便快捷，例如係可以叫 Blender 攞住手上嘅物件，喺指定位置度造出若干件同樣嘅物件，噉要整（譬如）鎖鏈嘅立體模型嗰陣就方便好多。