偉大文獻:流行3d技術大檢閱

版主: Small Hon

回覆文章
ultraman
頂級玩家
頂級玩家
文章: 2084
註冊時間: 週二 7月 03, 2001 8:00 am

文章 ultraman » 週六 8月 11, 2001 10:12 am

流行3d技術大檢閭/b]

前言

  顯示卡--當今IT產業發展最快的和最富有挑戰的東東,在早期的DOS作業系統時代,要處理大量的複雜的圖像或是文字檔案的顯示,都是很麻煩的,而且其效果也很不好,隨著顯示卡的發展,越來越多的新的3D 技術被開發出來了,結合了2D 技術和新的3D技術的顯卡已經成為了今天的主流產品了,而且這種產品的性能也已經非常完美了,但是你對這些新的3D技術是否很清楚呢?也釦A早已經聽說過它們,但它們真正的原理你是否又很明白了呢?今天就讓我們來淺談一下吧!
                
OPENGL

  OpenGraphicsLib的縮寫,是一套三維圖形處理庫,也是該領域的工業標準。電腦三維圖形是指將用資料描述的三維空間通過計算轉換成二維圖像並顯示或列印出來的技術。在OpenGL中是以邊界(B-REP)模型來描述物體的,或者說是使用多邊形造型系統。OpenGL就是支援這種轉換的程式庫,它源於SGI公司為其圖形工作站開發的IRIS GL,在跨平臺移植過程中發展成為OpenGL。SGI在1992年7月發佈1.0版,後成為工業標準,由成立於1992年的獨立財團OpenGL Architecture Review Board (ARB)控制。OpenGL被設計成獨立於硬體,獨立於視窗系統的,在運行各種作業系統的各種電腦上都可用,並能在網路環境下以客戶/伺服器模式工作,是專業圖形處理、科學計算等高端應用領域的標準圖形庫。

  在OpenGL中其實每個物體都只是一組平面,這組平面記錄的是該物體的表面。顯然這些平面越小畫出的物體就越逼真。例如用3個側面畫出的一個圓錐,看到的是一個棱角分明的棱錐,而如果有30個側面的圓錐看起來就會比較圓了。而物體表面的每個平面都只需要邊界和平面上的圖案就已經足夠了。在OpenGL中需要用戶提供圍繞平面邊緣的線段的頂點參數、平面內圖案的點陣圖兩組資訊,術語稱為Vertex(頂點)、Texture(紋理)。如果表示物體的平面小到一個圖元,那麼得到的圖像將會是極為真實的了,然而這意味著天文數字般的計算任務。所以OpenGL三維圖形程式設計很大程度上是在質量與速度之間折中的藝術。它可用在電腦三維圖形學上還有諸如實體幾何、Voxel、醫學等其他的方面。

  OpenGL流水線工作的原理可是一個複雜的過程,客戶在程式中所發的命令和資料並不是立即傳到流水線執行的,流水線在收到一些象glFlush/SwapBuffers命令之後,才會真正開始去加工資料,這些命令都有說明某一階段處理相關的指令資料改送已經結束請求獲得所需結果的含義。這就是所謂的客戶/伺服器模式。伺服器接收哪些命令和資料,又怎樣利用這些資料進行哪些處理呢?大致上可以依次分成四個階段:1、座標變換:生成基本圖元;2、裁剪:只留下視見範圍內的部份;3、光柵化:生成圖形片段;4、逐片段操作:生成素像。


Charisma引擎

  Charisma引擎是Radeon最重要的技術特性,該引擎具有以下幾個獨到之處:一是頂點皮膚(Vertex Skining);二是關鍵幀補償(Keyframe Inpolation)。如果您想使動態人物模型更加自然,可以使用骨骼動畫,它讓人物模型隨著一系列代表骨骼的頂點伸展或收縮。當骨骼移動時,頂點會相應重組。但是,當一個變換導致骨骼彎曲時,就有可能產生接觸點裂縫,就使人物模型表現得很不自然了。

  為了解決這個問題,ATI引入了頂點皮膚渲染技術。它可以調整頂點來產生一系列連續、彎曲的關節並對其修補、完善、使物體動感十足,且毫無瑕疵。為產生頂點皮膚必須通過一系列複雜的連續變換頂點運算,才能得到較好的效果。Radeon最多可使用硬體同時進行4個建模運算,而GeForce 2 GTS也只能同時進行兩個,所以Radeon就這一點上比GeFoerc 2 GTS要強的多了。

  Charisma引擎的另一個誘人之處則是關鍵幀補償技術。如果要實現一個連續的面部表情變化需要產生大量的過渡幀,而每個過渡幀都必須單獨作為一個模型儲存在遊戲中,並連續播放,這將佔用龐大的存儲空間和編程人員的精力,所以我們很少能在遊戲中看到栩栩如生的真實表情。不過,Radeon的關鍵幀補償技術可能會彌補這個缺陷。它利用硬體完成關鍵幀的過渡,只要美工人員確定少量的起始幀、中間幀和結束幀就可以了,其他都可以通過硬體完成。ATI的關鍵幀補償技術還可以插入必要數量的過渡幀,從而非常逼真地改變人物的表情、動作等。另外,Charisma還具有一些有用的特性,如硬體頂點光源設置(Hard Vertex Lighting Setup)、硬體T&L等。


T&L

  T&L(Transform and Lighting,幾何變換和光源處理)技術是nVIDIA為提高畫質而研究出來的一種新型技術,它最大的弁酮O處理圖形的整體角度旋轉以及光源陰影等立體效果。以往的顯卡技術中,為了使物體圖像真實,不得不大量增加多邊形技術,這樣就導致速度下降;而如果採用較少的多邊形,畫面又很粗糙。GeForce2 MX中採用的T&L技術,它能在不增加物體多邊形的前提下,進一步提高物體表面的邊緣圓滑程度,使圖像更真實、準確和生動。此外光源的作用也得到了重視,傳統的光源處理較為單一,無生動感可言,而GeForce2 MX擁有強大的光源處理能力,在硬體上它支援8個獨立光源,加上GPU(圖形處理單元)的支援,即處理的光源將讓畫面變得更加生動真實,可以產生帶有發射性質的光源效果。一般來說,T&L的效能常用“單位時間內所能處理多少個多邊形的連結點變化以及光源運算”為基準。像nVIDIA的GeForce2 便能每秒鐘處理2500萬個多邊形,而有的產品甚至能達到3000萬個多邊形的效能。此外在T&L技術中還有一個一般人應該不太有機會看到單詞--Vertex Skinning,因為大部份的圖形顯示卡規格說明書中未將此規格說明給列出來,通常只用T&L裏的多邊形處理數目來做主要規格介紹。不過,隨著3D動畫軟體和資料的與日俱增,相信Vertex Skinning的重要性也會跟著提高的。而與T&L技術息息相關的一個技術就是多邊形的處理,因為對圖形晶片而言,多邊形的處理是最主要的工作之一。包括所有連點必須被解讀成多邊形後,將資料傳回圖形晶片後再傳到螢幕上面,或者是在運算骨幹後,將運算後的多邊形資料,重新回到圖形晶片的運算流程中,以便求出最完美的3D動畫。而T&L的工作,也幾乎都在這些多邊形上一塊一塊地執行的。


NSR(nVIDIA Shading Rasterizer)

  NSR(nVIDIA Shading Rasterizer)技術是由GeForce 2 最早應用的,它由內置的硬體引擎實現。當GeFeorce2 在進行NSR渲染運算時,四條渲染管道中的每一條都能在單週期內完成以下七種圖元級操作控制,其中包括基本貼圖(Base Texture)、凹凸貼圖(Bump Mapping)、散光效果(Diffuse Lighting)、光暈效果(Ambient Light )、鏡面光澤(Specular Lighting)、阿爾法透明(Alpha Transparency)、彩色霧化(Colored Fog)等特殊效能。眾所周知,從前實現光源技術普遍應用兩種技術:一種是光源貼圖,另一種是頂點光源技術。前者的缺陷在於光效不是實際生成的,而是通過編程人員繪製出來的,所以想讓遊戲開發人員將每個場景的動態光照效果表現出來將異常困難。而頂點光源技術則是根據三角形三個頂點的位置、顏色、紋理以及其他參數再通過內插法計算三角形內每個位置的光源強度。
  頂點光源技術的缺陷在於當人物和場景使用的三角形較少時,那麼光效就會模糊。每圖元光源技術則是以上兩種合成方法的優勢結合體,它將頂點光源中的每個三角形運算換成了每個圖元運算。與頂點光源類似,圖元包含了顏色、位置、紋理等參數,只要再增加一幅由編程人員繪製的法向量圖就可以計算出每個圖元的光亮和方向了,這極大地減少了編程人員的工作量,並且讓圖形卡顯示的畫面更細緻。由於GeForce2 對畫面光源的控制精度達到了圖元級,所以其實現凹凸映射的方式肯定要比Matrox的G400多,它包括環境貼圖凹凸映射(Environment Mappen Bump Maping)、立方體環境映射(Cabic Envirobnment Maping)和Dot Product3(DirectX 7.0中的一種凹凸映射)等至少3種以上的凹凸映射方式。尤其是立方體環境映射,可將物體在六維立方體空間內實現發射。


Z緩衝處理

  Z緩衝處理是一種用來判斷已著色圖元可見性的傳統方法。傳統的著色引擎是完全基於三角形進行著色的,也就是說著色引擎在獲取一個多邊形(三角形)的同時便開始對其進行著色,完成後接著對下一個多邊形著色,一個接著一個按照順序有條不紊地進行。由此產生的問題是:由於著色引擎不能預測多邊形的變化情況,因此不知道正在處理的多邊形在最終畫面中是否可見。為了僅使可見的圖元在幀緩衝中出現,需要一些方法來確定哪些多邊形將在最終畫面中可見,因而一項技術---Z緩衝處理應運而生。 Z緩衝中儲存著每個已著色圖元的Z值(空間深度值)。

  從上面的這幅圖我們可以很清楚的知道:當有第一個多邊形生成後(舊多邊形),它就表示決定該多邊形每個圖元顏色的變數如:材質、陰影和霧化等已被處理好,並且連同每個圖元的Z值一起被寫入了顯存,當新的一個多邊形生成了,你能看到它和第一個多邊形的部分圖元重疊在一起。當對空白的圖元進行處理的時候,一個新顏色值和Z值同時被計算出來,此時系統讀出Z緩衝中的舊Z值,把該值同計算出的新Z值相比較,如果新Z值比舊Z值小,表示它離座標原點更近,則舊顏色圖元被替換成新顏色圖元;如果新Z值比舊Z值大,說明已經寫入的顏色圖元是正確的,一切都將保持不變。這樣就保證了離原點相對較近的圖元永遠被顯示出來。


編後語
  在現代的顯卡中還有很多的新技術。比如點取樣(Point Sampling)、雙線性過濾(Bilinear filtering)、MIP映射(MIP Mapping)、三線性過濾(Trilinear Filtering)--包括nVIDIA的GeForce也支援、環境凹凸貼圖技術等。在這裏我們就不一一介紹了。但相信隨著顯卡的發展,還會有更多更新的技術出現的,就讓我們拭目以待吧!
咸蛋谷
news://news.visualmedia.com.hk/personal.Ultraman

咸蛋在線 Ultraman Online
http://home.so-net.com.hk/~ultra1997

ICQ
3882384

圖檔

_U_l_t_r_a_m_a_n_

回覆文章

回到「Captain Lonely Night Club」

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客