偉大文獻:3D技術與3D晶片資料

版主: Small Hon

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

文章 ultraman » 週五 8月 24, 2001 9:25 pm

3D技術與3D晶片資料

3D 顯示技術
  目前,低價3D技術正廣泛應用於臺式系統中,已不再是主板供應商為了商業競爭而提供的一種選擇。3D顯示技術也已不再局限於令人眼花繚亂的遊戲應用,通用計算應用環境是其潛在的用武之地。正如GUI的出現和滑鼠的應用改變了過去的字元操作介面一樣,3D技術在顯示和分析資料方面將會有更多新的用途。通過對目前3D技術產品及相關技術做一分析比較,有利於對3D軟硬體技術全面、正確的認識,從而為今後3D的應用做出正確的選擇。

  3D計算環境
  未來的3D顯示技術將怎樣改變我們的計算方式呢?第一階段,3D的主要市場產品將集中于傳統的3D應用,諸如建築設計漫遊、虛擬現實(VR)、動畫和高級遊戲程式引入到主流臺式系統中。其後,第二階段我們將看到3D應用于標準應用程式中,如圖形編輯器、電子錶單甚至字處理程式中。
  要想預測3D技術在通用商用領域應用的可能性,不妨考慮一下你手編的高級電子報表和資料庫程式,其中有些程式已經能夠用於三維顯示,如對資料可用三維圓柱體表示,並根據需要,進行水平或垂直方向的任意切割。
  在商業領域裏,硬體開發商是否能迅速地把3D技術應用於程式中,有時是至關重要的。Intel的MMX技術已經在X86指令集中增加了57條新的指令,用於加速多媒體應用程式,如3D和2D圖形、視頻、音頻、語音綜合和識別以及通信等。根據Intel的推測,其性能可以提高50~100%。
  MMX集成於新一代Pentium處理器晶片(P55C)中,已於1997年初推出。MMX支援OpenGL和Microsoft的DirectX編程介面。AMD和Cyrix的新型晶片也都支援MMX技術。
  在CPU和圖形晶片中分佈處理3D任務有眾多的方法,但目前流行的圖形板大多只是整數運算工作方式,因此,CPU必須承擔3D應用程式中的浮點運算,並將結果轉換成整數。在大多數情況下,圖形晶片只作為渲染引擎,而把幾何造型、透視投影及光照工作等留給CPU完成。最後的表面物體特徵渲染工作由低價3D圖形板實現,其中包括混合幀、紋理、Z-buffer(存儲深度資訊)和動態分配記憶體等。
  例如,如果某應用不需要Z-buffer(大多數遊戲不需要)時,剩餘的記憶體可以用作紋理和幀緩存。很多應用程式在主記憶體中創建幀緩存,這種方式不需要圖形卡有更多的顯示記憶體,從而節省成本。但這也帶來了性能瓶頸,即當隱藏幀要顯示到螢幕上時,必須通過PCI匯流排。
  高檔3D加速圖形卡則採用了獨立的幀存、紋理記憶體和深度資訊記憶體,並且每種緩衝存儲容量至少為2MB。不幸的是,光緩衝記憶體的開銷就足以使其被拒之於主流市場的門外。

  3D硬體發展概況
  雖然3D加速晶片幾乎用相同的方法分攤CPU的處理任務,但3D晶片的結構千差萬別,有些晶片可以編程,如Rendition公司基於RISC的Vrit和Chromatic公司的Mpact,它們都採用了超長指令集(VLIW)的結構。其他可以編程的3D晶片,正不斷陸續上市。
  大多數可編程3D晶片的性能依賴於驅動它的低層軟體的擴展程度。Rendition公司和Chromatic公司目前的晶片都支援固件Firmware模式。還有的廠家編寫自己的低級代碼來加強對演算法、資料結構和新特性的開發。
  Mpact的中間件微代碼模組允釣t統設計者開啟或關閉特定的應用,如3D圖形、視頻會議和電話通信等。與此不同的是,Vrit被設計為用於3D加速,它包括專門用於即時3D操作的“象素管道”硬體電路,用作紋理映射和混合。另外,RISC內核負責幾何造型和濾波(Filte ring)。這些都極大地減輕了CPU的負擔。
  這種硬體電路的解決方案犧牲了靈活性,但通常可以獲得更高的性能。當API和其他標準被修改或升級時,用戶都得依賴這些廠家來提供新的軟體驅動程式。現在,有釵h圖形卡製造商能夠提供低價3D晶片和圖形卡,這為用戶提供了極大的便利。新的3D晶片與其以前製造的2D晶片在引腳級相容,這樣,3D晶片可以直接用在以前的圖形卡設計當中。如S3公司就提供Virge晶片,它能與市面流行的S3 Trio64V+晶片引腳級相容。
  專用的3D解決方案並不一定取代今日的PC圖形卡,相反,它能以“象素泵”的並行工作方式,使獨立的PCI卡與圖形卡協同工作,即當3D晶片計算出象素點位置後,通過PCI匯流排傳送到圖形顯示卡上。3Dfx的Voodoo Graphics加速晶片集和Videologic的PowerVR等專用3D晶片都要求一塊現有的圖形加速卡。為了將來集成的需要,3Dfx已經與Alliance公司合作,把Voodoo組合到Alliance的Promotion圖形控制器中。目前,釵h低價3D加速卡的一個不足之處是只能支援一種顯示模式,即640×480,64K色。對現今大多數不需要更多細節的遊戲程式而言,這似乎已經足夠了,但這種情況最終將會改變。隨著商業應用3D的日益增多,640×480的解析度將不能滿足需要,與其頻繁地在不同解析度模式間切換,還不如增加額外的顯存來支持800×600的3D加速。

  3D軟體發展現狀
  目前,大約有50多種3D API。這種狀況並不利於3D硬體市場應用軟體的開發。API所提供的標準圖形函數庫,可讓程式師與其應用環境相掛接(如OS、資料庫、硬體驅動程式等)。在3D開發環境中,API函數也為程式師提供了一個相對隔離層,使其不必去理解專用硬體具體特性的細節。
  市面上最流行的三種3D API是OpenGL、Quick-Draw 3D(QD3D)和Direct 3D。其中,Direct 3D有Microsoft的強大市場優勢,而OpenGL和QD3D的交叉平臺特性可以使開發者不僅僅局限於Windows中。
  (1)OpenGL的前身是SGI公司的GL,用於Iris圖形系統中,它是以上三種3DAPI的元老,現已廣泛用於MAC、PC和Unix開發環境中。它注重於快速繪製2D和3D物體,並且比其他兩種API更低級。例如,它沒有包含複雜的預定義物件、自動陰影和光線跟蹤等弁遄C它是目前科學和工程視算的無可爭辨的標準,可用於高級CAD、模擬和照片級真實感的遊戲視景中。為了把該API從專業應用移植到更廣泛的通用應用環境中,最近,SGI聯合Sun公司共同開發CosmoGL,它是OpenGL的一個變種,可用於加速3DWeb應用程式紋理映射和Windows 95以及NT的遊戲開發。
  OpenGL的基本版本提供了大約120個函數,用於多邊形繪製、旋轉、縮放、天氣效果(霧和雲等)及深度搜索等弁遄C但OpenGL缺乏像QD3D和Direct 3D那種面向物件的設計方式。當使用OpenGL API時如同使用狀態機器,即參數在被改變之前一直保持原狀態。這種方式節省了程式師的部分工作量,但當程式師在某個程式中忘記保存和恢復狀態時,將造成難以預料的結果。
  OpenGL採用客戶/伺服器的方式工作,因此,它能夠在分散式環境中協同工作,但因為它沒有包括視窗函數,所以,若與UI獨立工作,則需要有專門的擴展庫來使OS和GUI與之相掛接。
  OpenGL的補充版本是Open Inventor。它是一個高級的面向物件的圖形庫,可作為OpenGL的上一層來使用,其增加的新特徵有幾何造型、運動和光照,以及材質編輯器。像OpenGL一樣,Open Inventor已提供給其他公司,例如用於InternetVR中的VRML格式就是基於Open I nventor。
  (2)QD3D最初作為MAC OS的圖形擴展,現已包括對Windows的支持,因為QD3D是完全面向物件的,新的物件事例能夠繼承複雜的特徵(包括光照、幾何形狀和紋理等),從而簡化了3D圖像的構造。
  QD3D用稱為3D元檔(3DMF)的格式存儲場景和物件資訊。它有壓縮二進位和可讀兩種選擇格式,並可以用剪裁板實現3D物件的剪切和粘貼。同時也可以存儲QD3D物件到圖像庫中,利用拖放技術從圖庫抓放到3D場景中。
  QD3D包括標準的3D圖元,但它能比OpenGL處理更複雜的幾何形狀,如非均勻有理B樣條(N URBS)等,它的可擴展結構使你能夠增加新的軟體渲染引擎和存取硬體加速器。另一個優點是它支援並互式渲染,即在設計時就能看到和直接操縱物件。對程式開發者來說,可能寧肯選用更低級的硬體獨立的3D API進行開發。Apple提供了渲染加速虛擬引擎(RAVE),它包含基本的圖元,但不支援高級的函數調用。如物件輸入/輸出等。像QD3D那樣,RAVE支援Mac和Windows。
  (3)Microsoft的Direct 3D是其Direct X家族中最新的成員,是三層介面介面中的中間層。其中最低層的HAL面向硬體和設備驅動程式,其上較低層的API被授於硬體獨立的存取特性,最高層也可以接受來自其他的API調用,包括OpenGL等。
  用Direct X系列創建的應用能夠確定系統中哪些部分的弁鄍i由硬體實現。對那些硬體不支援的弁遄A可以用簡單的演算法加以取代。同時,Direct 3D也能用軟體仿真任何弁
咸蛋谷
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」

誰在線上

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