3D渲染軟件綜合介紹

 本文泛泛地敘述有趣實用的3D圖形開發技術,介紹一些主流的開發庫和工具軟件,並不涉及底層的圖形學知識,可作爲初學者入門讀物。作者希望通過這個文檔,能夠爲新手提供一些信息,使他們更輕易找到自己想要的東西,降低入門門檻。
一.引言
  目前計算機3D技術確實達到了一個相當高的程度,所能完成的效果令人美不勝收,讚歎不已。3D技術被廣泛應用於遊戲娛樂、商業仿真、戰場和空間仿真、計算機可視化、城市仿真、計算機教育等領域。(From MultiGen-Paradigm Vega)
二.主流的底層渲染3D API
  儘管有如NVIDIA的GL、SGI的OpenGL Shading Language等專門的圖形語言的出現,但是對普通程序員而言,OpenGL和Direct3D仍然是最底層渲染API,大部分3D應用是在它們的基礎上開發的。
1.OpenGL 
  OpenGL當前版本爲2.0,是一個性能卓越的三維圖形標準,早先在SGI等多家世界聞名的計算機公司的倡導下,以SGI的GL三維圖形庫爲基礎制定的一個通用共享的開放式三維圖形標準。許多軟件廠商也紛紛以OpenGL爲基礎開發出自己的產品,其中比較聞名的產品包括動畫製作軟件Soft Image和3D Studio MAX、仿真軟件Open Inventor、VR軟件World Tool Kit、CAM軟件ProEngineer、GIS軟ARC/INFO等,涉及到建築、產品設計、醫學、地球科學、計算流體力學等領域。OpenGL作爲一個開放的三維圖形軟件包,它獨立於窗口系統和操作系統,以它爲基礎開發的應用程序可以十分方便地在各種平臺間移植,並有使用簡便,效率高的優點。OpenGL在微機中也得到了廣泛的應用。
2.Direct3D(DirectX Graphics)
  Direct3D是Microsoft DirectX9.0的一個組件,主要用於遊戲開發,但是由於Microsoft的巨大投入,目前已經成爲足以與OpenGL相抗衡的3D標準。DirectX 9.0 基於COM (Component Object Model)技術,它由下列組件組成:
DirectX Graphics:集成了9.0以前版本里的Microsoft DirectDraw和Microsoft Direct3兩大組件,統一了2D和3D的編程接口。該組件包括了可以簡化許多圖形編程任務的Direct3D 擴展實用庫(Direct3D extensions utility library)。
Microsoft DirectInput提供對多種輸入設備的支持,包括對力反饋技術的支持;
Microsoft DirectPlay提供多用玩家網絡遊戲的支持;
Microsoft DirectSound用來開發高品質的音頻應用,可播放或抓取波形音頻;
Microsoft DirectMusic爲基於波形的遊戲音樂提供了完整的解決方案;
Microsoft DirectShow提供了抓取和回放高品質多媒體流的支持;
DirectSetup提供安裝DirectX組件簡單API支持;
DirectX Media Objects提供讀寫包括視頻、音頻編碼、解碼和效果等數據流對象的支持。
  假如直接用OpenGL或Direct3D來開發3D應用,則開發效率低,對開發人員素質要求高,低手很難開發出象樣的3D產品。幸好人們已經作了很多努力,98年以後就有很多商業的或免費的圖形工具包可供使用。所以,我們可以在把握OpenGL和Direct3D基本使用方法後,再去學習使用這些高層的工具包,就可以使我們的3D開發一開始就站在高手們的肩膀上,迅速進入這個生疏的領域。
三.高級3D開發庫介紹
  目前,3D開發庫算得上數不勝數。
GLUT - OpenGL Utility Toolkit
  GLUT 是一個與操作系統無關的OpenGL程序工具庫, 它實現了可移植的OpenGL窗口編程接口,GLUT支持C/C++、FORTRAN、ADA。工具包當前版本號爲3.7,支持OpenGL多窗口渲染、回調事件處理、複雜的輸入設備控制、計時器、層疊菜單、常見物體繪製函數、各種窗口治理函數等。GLUT不是一個全功能的開發包,並不適合大型應用的開發,它只爲中小應用而設計,非凡適合初學者學習和應用OpenGL,由此入門相對輕易。
SGI OpenGL Peformer
  SGI公司是業界的領導廠商之一,在實時可視化仿真或其它對顯示性能要求高的專業3D圖形應用領域裏,OpenGL Performer爲創建此類應用提供的強大而輕易理解的編程接口。Performer可以大幅度減輕3D開發人員的編程工作,並可以輕易地提高3D應用程序的性能。它的軟件模塊對數據的組織和顯示做了廣泛的優化。
  OpenGL Performer是SGI可視化仿真系統的一部分。它提供了訪問Onyx4 UltimateVision、SGI Octane、SGI VPro圖形子系統等SGI視景顯示高級特性的接口。Performer和SGI圖形硬件一起提供了一套基於強大的、靈活的、可擴展的專業圖形生成系統。Performer已經被移植到多種圖形平臺,在使用的過程中,用戶不需要考慮各種平臺的硬件差異。
  我們在試用的過程中發現,OpenGL Performer的通用性非常好,它並不是專門爲某一種視景仿真而設計,API功能強大,提供的C和C++接口相當複雜。除了可以滿足各種視景顯示需要,它還提供了美觀的GUI開發支持。
Quamtum3D OpenGVS
  OpenGVS是Quantum3D公司的早期成功的產品,用於場景圖形的視景仿真的實時開發,易用性和重用性較好,有良好的模塊性、巨大的編程靈活性和可移植性。OpenGVS提供了各種軟件資源,利用資源自身提供的API,可以很好地以接近自然和麪向對象的方式組織視景諸元和進行編程,來模擬視景仿真的各個要素。目前,OpenGVS的最新版本爲4.6,支持Windows和Linux等操作系統。
  由於Quamtum3D已經收購了CG2,而OpenGVS又是基於C的老套架構,對OpenGVS的後續開發投入不足,Quamtum3D可能把戰略眼光投放在VTree和Quantum3D IG(整套解決方案Mantis )上邊。
Quamtum3D Mantis
  Mantis系統是Quamtum3D推出的一整套視景仿真解決方案。Mantis系統作爲一種圖形生成器開發平臺,提供了使用現有計算機和圖形硬件,得到高效率,高性能,高幀速率,以及較好的圖形質量。CG2公司的VTree是實時3D可視化仿真的首選開發包,此前已經爲美國國防部投入了多年的研究和開發工作。Mantis合併了VTree開發包和可擴展圖形生成器架構,從而創造了強大的,可伸縮的,可配置的圖形生成器。重要的特徵包括:跨平臺:Mantis可以在包括Win32和Linux等多種操作系統上運行;公共接口:Mantis支持分佈式交互仿真(DIS),也支持更現代的公共圖形生成接口(CIGI);Mantis支持許多高級特性,包括同步的多通道,包括各種特效:比如儀表、天氣、燈光、地形碰撞檢測等;可伸縮性:多線程可視化仿真應用可能有多種多樣的顯示需求,Mantis可以根據需要進行器件的裁減;靈活性和可配置性:Mantis作爲一個開放系統硬件平臺,可以利用最新的硬件和圖形卡,而基於客戶端/服務器端的架構,又可以使Mantis的配置可以通過網絡在客戶端上即可進行,可配置功能極爲豐富;可擴展性:不象傳統的硬件圖形生成器,Mantis系統的擴展和修改並不昂貴,軟件模塊可以通過插件的形式增強軟件功能;Mantis支持地形數據庫,支持場景治理。
MultiGen-Paradigm Vega
  Vega是MultiGen-Paradigm公司應用於實時視景仿真、聲音仿真和虛擬現實等領域的世界領先的軟件環境。使用Vega 可以迅速地創建各種實時交互的三維環境,以滿足各行各業的需求。它還擁有一些特定的功能模塊,可以滿足特定的仿真要求,例如:船舶、紅外、雷達、照明系統、人體、大面積地理信息和分佈式交互仿真等等。附帶的Lynx程序,這是一個用來組織治理Vega場景的GUI工具。
  MultiGen Creator系列產品是世界上領先的實時三維數據庫生成系統,它可以用來對戰場仿真、娛樂、城市仿真和計算可視化等領域的視景數據庫進行產生、編輯和查看。這種先進的技術由包括自動化的大型地形和三維人文景觀產生器、道路產生器等強有力的集成選項來支撐。MultiGen Creator是一個完整的交互式實時三維建模系統,廣泛的選項增強了其特性和功能。
  MultiGen-Paradigm公司已經計劃用Vega Prime取代Vega,Vega Prime全部用C++寫成,是全新的產品,而不是Vega的後續版本,雖然目前在功能上比Vega3.7沒有大的提高,但是Vega Prime的核心Vega Scene Graph是完全面向對象的先進架構,採用了許多現代C++的特性和技術,比如泛型,設計模式等,大大增加了軟件功能和靈活性、通用性;此外,目前大部分程序員都有面向對象編程經驗,Vega Prime提供的接口恰好符合其編程思維,易於上手,因此非凡有吸引力。Vega Prime有很好的發展前景,但是Vega Prime是新推出的產品,最新版本號是1.2,很明顯,有的方面還不夠成熟。
OpenSceneGraph(OSG)
  OSG是一個可移植的、高層圖形工具箱中,它爲戰鬥機仿真、遊戲、虛擬現實、或科學可視化等高性能圖形應用而設計。它提供了基於OpenGL的面向對象的框架,使開發者不需要實現、優化低層次圖形功能調用,並提供了很多附加的功能模塊來加速圖形應用開發。
  OSG通過動態加載插件的技術,廣泛支持目前流行的2D、3D數據格式,包括OpenFlight (.flt),TerraPage (.txp) (多線程支持),LightWave (.lwo),Alias Wavefront (.obj),Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds),Peformer (.pfb),Quake Character Models (.md2),Direct X (.x),以及Inventor Ascii 2.0 (.iv),VRML 1.0 (.wrl),Designer Workshop (.dw)、AC3D (.ac) ;.rgb,.gif,.jpg,.png,.tiff,.pic,.bmp,.dds,.tga 和 qucktime。另外還可通過freetype插件支持一整套高品質、反走樣字體(英文)。OSG內含LADBM模塊,加載大地形速度較快,幀速率高,在運行過程中佔用計算機資源少。
  另外,OSG是自由軟件,公開源碼,完全免費。用戶可自由修改,來進一步完善功能。目前已經有很多成功的基於OSG的3D應用,效果不亞於商業視景渲染軟件。假如要自主開發視景渲染軟件,OSG是最佳的基礎架構選擇。
CG2 VTree
  CG2 VTree是一個面向對象,基於便攜平臺的圖象開發軟件包(SDK)。前面提到Mantis系統的強大功能,其中的一個重要原因是Mantis的軟件部分主要基於VTree。VTree SDK包括大量的C++類和壓縮抽象OpenGL圖形庫、數組類型及操作的方法。VTreeSDK功能強大,能夠節省開發時間,獲得高性能的仿真效果。利用此工具包開發者可充分展開想象力,置身於鮮活的虛擬世界中.比如戰場戰術的實現、探索火星表面的過程等。對於希望得到跨平臺、高性能低成本、可實時響應虛擬仿真應用VTree無疑是最佳選擇。
  CG2設計、優化了代碼,使得在同一硬件上得到更快的實時顯示速度變成可能。Vtree能用於多平臺的三維可視化應用,它既可用在高端的SGI工作站上,也能用在普通PC上。VTreeSDK是開發交互式仿真應用優秀開發包。VTree 包含一系列的配套C++類庫適用於開發高品質,高效的VTree應用。VTree提供的擴展功能成功地兼容並融合了複雜的OpenGL-API接口。VTree應用可運行於支持OpenGL的Windows和Unix類型的平臺。
  Vtree顯示效率非常高,實際使用過程中給人感覺是非常快的。其原因一方面在於Vtree全新設計和優化了程序代碼,另一方面在於Vtree顯示控制的策略。Vtree生成和連接不同節點到一個附屬於景物實體的可視化樹狀結構,這個可視化樹狀結構定義瞭如何對實體進行渲染和處理。一個實體由一個所有圖形原始狀態組成的渲染樹和定義如何使實體顯示的接合部分所組成。實體的渲染樹包含所有這些實體的幾何特性、運動特性和紋理節點。這些樹狀結構對於實體的細節描述能變得非常精細,並且通過不同的路徑能夠顯示用於優化的不同的細節等級劃分(LOD)。
  VTree針對仿真視景顯示中可能用到的技術和效果,如儀表、平顯、雷達顯示、紅外顯示、雨雪天氣、多視口、大地形數據庫治理、3D聲音、遊戲杆、數據手套等等,均有相應的支持模塊。
Vtree開發包附帶例子代碼結構清楚,實現的功能全面,用戶輕易在閱讀例子代碼的基礎上開發自定義應用。
以下是對個產品進行的比較:
名稱 對比項 產品性質 平臺支持 開發人員要求 購買費用 產品服務    
SGI Peformer 商業SDK IRIX, Linux, Window2000, WindowsXP, 中      
Quamtum3D OpenGVS 商業SDK Windows2000, WindowsXP, Unix,Linux 中      
Quamtum3D Mantis 全套商業
解決方案 本身提供系統平臺 低      
MultiGen-Paradigm Vega Prime 商業SDK Window2000, WindowsXP, Unix,Linux 低      
OpenSceneGraph(OSG) 自由軟件,
免費SDK Windows2000, WindowsXP, Unix,Linux 高      
CG2 VTree 商業SDK Windows2000, WindowsXP, Unix,Linux 低
參考資源:
http://www.sgi.com/software/opengl/glut.html GLUT庫頁面
www.opengl.org OpenGL官方站點
www.multigen-paradigm.com multigen-paradigm公司主頁
http://www.microsoft.com/windows/directx/default.aspx 微軟公司directx頁面
http://www.sgi.com/software/performer/ SGI OpenGL Performer頁面
http://www.quantum3d.com/ Quantum3D主頁
openscenegraph.sourceforge.net OpenSceneGraph主頁
發佈了8 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章