• 感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手“推荐一下”吧!你的精神支持是博主强大的写作动力以及转载收藏动力。欢迎转载!
  • 版权声明:本文原创发表于 【请点击连接前往】 ,未经作者同意必须保留此段声明!如有问题请联系我,侵立删,谢谢!
  • 我的博客:http://www.cnblogs.com/GJM6/  -  传送门:【点击前往】

目录

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 : 各大开发游戏引擎相关推荐

  1. FW:十大开源游戏引擎深入比较_拔剑-浆糊的传说_新浪博客

    http://book.2cto.com/201301/15170.html 在国内外,业界盛传有十大开源游戏引擎,分别是OGRE.Irrlicht.Panda3D.Crystal Space.jME ...

  2. 【深圳招聘】年包100W-150W+,高薪聘客户端开发/游戏引擎开发大咖~

    01客户端开发工程师 职位描述 1.负责公司游戏的的功能开发及架构设计; 2.负责公司游戏的逻辑和界面开发工作: 3.参与游戏代码结构优化,提高团队代码质量. 岗位要求 1.计算机软件等相关专业,本科 ...

  3. 两大开源游戏引擎Cocos2d-x及OGEngine对比分析

    在近期的全球移动开发者大会上,触控发布了Cocos 3D引擎:而在差不多同时间,以安卓为主的OGEngine也发布了新版本,并宣布将支持跨平台. Cocos2d-x和OGEngine都是当前比较受开发 ...

  4. android网络游戏开发——客户端开发——游戏引擎的选择

    就在上次说了想写一款手机端的网络游戏之后,我就开始着手准备一些资料和搭建开发环境,由于在之前开发了一个基于java的C/S的题库程序,游戏的网络通信这一块的技术算是有点准备了,但是还是有很多的不确定性 ...

  5. 各大知名游戏引擎分析报告

    游戏引擎之争就像编程语言之争一样,在游戏开发圈永远是一个火爆的话题,目前市面上主流的一些游戏引擎,我们来给他们做一些比较,了解他们的历史,特点, 为了严谨,备注一下写这个文章的时间编写时间是2021年 ...

  6. wechat小游戏开发游戏引擎选择

    目前主流三家 :  1.Cocos Creator :http://cn.cocos2d-x.org/  2.Egret:http://www.egret-labs.org/  3. Layabox ...

  7. 十五开源的Andr​​oid(2D或3D)Android开发游戏引擎

    Android游戏开发Android游戏引擎是非常有用的,这里是10个开源的Andr​​oid(2D或3D)Android开发的游戏引擎. 1.  Rokon:Android的开源2D游戏引擎 Rok ...

  8. python开发游戏引擎_用Python写3A?Cygames的游戏引擎做得怎么样

    有句话叫"二流的游戏公司做游戏,一流的游戏公司做平台".索尼.任天堂.微软这些主机公司,除了推出第一方游戏以外,当然也在维护自家的游戏系统. 其实,以<公主连结RE:Dive ...

  9. 从0开发游戏引擎之引擎Win32平台的Platform类实现

    这个引擎是基于win32架构写的, Platform可以理解成是整个引擎的入口.控制着引擎的整个生命周期,内部主要完成了openGL.win32窗口句柄的初始化:键盘鼠标事件分发:主循环控制.关闭程序 ...

最新文章

  1. SCAU RP Test —— 因式分解与组合
  2. 四. RxJava之基本原理
  3. 数据结构-王道-绪论
  4. How to Create a Development Package ?
  5. 机器学习实践一 logistic regression regularize
  6. http详解 请求报文格式和响应报文格式
  7. C++PrimerPlus学习——第九章编程练习
  8. 罗永浩团队于天津成立品牌管理公司
  9. java工作笔记019---java8新特性判断非null
  10. bzoj 4319: cerc2008 Suffix reconstruction(构造)
  11. mysql内容_mysql 的基本内容
  12. mysql游标嵌套怎么写,mysql游标和嵌套游标
  13. 2021 年“泰迪杯”数据分析技能赛 B 题 肥料登记数据分析
  14. 漂浮式半潜风机(二)环境荷载
  15. c语言关于多边形的所有算法,教你如何在C语言中进行点在多边形内算法
  16. flutter图片识别_想在 flutter 中提取图片颜色?试试 color_thief_flutter
  17. 小米2/2S刷基于Android 5.1.1的CM12.1系统教程
  18. 基于html+js实现轮播图(自动轮播、左右按钮、小圆点点击及切换图片)
  19. 三星i9220刷机包 新蜂 V4.4
  20. 单片机毕业设计 stm32智能扫地机器人

热门文章

  1. 知乎周源微信_每周源代码36-PDC,BabySmash和Silverlight图表
  2. 书本ISBN号码校验
  3. 想剑网三妹子最多服务器,女生入坑《剑网3》,首选门派是蓬莱,但千万不要碰五毒...
  4. C语言实现实数和复数矩阵及其各种运算(二)
  5. STM32+enc28j60+uip 实现 单片机 ping PC端
  6. ValueError('need at least one array to stack') ValueError: need at least one array to stac
  7. 多模态学习(Multimodal Deep Learning)研究进展综述(转载)
  8. 昂达v80 plus linux,昂达(ONDA)V80 Plus平板电脑整体性能评测-ZOL中关村在线
  9. 2021面试第二弹来袭
  10. C语言永久不会过时?