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