3D引擎的五个基本模块。
随着IT产业的蓬勃发展,越来越多的幵源3D引擎、商业3D引擎都涌现出来了,其中最具代表性的有用于移动端开发的Unity3D、用于PC端开发的虚幻4(Unreal Engine 4,UE4)以及幵源图形学引擎OGRE。
Unity引擎在市面上比较流行,相信大多数IT开发者都使用过,先以Unity3D引擎为例介绍引擎的原理,Unity3D引擎提供了一个功能非常强大的编辑器供用户开发使用。
支撑编辑器运行的是许多己经封装好的DLL文件,读者可通过其安装目录查看许多DLL动态库文件,这些封装的DLL动态库就是Unity3D引擎底层封装提供的。
游戏开发者在使用其开发游戏写具体逻辑时,也需要利用C#脚本调用动态库DLL封装的函数接口,从而能够执行引擎底层的代码,实现想要的效果。接口的使用可通过查看Unity帮助文档获取,它的底层代码的实现对用户来说是不可见的,但这不妨碍使用者开发项目,因为使用者只要知道函数的功能就可以了。
3D引擎本身也是一种3D软件,主要负责处理游戏虚拟世界的渲染,3D引擎架构设计其实非
常复杂,用到的知识点非常多,比如设计模式、多线程编程、算法、GPU编程等,但是不管多么复杂,其最基本架构思想还是模块化开发,就比如打篮球一样,不论采用哪种战术跑位,最基本的还是挡拆战术。
继续模块思想的讨论,以模块化思想设计的3D引擎便于扩展,可以有效地减少模块之间的耦合性。
开发3D游戏引擎时,切记面面倶到;换句话说,3D游戏引擎的主要功能是渲染。在这方面做得比较好的是开源的Ogre图形学引擎及商业引擎UE4,它们核心功能只是负责3D渲染,做3D引擎该做的事情。
对于Unity3D引擎,它在3D引擎渲染的基础上还增加了网络库等功能,对于引擎来说显得过于臃肿;当然这里不是说Unity3D引擎不好,只是其功能太多,对开发者来说并不一定是好事情。
这种做法对引擎自身来说也不一定是好事情,因为这样引擎的功能失去了重点,所以一提到Unity3D引擎,大家的第一印象是其跨平台功能,与引擎核心功能渲染不搭边,而对于U
E4引擎,大家的第一印象是渲染,UE4在渲染这方面做得非常专一,结果就是UE4引擎渲染功能比Unity3D引擎更强大。
当然Unity3D引擎的优点也是非常多的,比如引擎的架构设计使用了组件的理念,使用脚本写逻辑,可以跨多个平台等,而且对于初学者上手非常快,这也是它能快速普及的一个主要原因。
如果要开发一款引擎具体如何做?引擎由哪些主要模块组成?
游戏引擎涵盖的模块非常多,它是一个处理游戏所有逻辑的系统。引擎渲染功能是否强大,决定了游戏渲染品质的高低,以及游戏渲染运行的流畅度。
下面简单介绍一下通用的3D游戏引擎架构,如图1所示。
图1:通用的游戏引擎架构
游戏逻辑是最顶端的,也就是所说的游戏产品,一般的游戏开发者都是开发这层的逻辑。
3D引擎包括了很多功能模块,图1-1所列举的只是比较核心的引擎模块,引擎最终会编译成动态库DLL或者静态库LIB,方便游戏逻辑幵发者调用其函数接口。
当然引擎模块内容对用户是不可见的,就像一个黑匣子一样,它里面封装了游戏开发用到的所有模块,比如图1-1所示的声音模块、渲染模块、内存管理、输入系统、物理系统等。
游戏引擎的渲染模块会选择使用微软的DirectX库或者开源跨平台的OPENGL、OPENGLES图形库,图1-1所示的是传统的引擎架构图。
市面上很多公司研发的跨平台3D引擎,都是基于OPENGLES图形库开发的,比如网龙、网易、腾讯、蜗牛、完美等知名IT公司都有自己研发的引擎,引擎的研发也代表着一个公司的研发实力。
对于程序员来说,掌握了3D引擎开发技术,就等于掌握了游戏的核心技能,在国内研发3D引擎的人毕竟是少数,所以3D游戏引擎研发市场缺口很大。所以作为程序员来说,应该努力去掌握3D引擎研发技能,这样在IT激烈的竞争中才能立于不败之地。单人开发选ue4还是unity
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论