背景
专业处理视觉呈现的渲染库。 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等游戏引擎。