三維計算機圖形

三維計算機圖形

fram徠e)的技術,它使得場景內複雜的運動的創建變得簡單。 derman。 derMan

正文


簡單三維繪製。
三維計算機圖形(3D computer graphics)徠是計算機和特殊三維軟體幫助下創造的藝術作品。一般來講,該術語可指代創造這些圖形的過程,或者三維計算機圖形技術的研究領域,及其相關技術。
三維計算機圖形和二維計算機圖形的不同之處在於計算機內存儲了幾何數據的三維表示,用於計算和繪製最終的二維圖像。
一般來講,為三維計算機圖形準備幾何數據的三維建模的藝術和雕塑及照相類似,而二維計算機圖形的藝術和繪畫相似。但是,三維計算機圖形依賴於很多二維計算機圖形的相同演演算法。
計算機圖形軟體中,該區別有時很模糊;有些二維應用程序使用三維技術來達到特定效果,譬如燈光,而有些主要用於三維的應用程序採用二維的視覺技術。二維圖形可以看作三維圖形的子集。

技術


OpenGL和Direct3D是兩個用於產生實時圖象的流行的API。(實時表示圖象的產生在‘真實的時間’中,或者說‘隨時’)。很多現代顯卡提供了基於這些API的一定程度的硬體加速,經常使得複雜的三維圖象實時產生。但是,真正產生三維景象並不一定要使用其中的任何一個。

三維計算機圖形的創建


創建三維計算機圖形的過程可以順序分為三個基本階段:
建模
場景布局
繪製

建模


建模階段可以描述為確定後面場景所要使用的對象的形狀的過程。有很多建模技術,他們包括(但不僅僅是):
構造實體幾何
NURBS建模
多邊形建模
子分曲面
隱函數曲面
建模過程可能也包括編輯物體表面或材料性質(例如,顏色,熒光度,漫射和鏡面反射分量—經常被叫做粗糙度和光潔度,反射特性,透明度或不透明度,或者折射指數),增加紋理,凹凸映射和其它特徵。
建模可能也包括各種和準備動畫的三維模型相關的各種活動(雖然在複雜的任務建模中,這將自己成為一個階段,稱為索具(rigging))。對象可能用一個骨架撐起來,一個物體的中央框架,它可以影響一個對象的形狀或運動。這個對動畫構造過程很有幫助,骨架的運動自動決定模型相關部分。參看正運動動畫和逆運動動畫。在索具階段,模型也可以給定特定的控制,使得運動的控制更為簡便和直觀,例如用於聲音嘴唇同步的面部表情控制和嘴形(音素)。
建模可以用以此為目的設計的程序(例如,Lightwave建模軟體,Rhinoceros 3D, Moray),應用的模塊(Shaper,3D Studio Max的LOFTER)或者某些場景描述語言(例如POV-Ray)。在有些情況,這些階段之間沒有嚴格的區別;在這些情況下,建模只是場景創建過程的一部分(例如Caligari trueSpace就屬於這種情況)。

加工


場景布局設置


場景設置涉及安排一個場景內的虛擬物體,燈光,攝像機和其他實體,它將被用於製作一幅靜態畫面或一段動畫。如果用於動畫,該階段通常採用叫做“關鍵幀”(key frame)的技術,它使得場景內複雜的運動的創建變得簡單。使用關鍵幀的幫助,而不是必須對於動畫中的每一幀設定對象的位置,方向或比例,只需設立一些關鍵的幀,它們之間的狀態可以用插值得到。
照明是場景布置中一個重要的方面。就象在實際場景布置的時候一樣,光照是最終作品的審美和視覺質量的關鍵因素之一。因而,它是一項很難掌握的藝術。光照因素可以對一個場景的氛圍和情緒反映作出重大貢獻,這是為攝影師和舞台照明師所熟悉的事實。

三角剖分和網格


把物體的表示(例如球面的中點坐標和它的表面上的一個點所表示的球面),轉換到一個(球面的)多邊形表示的過程,稱為剖分(tesselation)。該步驟用於基於多邊形的繪製,其中對象從象球面,圓錐面等等這樣的抽象的表示("體素"),分解成為所謂"網格",它是互相連接的三角形的網路。
三角網格(而不是正方形等形狀)比較流行,因為它們易於採用掃描線繪製進行繪製。
多邊形表示不是所有繪製技術都必須的,而在這些情況下,從抽象表示到繪製出的場景的轉換不包括剖分步驟。

繪製


渲染是從準備的場景創建實際的二維景象或動畫的最後階段。這可以和現實世界中在布景完成後的照相或攝製場景的過程相比。
用於諸如遊戲或模擬程序這樣的互動式媒體的繪製需要實時計算和顯示,速度約為20到120幀每秒。非互動式媒體(譬如錄象或電影),繪製的慢得多。非實時繪製使得有限的計算能力得以放大以獲得高質量的畫面。複雜場景的單幀的繪製速度可能從幾秒到一個小時或者更多。繪製完成的幀存貯在硬碟,然後可能轉錄到其它媒介,例如電影膠捲或者光碟。然後這些幀以高幀率播放,通常為24,25,或30幀每秒,以達成運動的假象。
最後的作品經常會需要達到真實感圖形質量,要達到這個目的,很多不同和專門的繪製技術被發展出來。這些技術的範圍包括相當非真實感的線框模型繪製技術,到基於多邊形的繪製,到更高級的技術,例如:掃描線渲染、光線跟蹤或者輻射著色。
繪製軟體可以模擬例如鏡頭光暈、景深或者運動模糊這樣的視覺效果。這些技術試圖模擬鏡頭和人眼的光學特性所造成的視覺現象。這些技術可以增加場景的真實程度,雖然該效果可能只是鏡頭的人造模擬現象。
為模擬其他自然發生的效應的各種技術被發展出來,例如光和不同形式的物質的相互作用。這些技術的例子包括粒子系統(它可以模擬雨,煙,或者火),體採樣(用於模擬霧,塵或者其它空間大氣效果),焦散效果(用於模擬光被不均勻折射性質的表面所聚焦的現象,例如游泳池底部的光的漣漪),還有次表面散射(SubSurface Scattering)(用於模擬光在人的皮膚這樣的實體對象內部反射的現象)。
繪製過程計算上很昂貴,特別是所模擬的物理過程複雜且多樣時。計算機的處理能力逐年上升,使得真實感繪製的質量漸進的提高。生產計算機動畫的電影工作室可能用渲染農場(render farm)來進行及時的繪製。但是,硬體費用的下降使得在家庭計算機系統上產生少量的三維動畫完全成為可能。
繪製器經常包含在三維軟體包中,但是有一些繪製系統作為流行三維應用程序的插件使用。這些繪製系統包括Final-Render, Brazil r/s, V-Ray, Mental Ray, POV-Ray,和Pixar Renderman。
這些繪製程序的輸出經常用於最終電影場景的一小部分。很多材料的層次可以分別繪製,然後採用合成軟體集成到最終的畫面中。

反射和明暗模型


現代三維計算機圖形嚴重的依賴於一個簡化的反射模型稱為Phong反射模型,它和Phong明暗圖是完全不同的主題,不能混淆二者。
光的折射中,有一個重要的概念稱為折射率。在多數三維編程實現中,該值“index of refraction”(折射率)通常簡寫為“IOR”。
三維計算機圖形中流行的反射繪製技術包括:
平直著色(Flat shading):使用多邊形的法向量和位置以及光源的位置和強度對於物體的每一個多邊形給出一個明暗值的技術。
Gouraud著色: H。 Gouraud於1971年發明,一個快速的基於頂點和光源的關係的著色技術,用於模擬光滑著色的曲面。
紋理映射:通過把圖像(紋理)映射到多邊形上來模擬曲面的大量細節的技術。
Phong著色:由Bui Tuong Phong發明,用於模擬光滑著色曲面的鏡面反射高光效果
凸凹紋理映射: 由Jim Blinn發明,用法向擾動技術模擬帶褶皺的曲面。
Cel著色: 用於模擬手繪動畫的觀感的一種技術。

三維圖形應用程序介面(API)


三維圖形已經非常流行,特別是在電子遊戲中,這使得專門化的應用程序介面(API)被創建出來用於簡化計算機圖形產生的各個階段的處理。這些API對於計算機圖形硬體廠商也是極為重要的,因為他們提供給程序員一種使用硬體的抽象方式,而依然能夠利用這個那個顯卡的特定硬體的長處。
這些三維計算機圖形的API頗為流行:
OpenGL和OpenGL著色語言
OpenGL ES嵌入式設備的三維API
Direct3D (DirectX的子集)
RenderMan
RenderWare
也有一些高層的三維場景圖API,他們提供在底層繪製API之上的附加功能。處於活躍的發展中的這類程序庫包括:
QSDK
Quesa
Java 3D
JSR 184 (m3g)
NVidia Scene Graph
OpenSceneGraph
OpenSG
OGRE
Irrlicht

參看


三維投影
環境遮擋(ambient occlusion)
Irrlicht三維引擎
VRML