3D引擎的五个基本模块。.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

3D引擎的五个基本模块。

随着IT产业的蓬勃发展,越来越多的幵源3D引擎、商业3D引

擎都涌现出来了,其中最具代表性的有用于移动端开发的Unity3D、

用于PC端开发的虚幻4(UnrealEngine4,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引擎,大家的第一印象是其跨平

台功能,与引擎核心功能渲染不搭边,而对于UE4引擎,大家的第一

印象是渲染,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引擎

文档评论(0)

199****2782 + 关注
实名认证
内容提供者

博士毕业生

1亿VIP精品文档

相关文档