基于MicrosoftDirectX库下库下的编程接口封装组件+对象框架

基于MicrosoftDirectX库下库下的编程接口封装组件+对象框架

DirextX库渲染下的游戏引擎

摘要:DirectX 库包含了很多渲染函数。 因此,在已经设计好的游戏引擎下​​,利用该库将游戏引擎应用程序的编程接口封装到各个渲染组件中,实现一个基于微软DirectX库的新游戏引擎。 该引擎的特点是借鉴了Unity引擎组件+对象框架的模式,最大的特点是可以使用脚本模块来扩展组件功能。 当然,DirectX库还包含多用途的API函数,这些接口函数可以用于游戏引擎组件和对象的实现。

关键词:DirectX库; 游戏引擎; 渲染; 零件

CLC 编号:TP393.09 文档代码:A 文章编号:1007-9416 (2017) 03-0200-01

摘要: DirectX库包含了很多渲染函数,因此在设计时有很好的游戏引擎,游戏引擎将使用数据库应用程序编程接口封装到每个渲染组件,在新游戏引擎的基础上实现了Microsoft DirectX Library。 该引擎的特点是借鉴了Unity引擎的组件+对象框架模型,最大的特点是可以使用脚本模块来扩展组件的功能。 当然,DirectX库还包含了多用途API函数的实现,这些接口函数可以用在游戏引擎组件和对象的实现中。

关键词:DirectX库; 游戏引擎; 渲染; 零件

游戏引擎是指一些可编辑的计算机游戏系统或一些已经编写好的交互式真实图像应用程序的核心部件,是游戏设计者编写游戏的必备工具。 当然,游戏引擎有很多,包括渲染引擎、物理引擎、碰撞效果引擎等等。但是不管是2D游戏还是3D游戏,或者其他策略游戏等等,这里面都有一个控制工具部分。 经过不断的技术革新,如今的游戏引擎已经发展成为由多个子系统组成的复杂系统。 从建模、动画到光影,所有其他组件系统几乎涵盖了开发过程中的所有重要环节。

1 微软 DirectX 库

DirectX 是由 Microsoft Corporation 创建的多媒体编程接口。 遵循COM编写一个游戏引擎,采用C++编辑语言实现。 它广泛用于视频游戏开发。 Microsoft DirectX 是一组技术,旨在使基于 Windows 的计算机成为运行和显示具有丰富多媒体元素的应用程序的理想平台。 应用程序可以使用 DirectX API 访问这些功能。 但DirectX并不是一个简单的图形API,它是由微软开发的一种应用广泛的API3D角色,它提供了一整套多媒体接口解决方案[1]。

2 框架与接口

考虑到需要扩展更多的组件,我们借鉴了Unity引擎组件+对象的框架模型。 在这种模式下,一个物体用于表示它在三维空间中的位置,同时确定它与其他物体的关系。 但是这个对象没有特定的功能。 要实现一个特定的功能,就需要给它添加相应的组件。 另外,为了保证游戏引擎内容数据和接口的隐蔽性以及自身的可扩展性,需要增加相应的接口。 接口的使用可以防止每个对象类实现相同的功能。 重要的是组件类只有在对象类中被调用才能实现相应的功能。 这提高了游戏引擎的效率。 代码在开发过程中变得清晰整洁[2]。

3 组件和对象

发动机部件是实际功能的载体,是最重要的部件。 可分为渲染组件、物理组件和动画组件。 渲染组件扮演变换、网格和材质的角色。 变换是指方向和位置的移动,网格是指对对象模型中冗余数据的处理,材质是对象本身所体现的特性。 物理成分起到解决力的作用,动画成分是帧的堆积,呈现动态状态。 当然,除了这些组件之外,还有引擎对象,包括相机系统、地形系统和照明系统[3]。 相机系统主要用于取景变换,地形系统主要用于模拟现实世界的地形技能特效,达到逼近现实的目的。 照明系统无疑模拟了现实世界中的自然光,可以产生逼真的照明效果。

4 引擎实现

游戏引擎只是游戏的“一部分”,是游戏的载体。 游戏的渲染和实现都是基于这个载体。 要真正打造3D游戏世界,还需要使用Windows编程编写Windows应用程序,让3D世界有一个可以呈现的载体。 游戏引擎创建的三维世界还是需要编写简单的代码来生成程序窗口编写一个游戏引擎,通过游戏引擎创建一个简单的三维世界。

参考

[1]杰森·格雷戈里。 游戏引擎架构[M]. 北京:电子工业出版社,2014.

[2] 弗兰克·D.卢纳。 DIRECTX 9.0 3D游戏开发编程基础[M]. (二)北京:清华大学出版社,2012。

[3] 吉姆·亚当斯。 DirectX高级动画制作[M]. 重庆:重庆大学出版社,2013.