摘要:针对DirectX库包含很多渲染函数,为此在已经设计好的游戏引擎下,利用该库将此游戏引擎应用程序的编程接口封装到各个渲染组件里,就实现了一个基于Microsoft DirectX库下的新的游戏引擎。该引擎的特点是借鉴了Unity引擎组件+对象框架的模式,其最大特点是可以使用脚本模块来扩展组件功能。当然DirectX库里面还包含实现多用途的API函数,这些接口函数可以用在游戏引擎组件和对象的实现上。
关键词:DirectX库;游戏引擎;渲染;组件
中***分类号:TP393.09 文献标识码:A 文章编号:1007-9416(2017)03-0200-01
Abstract:The DirectX library contains a lot of rendering functions, therefore in the design has good game engine, the game engine will use the database application programming interface package to each rendering component, implements a Microsoft DirectX Library under the new game engine based on. The engine is characterized by drawing on the Unity engine components + object framework model, the biggest feature is that you can use the script module to extend the function of the component. Of course, DirectX library also includes the realization of multi-purpose API function, these interface functions can be used in the game engine components and the realization of the object.
Key Words:DirectX library; game engine; rendering;component
游戏引擎是指一些已经编写好的可编辑电脑游戏系统或者一些交互式实r***像应用程序的核心组件,是游戏设计者编写游戏所必须的工具。当然,游戏引擎也分好多,其可包括渲软引擎,物理引擎,碰撞效果引擎等。但是,无论是2D游戏还是3D游戏,或者其它的策略游戏等,都有这一段起控制作用的工具。经过不断的技术革新,如今的游戏引擎已经发展成为一套由多个子系统够成的一个复杂的系统。从建模、动画到光影等其它一切组件系统几乎涵盖了开发过程中所有的重要的环节。
1 Microsoft DirectX库
DirectX是由微软公司创建的多媒体编程接口。由C++编辑语言实现,遵循COM。被广泛应用在电子游戏开发上。Microsoft DirectX是这样一组技术:它们旨在使基于Windows的计算机成为运行和显示具有丰富多媒体元素的应用程序的理想平台。应用程序可以通过使用DirectX API来访问这些功能。但是DirectX并不是一个单纯的***形API,它是由微软公司开发的用途广泛的API,提供了一整套的多媒体接口方案[1]。
2 框架和接口
考虑到需要扩展更多的组件,于是就借鉴了Unity引擎组件+对象的框架模式。在该模式下使用一个对象表示在三维空间中的位置,同时确定它与其它对象之间的关系。但是这个对象并没有具体的功能。要实现某一具体的功能就要在其中添加与之相对应的组件。另外,为了保证游戏引擎内容数据及接口的隐藏性和本身的可扩展性,就需要添加与之相对应的接口。接口的使用可以避免每个对象类实现相同的功能,重要的是组件类只有在对象类中被调用才能实现对应的功能。这样就能提高游戏引擎的效率。在开发过程中代码变的清晰整洁[2]。
3 组件和对象
引擎组件是实际功能的承载者,是最为重要的一个部分。可以分为渲染组件,物理组件和动画组件等。渲染组件担当着变换、网格和材质的角色。变换指的是方位和位置的移动,网格指的对物体模型中冗余的数据的处理,材质是物体自身反应出来的特性。物理组件起着解决力的效果,动画组件就是帧的累加,呈现一个动的状态。当然除了这些组件外还有引擎对象,包括摄像机系统、地形系统和光照系统[3]。摄像机系统主要是用来取景变换,地形系统主要是用来模拟现实世界的地形,达到逼近现实的目的。光照系统毋庸置疑模拟现实世界中的自然光,能够出现逼真的光照效果。
4 引擎实现
游戏引擎只是游戏的一个“零部件”,是一个游戏的载体。游戏的渲染和实现都是基于这个载体之上的。真正创建出一个3D游戏世界,还需要使用Windows编程编写Windows应用程序,让三维世界有一个可以被呈现的载体。通过该游戏引擎所创建的三维世界,还是需要编写简单的代码产生程序窗口,并通过该游戏引擎来创建一个简单的三维世界。
参考文献
[1]Jason Gregory.游戏引擎架构[M].北京:电子工业出版社,2014.
[2]Frank D.Luna.DIRECTX 9.0 3D游戏开发编程基础[M].(第二)北京:清华大学出版社,2012.
[3]Jim Adams.DirectX高级动画制作[M].重庆:重庆大学出版社,2013.
转载请注明出处学文网 » DirextX库渲染下的游戏引擎