3D 電腦圖像

3D 電腦圖像粵拼saam1 di1 din6 nou5 tou4 zoeng6 | 英文3D computer graphics)會係要電腦處理一啲三維電腦圖像。呢啲圖像會要求部電腦記住三維嘅訊息,即係長度、闊度、同高度-相比之下,二維嘅圖像淨係使部電腦記住一幅圖像長度同闊度。三維電腦圖像嘅處理會用到一啲二維圖像會用嘅技術(例如記顏色嘅方法),但又會涉及一啲二維圖像唔需要嘅技術,例如係彩現(睇下面)噉。

一個旋轉緊嘅三維模型;個模型由好多個細少嘅簡單立體物件(立方體錐體等等)組成。

三維模型

三維模型(3D model),或者叫「立體模型」,係指一個(對於部電腦嚟講)用數字呈現嘅三維物體。三維模型可以用自動或者手動嘅方法整:有研究者會用一啲架生掃描一件真實嘅物件,再將啲數據傳去部電腦嗰度,等部電腦計算出個三維模型嘅樣,例如個掃描器嘅感應器可以射啲出嚟,喺每一點嗰度量度吓「啲波射出去嘅時間」同「返到個感應器度嘅時間」之間差幾遠,噉就可以知道喺每個點度件物件嘅表面離個感應器幾遠,跟手將呢個數據傳過去部電腦,就係有關件物件嘅形狀嘅數據;另一方面,研究者又有得手動噉整啲 3D 模型出嚟。舉個簡單嘅例子說明,以下呢段 VRML 原始碼(VRML 係一種廿世紀常用嘅程式語言,專門用嚟整立體模型)代表咗一個喺一條好幼嘅藍色圓柱上面嘅紅色球體(即係好似珍寶珠噉嘅形狀)[1]

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 }     // 設佢色水係紅色。         }      }     ]}

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

多邊形網格

多邊形網格(polygon mesh)係常用嘅三維模型。呢啲模型會用類似上面嗰段 VRML 碼噉嘅程式語言,話俾部電腦聽個模型有幾多個角(vertex)、每隻角嘅位置坐標、每兩個角之間有冇邊(edge)、同埋(如果有)塊表面係乜嘢色水呀噉。當個用家要睇個三維模型嗰陣,部電腦就會即場砌返個模型出嚟,再考慮個用家由乜嘢角度睇緊個模型,計出最後個平面影像應該係點嘅樣。廿一世紀開始嘅電腦運算能力勁到可以俾個用家即場改變觀察角度,即刻以肉眼睇唔到嘅速度計出由呢個新角度睇個模型會係乜樣,等個用家可以自由噉[3]

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

上圖所示嘅如下:部電腦記住咗一個串數字,代表每隻角嘅坐標位置(vertex list; 代表第 隻角),跟住另一串數字記住邊對邊對角之間有邊(edge list; 代表第 條邊),最後再有一串數字記住邊啲邊之間有表面(face list; 代表第 塊面)。當要用個模型嗰陣,部電腦就會睇吓個用家由乜嘢角度睇緊個模型,計出個模型由嗰個角度睇應該係點嘅樣嘅[3]

材質貼圖

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

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

睇埋

參考資料