GJM : 各大开发游戏引擎
?
|
目錄
Osg 2
特性. 2
面向用戶. 2
平臺支持. 2
許可. 2
技術(shù). 2
高性能. 3
Productivity 3
數(shù)據(jù)加載. 3
工具類. 3
接口化. 4
可伸縮性. 5
多語言支持. 5
寒霜引擎. 5
UE4(虛幻4) 5
Vega 8
簡介. 8
應(yīng)用領(lǐng)域. 9
本質(zhì). 9
總結(jié). 9
Vitriols 9
簡介. 9
應(yīng)用. 10
開放性. 10
總結(jié). 10
Oger 10
簡介. 10
總結(jié). 11
Cry 11
?
?
?
?
?
?
?
?
?
?
?
Osg
?OpenSceneGraph是一個開源的三維引擎,被廣泛的應(yīng)用在可視化仿真、游戲、虛擬現(xiàn)實、科學(xué)計算、三維重建、地理信息、太空探索、石油礦產(chǎn)等領(lǐng)域。OSG采用標準C++和OpenGL編寫而成,可運行在所有的Windows平臺、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD 操作系統(tǒng)。OSG在各個行業(yè)均有著豐富的擴展,能夠與使用OpenGL書寫的引擎無縫的結(jié)合,使用國際上最先進的圖形渲染技術(shù),讓每個用戶都能站在巨人的肩上。
特性
面向用戶
OSG是一個開源的三維實時場景圖開發(fā)引擎,被廣泛應(yīng)用在可視化(飛行、船舶、車輛、工藝等仿真)、增強現(xiàn)實以及醫(yī)藥、教育、游戲等領(lǐng)域。
平臺支持
OSG可以支持幾乎所有的操作系統(tǒng)平臺,它使用OpenGL ES使得可以支持手持臺、平板以及其它嵌入式設(shè)備,使用OpenGL使得其可以在所有的家用電腦以及中型大型機和集群上進行工作。
許可
LGPL,在國內(nèi)很少有人完全明白各種開源許可是怎么回事,但是大家都在使用開源工程。在中國使用一個引擎就是對該引擎發(fā)展的最大貢獻,用戶多就意味著繁榮和對該引擎越來越多的完善(非原文,譯者加)。
技術(shù)
OSG采用C++書寫,使用了標準模版庫(STL)。OSG使用場景樹的方式來管理三維場景,使用邏輯組來構(gòu)建場景樹,以便進行高效的渲染和遍歷等。
OSG使用運行時對各種顯卡擴展的實時檢測,使得OSG支持從OpenGL1.0到OpenGL4.2以及OpenGL ES 1.1 到2.0的所有設(shè)備,所以不管設(shè)備新舊,操作系統(tǒng)如何,OSG均能及時識別出它支持什么版本的OGL或OES,然后完好的在其上運行。
OSG采用模塊化的設(shè)計,降低了OSG內(nèi)部模塊的耦合性,使得用戶更加容易理解。并且OSG提供了豐富的示例,通過閱讀這些示例可以很好的學(xué)習(xí)這些模塊(學(xué)習(xí)例子對于學(xué)習(xí)OSG是非常重要的---FreeSouth注)。模塊化的設(shè)計使得用戶不僅可以只學(xué)習(xí)和使用自己需要的模塊,也可以根據(jù)需要定制自己的模塊。
OSG的關(guān)鍵特點可以使用如下關(guān)鍵詞進行總結(jié):高性能、可擴展性、接口化等,具體如下:
高性能
支持基于視錐體的裁切、基于遮檔的裁切以及其它的小特性裁切,支持LOD、OpenGL狀態(tài)排序、VAO、VBO以及著色語言、顯示列表等所有的圖形學(xué)里經(jīng)常提到的提高效率的招數(shù)。它使得OSG成為一個效率高,表現(xiàn)力好的引擎。OSG同樣支持客戶化的LOD,客戶可以自己定制基于分頁的四叉樹場景結(jié)構(gòu)用來實現(xiàn)復(fù)雜場景,具體可以看一下VTP和Delta3D以及osgEarth。
Productivity?
OSG的核心支持所有的OpenGL擴展,哪怕是剛發(fā)布的最新擴展,對其進行封裝,優(yōu)化使得用戶不用關(guān)注OpenGL那些底層的代碼和擴展等,就可以快速的搭建基于最新特性的三維應(yīng)用程序。
除對底層代碼的封裝外,OSG還有著與其它系統(tǒng)類似Performer以及OpenInventor等各種現(xiàn)代高級系統(tǒng)的結(jié)合,這些結(jié)合的案例可以使得用戶快速的將OSG與自己的系統(tǒng)相結(jié)合提供幫助。OSG和現(xiàn)有與三維相關(guān)的,尤其是基于OpenGL的系統(tǒng)有著豐富的結(jié)合案例,可以看一下業(yè)內(nèi)知名人士array的osgRecipes、osgXI以及osgCookbook從中獲取三維系統(tǒng)與OSG相結(jié)合的方案靈感。
數(shù)據(jù)加載
OSG支持市面上幾乎所有的數(shù)據(jù)格式,無論是圖片還是三維模型,以及字體等都能很好的讀取。
除了支持單一的格式外,OSG還有VPB、osgEarth以及其它不常用的擴展來支持對海量數(shù)據(jù)的處理和讀取。
工具類
OSG提供一些工具類用來完成一些相互獨立的功能,列舉如下:
- osgParticle-粒子系統(tǒng)。(OSG的粒子系統(tǒng)從OSG的1.2版本以來,鮮有改變,八年了,它沒發(fā)展,推薦使用Spark粒子系統(tǒng),其與OSG的結(jié)合array的osgXI還是osgRecipes中有示例--FreeSouth注)。
- osgText-文字處理與顯示。
- osgFX-特殊效果。
- osgShadow-陰影。
- osgManipulator-對模型的局部操作器。
- osgSim-一些可視化效果。
- osgTerrain-地形渲染。(針對地形,推薦使用VPB或osgEarth--FreeSouth注)。
- osgAnimation-動畫。
- osgVolume-體渲染。
接口化
OSG做到不依賴任何與操作系統(tǒng)有關(guān)的中間件,只使用標準C++和OpenGL,早期在IRIX上開發(fā),隨后擴展到Linux、Windows、Mac、AIX以及Andriod和其它中國人不關(guān)心也用得少的操作系統(tǒng)。
OSG的接口化保證了其高度獨立,這也使得其除了跨各種平臺以外,還可以支持各種UI,比如MFC、QT、SDL、GLUT、WxWidget、Cocoa等。OSG的示例中有這些UI與OSG相結(jié)合的例子。(國內(nèi)使用最多的是QT和MFC--FreeSouth注)。
可伸縮性
OSG可以運行在多核的CPU和GPU上,這緣于OSG對OpenGL顯示列表和紋理單元以及揀選、繪制遍歷等過程實施了保護措施,使這些階段可以單獨為一個線程也可以在一個線程中串行執(zhí)行。可以通過osgViewer以及所有的例子來配置當前OSG應(yīng)用程序的線程模型。
多語言支持
Lua、Python、甚至JAVA都有與OSG的結(jié)合。
?
?
寒霜引擎
寒霜引擎(Frostbite Engine),是瑞典DICE游戲工作室為著名電子游戲產(chǎn)品《戰(zhàn)地》(Battlefield)系列設(shè)計的一款3D游戲引擎。該引擎從2006年起開始研發(fā),第一款使用寒霜引擎的游戲在2008年問世。寒霜引擎的特色是可以運作龐大而又有著豐富細節(jié)的游戲地圖,同時可以利用較低的系統(tǒng)資源渲染地面、建筑、雜物的全破壞效果。使用寒霜引擎可以輕松地運行大規(guī)模的、所有物體都可被破壞的游戲。
EA獨家
?
UE4(虛幻4)
- 支持所有最新虛擬現(xiàn)實硬件,包括Oculus Rift、Samsung Gear VR、Steam VR、Leap Motion以及Sony Project Morpheus。
- UE4開源
當你的團隊和項目很小時,用unity。unity有很多現(xiàn)成的東西可以用,你基本可以靠marketplace買來的東西搭建原型,甚至某些最終業(yè)務(wù)的核心組件也可以用買來的東西。比如你可以把整個material換成alloy、用ngui替代UI系統(tǒng)、如果你要做個賽車游戲,你能找到從模型、音效、材質(zhì)、到控制系統(tǒng)一切。
項目大到一定規(guī)模時,我們發(fā)現(xiàn)定制化的需求會太多。unity基本對于我們來說只是一個編輯器,我們幾乎要把里面所有模塊全部找插件或者自己寫插件。所以如果當你需要一個穩(wěn)定的工具集,不想自己維護一堆插件(因為unity在基礎(chǔ)功能方面確實做的一般)。而且有一堆人能夠扛住每個模塊的制作壓力時-對于人員的素質(zhì)要求更高。那么unreal是更好的選擇。
但這也只是針對中型項目這個級別。真上到大型項目時,兩者又不會有太大區(qū)別。因為這時整個工具流是inhouse的,各個公司會針對自己的產(chǎn)品定義不同的流程和方式。這會誕生大量插件。而且到這個級別的公司肯定也會自己去買unity的源碼。此時的需求無論是unity還是unreal都不會完全滿足一個大型項目的需求。只是渲染部分unreal應(yīng)該是不需要做什么而已。
所以如果你有時間,可以兩個都試下,你才知道自己的業(yè)務(wù)真的需要什么。
另外說unity畫面質(zhì)量問題的人,我懷疑你們能力。即便是我們用自己的流程和工具,都可以達到和unreal平級的畫面質(zhì)量。更不用說國外一堆團隊做的產(chǎn)品了。unreal只是讓一堆做效果圖的都很容易產(chǎn)生高質(zhì)量的畫面。
給你看profile根本沒意義,在不同的需求下兩個引擎效率和效果都會不同。僅從單純效率來說,提交效率肯定是unreal高一些,但大多數(shù)項目遇到的瓶頸遠不是游戲引擎的瓶頸。
另外,你的回答截圖只能說那個人unity可能是從來不掛任何插件或自己寫點工具。也可能是指默認unity和unreal的對比。影響畫面的幾個點比如lightmess, material, post processing他都沒處理過。比如radiosity normal mapping會讓lightmess效果好得多,ggx shader也會讓材質(zhì)好表現(xiàn)好一些。所以無論是unity還是unreal去實現(xiàn)你圖右邊效果都不是很難的事情。只能說要達到右圖的效果對于unreal來說會很簡單,幾乎不需要什么經(jīng)驗即可。
?
Vega
簡介
Vega是MultiGen-Paradigm公司應(yīng)用于實時視景仿真、聲音仿真和虛擬現(xiàn)實等領(lǐng)域的世界領(lǐng)先的軟件環(huán)境。使用Vega可以迅速地創(chuàng)建各種實時交互的三維環(huán)
境,以滿足各行各業(yè)的需求。它還擁有一些特定的功能模塊,可以滿足特定的仿真要求,例如:船舶、紅外、雷達、照明系統(tǒng)、人體、大面積地理信息和分布式交互仿真等等。附帶的Lynx程序,這是一個用來組織管理Vega場景的
GUI工具。MultiGen?Creator系列產(chǎn)品是世界上領(lǐng)先的實時三維數(shù)據(jù)庫生成系統(tǒng),它可以用來對戰(zhàn)場仿真、娛樂、城市仿真和計算可視化等領(lǐng)域的視景數(shù)據(jù)庫進行產(chǎn)生、編輯和查看。這種先進的技術(shù)由包括自動化的大型地形和三維人文景觀產(chǎn)生器、道路產(chǎn)生器等強有力的集成選項來支撐。MultiGen?Creator
是一個完整的交互式實時三維建模系統(tǒng),廣泛的選項增強了其特性和功能。
MultiGen-Paradigm公司已經(jīng)計劃用Vega?Prime取代Vega,Vega?Prime
全部用C++寫成,是全新的產(chǎn)品,而不是Vega的后續(xù)版本,雖然目前在功能上比Vega3.7沒有大的提高,但是Vega?Prime的核心Vega?Scene?Graph是完全面向?qū)ο蟮南冗M架構(gòu),采用了許多現(xiàn)代C++的特性和技術(shù),比如泛型,設(shè)計模式等,大大增加了軟件功能和靈活性、通用性;此外,目前大部分程序員都有面向?qū)ο缶幊探?jīng)驗,Vega?Prime提供的接口恰好符合其編程思維,易于上手,因此特別有吸引力。Vega?Prime有很好的發(fā)展前景,但是Vega?Prime是新推出的產(chǎn)品,最新版本號是1.2,很明顯,有的方面還不夠成熟。
?
應(yīng)用領(lǐng)域
VagePrime 為仿真引擎,優(yōu)勢在于大場景數(shù)據(jù)管理,可以滿足特殊軍事應(yīng)用(航海、紅外、雷達…等)Vega重在強調(diào)真實性
?
本質(zhì)
Vega?Prime?是一個渲染引擎,本質(zhì)上說是一個類庫,它的功能都以類函數(shù)的形式而存在,需要c++程序員來完成二次開發(fā),為了簡化開發(fā)過程,提供了?Lynx?Prime,一個圖形化的配置界面,在該界面當中,用戶可以配置各個物體之間的關(guān)系,觸發(fā)條件。這些觸發(fā)條件都是事先定義好的,如果是未事先定以的條件,還需要程序員進行開發(fā)。總體來說,如果需要使用Vega?Prime來開發(fā)應(yīng)用程式,需要開發(fā)人員有較強的程序開發(fā)能力,同時項目的時間周期也比較長。
?
總結(jié)
在專項的應(yīng)用領(lǐng)域,如大地形管理方面,Vega具有不可取代的優(yōu)勢,多大為大地形,地形數(shù)據(jù)類型和大小,需要用戶去衡量考慮;
Vitriols
簡介
Vitriols準確定義為游戲引擎或虛擬現(xiàn)實引擎,其交互互動功能十分強大,2005年之前為獨立運營的公司,主要應(yīng)用于虛擬現(xiàn)實互動,web游戲開發(fā)等應(yīng)用,之后被達索收購,借助其強大的VR功能,在工業(yè)用戶中被廣泛應(yīng)用:產(chǎn)品
體驗,虛擬漫游,交互培訓(xùn),平臺開發(fā)等。
?
應(yīng)用
Vitriols?以拖拽的方式來定義程序運行的邏輯,提供?500?多個模組,通過不同模組的組合,可以定制出各式的應(yīng)用。程序的界面符合人思考的邏輯,類似于流程圖的結(jié)構(gòu),非常容易上手,可以用較少的人員在較短的時間內(nèi)快速開發(fā)應(yīng)用.? Vitriols?同時還提供?Shadows?, havok?Physics,? AIPack,可以使用戶在較短的時間內(nèi)開發(fā)?具有物理模擬,人工智能應(yīng)用的程式。
?
開放性
在 Vitriols 中編程體現(xiàn)在三個層面上 1,Building Blocks? 2,VSL? 3,C++;其在開發(fā)上的比例約為60%,30%,10%。 初級程序制作可以只通過Vitriols內(nèi)置的Building blocks進行構(gòu)建即可完成,高級程序或平臺的開發(fā)可以完全以Vitriols提供的SDK為基礎(chǔ)進行開發(fā),SDK是Vitriols提供的基于C++程序的開發(fā)包,只要對C++編程熟悉的人,即可對Vitriols的功能模塊進行定制。
總結(jié)
Virtools通用性更強,開放擴展性更強,適合定制開發(fā)程序和定制應(yīng)用;?Virtools能兼容的數(shù)據(jù)類型最為廣泛:3D模型、動畫、人物、紋理、文字、聲音、場景等各類信息均能整合處理;若要實現(xiàn)后期的虛擬現(xiàn)實擴展應(yīng)用,建議使用Virtools程序進行程序設(shè)計;
?
Oger
簡介
OGRE能(實際上就是)被用于開發(fā)游戲,但是OGRE被設(shè)計成只提供一個世界級的圖形解決方案;對于其他的特性,如:音效、網(wǎng)絡(luò)、人工智能、碰撞檢測、物理等子系統(tǒng),你則需要將其整合到OGRE中,在這些子系統(tǒng)中,已有一些成熟的庫可供選擇,在發(fā)布的SDK中,我們有一個碰撞/物理的參考整合庫的例子。
那為什么OGRE不是一個游戲引擎呢?原因之一是:不是每一個需要3D引擎的人都想用其來做游戲,我們并沒有假設(shè)你要將OGRE用于游戲開發(fā)、模擬、商業(yè)應(yīng)用、或是其他用途。其次,游戲產(chǎn)業(yè)中的需求是相當廣泛的;以MMORPG(Massive Multiplayer Online Role Playing Game,即:大型多人在線角色扮演游戲)為例,它比起FPS(First Person Shooting,即:第一人稱射擊)類游戲,需要不同類型的網(wǎng)絡(luò)庫,再如一個格斗類游戲?qū)⑿枰煌愋偷呐鲎?物理系統(tǒng)。如果OGRE包括了所有這些特性,你將被迫在一系列內(nèi)建的假定的需求下使用一套有針對性的庫,那將不是一個好的設(shè)計。相反,我們提供了一個用于整合其他庫的非常友好的API。許多有經(jīng)驗的游戲開發(fā)者已經(jīng)證明了這一點,因為沒有內(nèi)建的限制。這可能會使得那些僅僅只是想創(chuàng)建另一種類型的FPS游戲的新用戶感到更加沮喪,但是對于這些人來說,已經(jīng)有大量現(xiàn)存的采用OGRE提供完整解決方案的綜合庫可供使用。然而,需要明白的是OGRE自身總是保持足夠地獨立和靈活,以致能夠與任何其他庫融為一體。“與其他庫協(xié)作和整合,而不是實現(xiàn)他們”的原則是面向組件設(shè)計的標準原則。
?
總結(jié)
在如今的平臺多樣性、硬件迭代速度和質(zhì)量要求下,小團隊和低端項目使用開源引擎得不償失。Unity在很低廉的價格下,提供了足夠好的開發(fā)效率、通用性和多平臺性。用Ogre,誰有精力把各個平臺一個個做下來?
高端開發(fā)方面,UE4在更加低廉的價格下提供了大部分代碼——不是全部開源——如果我沒記錯的話。UE4本來就不是瞄準低端和手機開發(fā)市場。我覺得他們的目的更多的在于培植自己的Indie開發(fā)者社區(qū)。用Ogre是真不如花20刀一個月用UE4。
所以用Unity的人不在乎是不是開源,用UE4的人不在乎是不是龐大。Ogre真是兩頭不靠。
現(xiàn)在這個年頭,自己從頭造車輪,或者拆開車輪自己改,已經(jīng)是很少見的做法了,只有經(jīng)費充足的AAA項目或者風(fēng)格過于小眾的游戲這么搞。
?
Cry
不支持移動端!性能開銷賊大!
CryENGINE是一個非常強大的引擎,由開發(fā)公司Crytek設(shè)計實現(xiàn),在第一代Far Cry游戲中首次出現(xiàn)。它被設(shè)計用于PC平臺和游戲機,包括Playstation 4以及Xbox One。CryENGINE的圖像處理能力優(yōu)于Unity和UDK,但是Unreal Engine 4基本持平,擁有極度先進的光照,逼真的物理模擬,先進的動畫系統(tǒng)等等。最近利用CryENGINE開發(fā)的游戲是Ryse: Son of Rome。和UDK以及UE4類似,CryENGINE擁有直觀而且強大的關(guān)卡設(shè)計功能。
盡管CryENGINE是一個非常強大的游戲引擎,想要學(xué)號是有一點難度的,特別是如果你沒有任何游戲引擎使用經(jīng)驗會覺得更難。如果你不需要你的游戲具有像這些游戲那樣牛X的圖像,那么你最好不要選它,而選擇一個更容易的哦。
隨著UE4的發(fā)布以及它非常吸引人的價格模式,CryENGINE也不甘示弱地發(fā)布了更便宜的價格模型,即$10/每月,并且沒有版權(quán)稅哦。
?
總結(jié)
以上是生活随笔為你收集整理的GJM : 各大开发游戏引擎的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最常用36个英语万能动词的词组短语和习惯
- 下一篇: 火了很多年,月利润3W+的暴利项目