利用電腦繪製出想要的圖片用來顯示或者應用, 使人類的生活更美好這就可以稱做電腦圖學. 在這裡我簡單的把圖學的領域分成擬真顯像跟非擬真顯像.
廣義來說:
擬真--用電腦描繪出逼真的場景
非擬真--用電腦描繪出具有藝術家風格的圖片
(非擬真的領域很多元且包羅萬象, 我們只要先了解如何用電腦計算出逼真的圖片就行了.)
在電腦的世界裡, 所有的東西都是離散化的表現
. 最終的圖片結果都將會透過你的螢幕顯示出來. 想像一下, 把你的螢幕切割成好幾個大小一樣的正方形,如圖一, 當收到指令訊號後, 每個小正方形將填滿該有的(你想要的)顏色 , 故可稱它為像素. 所以當你想要用電腦描繪出某個物體時,問題會有:
1.物體該如何表示(不管是3D還是2D的物體)
2. 物體所佔的像素有幾個且在螢幕的哪些位置
3.
物體的像素顏色如何正確計算並符合真實的現象.
圖一
先來談談
1.
物體的表示 :
a. 參數化的定義 b. 多邊形的定義 c. 容積單元定義 d. 可建構的立體幾何元件表示法 (CSG)
A. 參數化的表示: 可以利用參數化的數學式子, 定義出空間中的曲線 , 不管是二維還是三維的物體,其形狀可以由數條曲線去描繪,好處是只需要很少的儲存空間和對物體表面的控制可很自由
( 相關的知識 : Bezier curves, B-spline representation)
B. 多邊形的定義: 空間中的物體可以許多的多邊形去表示,如圖二, 可以看到多邊形的最小單位可以是一個三角形(面), 物體的表面可以近似的由無數個三角形去描繪. 任兩點可以表示出一條直線, 而三條線可以表示出一三角形, 所以物體精細度的控制來自於使用多少個多邊形去近似. 這種表示方式很直覺也很簡單,但需要的記憶容量就很多了.
圖二, From: wiki
C. 容積單元: 把三維的空間,分割成許多的立方體, 找出物體所占有的立方體個數及其位置, 算是空間的離散化表現,如圖三 ,我們可以把立方體稱為體素(Voxel),你可以用Octree 的方式去儲存, 當然不一定要立方體也可以是球體等幾何元件, 近年此方法有越來越流行的趨勢, 尤其在light scattering的應用上此方法有其優勢(不同的幾何元件有可能會影響最終的圖片品質或者計算效能)
D. CSG: 物體的形狀可以是一組許多不同的幾何元件所組成的, 並利用布林運算決定每個幾何元件的組合方式如圖四, 可以觀察出對於機械型式的物體用這種方式很簡單, 但對於細緻的物體這種方法很難做到, 並且對於物體形狀的編輯很不彈性,除非你事先有很多不同的幾何元件.
圖四, From : Textbook
這麼多表示方式, 該選哪種? 一般來說, 大部分的應用都可以用多邊形的方式去定義物體, 在下小節會介紹這種方式的通用文件格式.



沒有留言:
張貼留言