3D渲染引擎介绍
背景
專業處理視覺呈現的渲染庫。
3D引擎從商業屬性上分為:商業引擎和開源引擎,從業務領域上分為:游戲引擎、GIS引擎、仿真引擎等,部分引擎可能具備多種領域組合,開發語言涉及包括:C++、C#、Java、JavaScript、GLSL及各類腳本等。
引擎列表
UE4游戲引擎-商業引擎(源碼開源)-游戲引擎-C++及腳本
UE4, 開發語言C++和藍圖。UE4是3A游戲開發者引擎的首選,它以逼真的渲染效果著稱。很多大型的3A游戲都采用UE4來開發,比如騰訊的《和平精英》等。UE4采用C++開發,雖然有藍圖,但是很多公司正式項目都去藍圖化,采用C++開發游戲,與C#和Js/Ts相比,開發難度大,當然C++可以獲得更好的性能。UE4不支持H5,但是可以用WebAssembly技術發布到Web平臺,同時可以發布到主流的游戲平臺,PC,iOS, Android等。UE4目前通過Cesium for Unreal組件,實現了游戲引擎和GIS引擎的跨界融合;總結一下UE4的特點:
- 畫面效果好,3A游戲的首選。
- C++開發難度相對較大,所以愛她的程序員和恨她的一樣多。
- 開發3A級游戲技術成熟, 畫面效果好。
國民3D引擎Unity-商業引擎-游戲引擎-C#及腳本
Unity, 使用C#或Lua語言開發。國民3D引擎,這個稱號說明了Unity在3D引擎的市場地位,中小型的游戲公司做3D游戲,基本都是用Unity, 很多大公司的游戲也用Unity, 比如《王者榮耀》, 國外什么情形呢?AppStore上面80%的3D游戲都使用Unity游戲引擎開發。為什么Unity打敗了眾多高手,成為國民游戲引擎,我們也好好的說一下。時間回到2010年左右,當時頁游比較火,Unity那個時候引擎的定位是能開發PC端游和頁游的游戲引擎。隨著手游時代來臨,市場急需一個3D游戲引擎,能一次開發多平臺發布到Android與iOS, 而Unity成為了當時唯一的3D游戲引擎解決方案。和手游市場一起,Unity實現快速增長。Unity能成為國民引擎還有一個很重要的原因,就是對初學者很友好,很方便就可以上手,極大的降低了3D游戲開發難度, Unity引擎的市場份額越來越大,技術人才, SDK,第三方插件, 技術資料等也越來越完整。總結一下Unity的特點:
-
能制作精美的3D游戲畫面,和定制渲染管線,畫面效果不如UE4。
-
能制作各種類型的3D游戲上線,每種類型的游戲都被商業項目驗證過。
-
完整的生態,一次開發多, 平臺發布(PC, android, iOS, xBox)。
-
Unity不開源, 需要支付授權費才可以修改引擎代碼, 發布后也要付授權費。
-
Unity開發2D游戲相對包體過大。
-
Unity 3D H5支持比較薄弱,不支持微信/抖音/華為/Facebook等H5小游戲平臺;但是可以用WebAssembly技術發布到Web平臺。
Cesium-開源引擎-GIS引擎-JavaScript
Cesium是一個用于顯示三維地球和地圖的開源js庫。它可以用來顯示海量三維模型數據、影像數據、地形高程數據、矢量數據等等。三維模型格式支持gltf、三維瓦片模型格式支持3d tiles。矢量數據支持geojson、topojson格式。影像數據支持wmts等。高程支持STK格式。
屬于GISSer領域使用率較高的軟件,特別是3DGIS在Web領域的無插件應用,對比其他的同類GIS引擎包括,開源的:OsgEarth,WorldWind等;商業的包括:SkylineGlobe,ArcGisGlobe等;國內使用Cesium軟件的廠家較多,特別是地理信息領域和導航定位領域的公司,如果有這方面類似的業務和需求,這款軟件是不錯的選擇。
優點
開源,GIS特性比較強,擴展性較強。
缺點
可視化和渲染效果不如游戲引擎,不過國內有一些廠家也定制了渲染管線,提升了渲染效果。
Urho3D/AtomicGameEngine-開源引擎-游戲引擎-C++/C#
Urho3D的引擎架構參考了Unity的ECS架構設計,是比較先進的架構。AtomicGameEngine引擎基于Urho3D,用C#形式封裝的,上手和易用性較Urho3D簡單,是很不錯的引擎。Urho3D和AtomicGameEngine一樣易于跟Qt5集成。
另外AtomicGameEngine/Urho3D設計得還挺好用的,感覺應該是比較現代的設計吧。游戲場景全由Node組成,并被組織為樹結構。每個Node可以附加一系列Component,每個Component可實現該Node某方面的功能。
優點
引擎架構先進,擴展性強,可作為自主引擎的基礎。
缺點
國內社區活躍度不高。
其他國內目前使用較多的引擎包括:
老牌圖形廠家,一般使用:Ogre、Osg、OsgEarth、VTK、Unigine等引擎,架構相對較老,只支持CS應用,大部分此類公司會在開辟一條BS引擎線。
新新GIS圖形廠家,一般使用:Cesium.js,Three.js,也是一些老牌圖形廠家支持BS技術的引擎選擇。
游戲和仿真跨界的廠家,一般使用:UE4、Unity等游戲引擎。
總結
- 上一篇: 小白的 Python学习笔记 之 inp
- 下一篇: Unity Recorder 插件录屏-