品牌介紹
簡介
OpenSceneGraph是一個(gè)開放源碼,,跨平臺(tái)的圖形開發(fā)包,,它為諸如飛行器仿真,,游戲,,虛擬現(xiàn)實(shí),,科學(xué)計(jì)算可視化這樣的高性能圖形應(yīng)用程序開發(fā)而設(shè)計(jì),。它基于場景圖的概念,它提供一個(gè)在OpenGL之上的面向?qū)ο蟮目蚣?,從而能把開發(fā)者從實(shí)現(xiàn)和優(yōu)化底層圖形的調(diào)用中解脫出來,,并且它為圖形應(yīng)用程序的快速開發(fā)提供很多附加的實(shí)用工具。
特性
有了OpenSceneGraph,,我們的目標(biāo)是讓所有的人在場景圖技術(shù)中受益,,無論是商業(yè)還是非商業(yè)的用戶。它完全是由標(biāo)準(zhǔn)C++程序和OpenGL寫的,,充分利用STL和設(shè)計(jì)模式,,發(fā)揮開源開發(fā)模型的優(yōu)勢來提供一個(gè)免費(fèi)的開發(fā)庫,,并且重點(diǎn)集中在用戶的需求上。隨著使用一個(gè)全特性的場景圖OpenSceneGraph的關(guān)鍵優(yōu)勢在于它的性能,、可擴(kuò)展性,、可移植性和快速開發(fā)(productivity),更具體的來說:
性能
支持視圖投影剔除(view frustum culling),,隱藏面剔除(occlusion culling),,小特性剔除(small feature culling),細(xì)節(jié)層次節(jié)點(diǎn)(LOD),,狀態(tài)排序(state sorting),,頂點(diǎn)數(shù)組,頂點(diǎn)緩沖對(duì)象(vertex buffer objects),,OpenGL著色語言和顯示列表(display lists),,以上所列都是場景圖內(nèi)核的一部分。它們共同使OpenSceneGraph成為一個(gè)高性能的圖形庫變?yōu)榭赡?,OpenSceneGraph也支持繪制進(jìn)程(drawing process)的定制,,比如場景圖的連續(xù)細(xì)節(jié)層次(CLOD)的網(wǎng)格(參見虛擬地形項(xiàng)目和Delta3D)。
快速開發(fā)
場景圖的內(nèi)核封裝了包括最新擴(kuò)展的大部分OpenGL功能,,提供諸如剔除和排序的渲染優(yōu)化功能,,同樣提供能快速開發(fā)高性能圖形應(yīng)用程序的一整套補(bǔ)充庫。應(yīng)用程序開發(fā)者可以更關(guān)心實(shí)質(zhì)性內(nèi)容和如何操控這些它們,,而不再是底層的代碼,。通過學(xué)習(xí)已有的場景圖,比如:Performer和Open Inventor,,把它們同像設(shè)計(jì)模式這樣現(xiàn)代軟件工程理念聯(lián)合起來,,加上早期開發(fā)周期中的大量反饋信息,設(shè)計(jì)一個(gè)清晰的可擴(kuò)展的庫已經(jīng)成為可能,。用戶可以很簡單的適應(yīng)OpenSceneGraph并且把它集成到自己的應(yīng)用程序中,。
數(shù)據(jù)裝載
為了讀入和寫出數(shù)據(jù)庫,有一個(gè)數(shù)據(jù)庫的支持庫(osgDB)增加了通過后綴名動(dòng)態(tài)插件機(jī)制,,從而支持大量數(shù)據(jù)格式,,目前的發(fā)布版本有55種單獨(dú)的插件支持3D數(shù)據(jù)和圖像格式的裝載。支持的3D數(shù)據(jù)格式包括COLLADA,, LightWave (.lwo),,Alias Wavefront (.obj),OpenFlight (.flt),, 多線程頁面調(diào)度支持的TerraPage (.txp),,Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds),, Peformer (.pfb),,AutoCAd (.dxf), Quake Character Models (.md2). Direct X (.x), and Inventor Ascii 2.0 (.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) ,,AC3D (.ac) 和自帶的.osg ASCII 文本格式。支持的圖像格式包括.rgb,, .gif,,.jpg, .png,, .tiff,, .pic, .bmp,, .dds (包含壓縮的一系列Mip貼圖影像),,.tga and quicktime (在OSX環(huán)境下),全范圍的高質(zhì)量,、抗鋸齒字體也能通過freetype插件支持,,基于字體的圖像也可以通過.txf插件支持。用戶也可以通過與我們同行的一個(gè)項(xiàng)目(VirtualPlanetBuilder)生成大規(guī)模地形空間數(shù)據(jù)(multi GB),,使用OpenSceneGraph的自帶數(shù)據(jù)分頁調(diào)度支持來查看這些數(shù)據(jù)。
節(jié)點(diǎn)工具箱
這個(gè)場景圖同樣有一套節(jié)點(diǎn)工具集,,它們是可以在你的應(yīng)用程序中編譯或者在運(yùn)行時(shí)裝載的獨(dú)立庫,,它們?cè)黾又С至W酉到y(tǒng)(osgParticle),高質(zhì)量抗鋸齒文本(osgText),,特效框架結(jié)構(gòu)(osgFX),,陰影框架結(jié)構(gòu)(osgShadow),交互控制(osgManipulator),,與虛擬仿真相關(guān)的效果(osgSim),。
可移植性
場景圖的內(nèi)核已經(jīng)被設(shè)計(jì)成盡量少的依賴具體的平臺(tái),很少的部分超出了標(biāo)準(zhǔn)C++程序和OpenGL,。這就使得這個(gè)場景圖可以快速移植到大部分系統(tǒng)中—最開始在IRIX開發(fā),,然后移植到Linux,接著到Windows,,再后來就是FreeBSD,, Mac OSX,Solaris,,HP-UX,, AIX 甚至是PlayStation2!完全獨(dú)立與窗口操作系統(tǒng)的場景圖內(nèi)核庫使得用戶在它上面可以增加他們自己的指定窗口庫和應(yīng)用程序,,在發(fā)布版本中osgViewer庫提供自帶窗口支持,,可支持Windows (Win32), Unices (X11) 和 OSX (Carbon),。osgViewer庫也可以輕松的和你的窗口開發(fā)包集成起來,,作為OpenSceneGraph-2.0發(fā)布版本的一部分,,有例子演示了如何在Qt, GLUT, FLTK, SDL, WxWidget, Cocoa and MFC中的使用。場景圖內(nèi)核的可擴(kuò)展性使得它不僅僅可運(yùn)行在便攜式設(shè)備,,甚至高端的多核,、多GPU的系統(tǒng)和集群上。這可能是因?yàn)閳鼍皥D內(nèi)核為OpenGL的顯示列表和紋理對(duì)象支持多重圖形渲染環(huán)境(multiple graphics contexts),,剔除和繪制的遍歷過程被設(shè)計(jì)成隱藏渲染數(shù)據(jù)為局部變量,,這樣可以以幾乎只讀的方式使用場景圖內(nèi)核。這樣就允許多對(duì)剔除—繪制過程運(yùn)行在多個(gè)CPU上,,CUP也是綁定在多個(gè)圖形子系統(tǒng)之上,。對(duì)多圖形設(shè)備渲染環(huán)境和多線程的支持可以在osgViewer中方便使用,發(fā)布版本中所有的例子都可以以多線程和多GPU的方式運(yùn)行,。作為社區(qū)項(xiàng)目,,OpenSceneGraph支持多種語言,比如Java,,Lua和Python,。
社區(qū)
OpenSceneGraph為一個(gè)多元化的社區(qū)提供了幫助,這主要集中在公開的osg用戶郵件列表中,,在那里有超過1700個(gè)使用者在討論如何使用這個(gè)軟件,,最新的開發(fā)進(jìn)度甚至討論更多內(nèi)容。這個(gè)社區(qū)同樣也給已有模塊的測試和新模塊提供了大量幫助,,這包括:OpenSceneGraph本身和第三方庫,,很多第三方庫也是開源的。這個(gè)項(xiàng)目網(wǎng)站建立在trac wiki之上,,允許所有的社區(qū)成員添加他們自己的內(nèi)容,,給osg的入門和指南做出貢獻(xiàn)等等。這個(gè)站點(diǎn)的社區(qū)板塊提供社區(qū)項(xiàng)目的更多信息和連接,,指導(dǎo)你如何參與社區(qū)并成為他們的一員,。社區(qū)開發(fā)了很多附加的節(jié)點(diǎn)工具,比如說:osgNV(支持Nvidia的頂點(diǎn),、片段,、連接器、擴(kuò)展,、Nvidia的Cg著色語言等),,Demeter(CLOD terrain與OSG的集成)。osgCal(集成了Cal3D和OSG),。ReplicantBody是角色動(dòng)畫的另外一個(gè)選擇,,它也含有高層函數(shù),比如腳本,、混合動(dòng)畫動(dòng)作等(它也依賴Cal3D),,osgHaptics集成了Sensable公司的觸覺渲染開發(fā)包OpenHaptics,。osgAL可以用來集成3D聲音(OpenAL)和OSG。再加上一套集成了主要窗口系統(tǒng)的API庫,,這些可以在框架工作包中找到,。這個(gè)項(xiàng)目也與VR Juggler和Vess虛擬現(xiàn)實(shí)框架等其它項(xiàng)目集成。
開始
對(duì)于那些初涉OpenSceneGraph的用戶,,我們建議你按照下面開始的步驟循序漸進(jìn),,然后瀏覽那些可用的技術(shù)支持資源。如果你遇到了特殊的狀況就去查看FAQ,,看看有沒有已經(jīng)存在的解決方案,,產(chǎn)看郵件列表體系,或者訂閱osg用戶的郵件列表說明你準(zhǔn)備如何處理,。
支持和服務(wù)
對(duì)于需要保密的專業(yè)支持,,培訓(xùn)或者咨詢服務(wù)的組織,我們也可以提供幫助,,由OpenSceneGraph專業(yè)技術(shù)服務(wù)的合作伙伴提供(總部設(shè)在蘇格蘭),。