3D電腦圖形
3D電腦圖形(英語:3D computer graphics)是電子計算機和特殊3D軟件幫助下創造的作品。一般來講,該術語可指代創造這些圖形的過程,或者3D電腦圖形技術的研究領域,及其相關技術。該術語也用於指代這些模型本身。採用該技術的電腦科學的分支稱為3D電腦圖形學[來源請求]。
3D電腦圖形和二維電腦圖形的不同之處在於電腦主記憶體儲存了幾何數據的3D表示,用於計算和繪製最終的二維圖像。
一般來講,為3D電腦圖形準備幾何數據的3D建模的藝術和雕塑及照相類似,而二維電腦圖形的藝術和繪畫相似。但是,3D電腦圖形依賴於很多二維電腦圖形的相同演算法。
電腦圖形軟件中,該區別有時很模糊:有些二維應用程式使用3D技術來達到特定效果,譬如燈光,而有些主要用於3D的應用程式採用二維的視覺技術。二維圖形可以看作3D圖形的子集。
相對於二維電腦圖形而言,3D電腦圖形更顯真實,而且對空間操作的隨意性也較強。
技術
OpenGL和Direct3D是兩個用於產生即時圖象的流行的API。(即時表示圖象的產生在「真實的時間」中,或者說「隨時」)。很多現代顯示卡提供基於這些API的一定程度的硬件加速,經常使得複雜的3D圖象即時產生。但是,真正產生3D景象並不一定要使用其中的任何一個。
3D電腦圖形的建立
建立3D電腦圖形的過程可以順序分為三個基本階段:
建模
建模階段可以描述為「確定後面場景所要使用的對象的形狀」的過程。有很多建模技術,他們包括(但不僅僅是):
建模過程可能也包括編輯物體表面或材料性質(例如,顏色,熒光度,漫射和鏡面反射分量—經常被叫做粗糙度和光潔度,反射特性,透明度或不透明度,或者折射指數),增加紋理,凹凸對映和其它特徵。
建模可能也包括各種和準備動畫的3D模型相關的各種活動,有時在複雜的任務建模中,這將自己成為一個階段,稱為索具(rigging)。對象可能用一個''骨架''撐起來,一個物體的中央框架,它可以影響一個對象的形狀或運動。這個對動畫構造過程很有幫助,骨架可以自動決定模型相關部分。參看正運動動畫和逆運動動畫。在索具階段,模型也可以給定特定的控制,使得運動的控制更為簡便和直觀,例如用於聲音嘴唇同步的面部表情控制和嘴形(音素)。建模可以用以此為目的設計的程式(例如Lightwave建模軟件,Rhinoceros 3D,Moray),應用的模組(Shaper,3D Studio Max的Lofter)或者某些場景描述語言(例如POV-Ray)。在有些情況,這些階段之間沒有嚴格的區別,在這些情況下,建模只是場景建立過程的一部分(例如Caligari trueSpace就屬於這種情況)。
三角剖分和網格
把物體的表示(例如球面的中點坐標和它的表面上的一個點所表示的球面),轉換到一個(球面的)多邊形表示的過程,稱為剖分(tesselation)。該步驟用於基於多邊形的繪製,其中對象從象球面,圓錐面等等這樣的抽象的表示(「體素」),分解成為所謂「網格」,它是互相連接的三角形的網絡。
三角網格(而不是正方形等形狀)比較流行,因為它們易於採用掃描線繪製進行繪製。
多邊形表示不是所有繪製技術都必須的,而在這些情況下,從抽象表示到繪製出的場景的轉換不包括剖分步驟。
場景佈局設置
在渲染成圖象之前,模型必須放置在一個場景中。這定義了模型的位置和大小。
場景設置涉及安排一個場景內的虛擬物體,燈光,攝像放像機和其他實體,它將被用於製作一幅靜態畫面或一段動畫。
照明是場景佈置中一個重要的方面。就象在實際場景佈置的時候一樣,光照是最終作品的審美和視覺質素的關鍵因素之一。因而,它是一項很難掌握的藝術。光照因素可以對一個場景的氛圍和情緒反映作出重大貢獻,這是為攝影師和舞台照明師所熟悉的事實。
設置動畫
動畫是指對模型隨時間的變化描述。常見的方法有設置關鍵幀,動作捕捉、骨骼動畫和逆運動學(ik)等 這些技術經常結合使用。
渲染
反射和明暗模型
現代3D電腦圖形嚴重的依賴於一個簡化的反射模型稱為Phong反射模型,它和Phong明暗圖是完全不同的主題,不能混淆二者。
在光的折射中,有一個重要的概念稱為折射率。在多數3D編程實現中,該值「index of refraction」(折射率)通常簡寫為「IOR」。
3D電腦圖形中流行的反射繪製技術包括:
3D圖形應用程式介面(API)
3D圖形已經非常流行,特別是在電子遊戲中,這使得專門化的應用程式介面(API)被建立出來用於簡化電腦圖形產生的各個階段的處理。這些API對於電腦圖形硬件廠商也是極為重要的,因為他們提供給程式設計師一種使用硬件的抽象方式,而依然能夠利用那個顯示卡的特定硬件的長處。
這些3D電腦圖形的API頗為流行:
- OpenGL和OpenGL着色語言
- OpenGL ES嵌入式裝置的3DAPI
- Direct3D(DirectX的子集)
- RenderMan
- RenderWare
也有一些高層的3D場景圖API,他們提供在底層繪製API之上的附加功能。處於活躍的發展中的這類程式庫包括:
裝置生成
3D圖形除了使用軟件以人工方式建模外,照相測量法、3D掃描等方式也是近年來逐漸成熟的技術,可透過相機或3D掃描器將已存在之實體資料轉化為數碼化3D資料,生成資料可能以面(Surface)或點雲(Point cloud)的方式呈現[1]。
參考文獻
- ^ 李家宇,《3D都市尺度激光掃瞄在建築數碼典藏之應用-以新竹縣北埔鄉、竹東鎮及大台北地區為例》,台北:台灣科技大學建築研究所博士論文,2012。