[发明专利]一种基于DirectX平台的游戏引擎数据处理系统及方法有效

专利信息
申请号: 201911342435.3 申请日: 2019-12-23
公开(公告)号: CN111111197B 公开(公告)日: 2021-07-16
发明(设计)人: 校景中;刘海波 申请(专利权)人: 西南民族大学
主分类号: A63F13/60 分类号: A63F13/60
代理公司: 北京众合诚成知识产权代理有限公司 11246 代理人: 邹仕娟
地址: 610041 四川*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 directx 平台 游戏 引擎 数据处理系统 方法
【权利要求书】:

1.一种基于DirectX平台的游戏引擎数据处理系统,其特征在于,所述基于DirectX平台的游戏引擎数据处理系统包括:

核心系统,用于对游戏的内存、容器、字符串、异常、日志进行管理与处理;

渲染系统,用于定义和处理渲染相关功能,所述功能包括纹理的加载和渲染、文本布局的创建和渲染、字体文件的加载、几何形状的处理;

事件系统,用于定义和管理游戏事件;

场景系统,用于对游戏场景与场景中的元素进行处理与管理;

动画系统,用于制作游戏动画,动画为补间动画或帧动画;

音频系统,用于进行音频文件加载、播放;

GUI系统,用于处理游戏界面中的按钮、菜单;

工具库,用于提供定时任务、资源管理、文件管理、异步任务相关处理工具;

第三方库,用于调用第三方库实现相应功能;

所述基于DirectX平台的游戏引擎数据处理系统的渲染系统对Direct2D、DXGI和Direct3D的驱动层接口进行封装,兼容Direct3D10和Direct3D11;

所述基于DirectX平台的游戏引擎数据处理系统使用插件形式构架,支持灵活的插件形式的组件增加方式;

所述基于DirectX平台的游戏引擎数据处理系统使用侵入式链表,并使用所述链表构建场景中的树形结构;

所述基于DirectX平台的游戏引擎数据处理系统使用侵入式智能指针进行内存管理,所述智能指针将引用计数的相关操作托管到其他类中;

所述基于DirectX平台的游戏引擎数据处理系统使用字符串容器,所述字符串容器针对常量字符串进行了优化;

所述基于DirectX平台的游戏引擎数据处理系统使用数组容器,所述数组容器针对非类类型的容器元素的内存操作进行优化;

核心系统中的函数库和类库在以下几个方面进行优化和改进:

A、设计和实现vector容器类;该类会对容器元素类型进行判断,若元素类型为内置类型,则使用内存操作函数直接对底层进行操作,这个功能通过模板类的偏特化实现,vector类本身不包含内存操作,而是通过vector_memory_manager实例操作内存,偏特化后的vector容器针对不同类型的容器元素采用不同类型的vector_memory_manager;

B、设计和实现basic_string字符串类;basic_string类中包含一个原始字节数组和常字符串指针的匿名union联合体,默认情况下只持有常量字符串指针,而不进行内容拷贝;当需要操作字符串实际内容时,basic_string自动完成字符串内容的懒拷贝,该过程对于用户是透明的;

C、设计和实现intrusive_ptr侵入式智能指针类;智能指针只需要保存引用计数对象的地址,根据RAII原理在析构函数中减少该对象的引用计数;

D、设计和实现intrusive_list侵入式链表类;侵入式链表中的元素本身就是迭代器,储存了节点的前驱后继,并通过继承intrusive_list_item的方式实现链表结构,不需要额外的储存空间;

E、设计和实现function伪函数类;function类将所有类型的functor抽象为callable类型,并保存callable基类指针;callable类通过虚函数invoke实现实际的函数调用过程,所有的callable对象都是引用计数对象;派生自callable的proxy_callable类、proxy_mem_callable类和proxy_const_mem_callable类分别完成对完成functor对象、类成员函数、类常函数的代理调用;

F、设计和实现Matrix3x2矩阵类;3x2大小的矩阵用于表示二维世界中的坐标变换关系,矩阵类在计算多个矩阵的乘法时,会创建一个开销小于预设值的对象来储存乘法的左右操作数,即通过该对象储存表达式本身,当获取表达式结果时,一次性将表达式展开,计算结果直接存入新的变量中;

所述事件系统为游戏开发者提供了事件处理机制,事件是指包含鼠标位移、鼠标点击、键盘按键按下、窗口大小变化、窗口标题变化在内的游戏应用程序所可能发生的情况,当一个事件发生时,事件系统将事件分发到各个事件支持组件,游戏开发者设置事件监听器以监听某一特定类型的事件的发生,并处理该事件;

所有组件注册在Application类上,并随着该类的启动进行初始化,Application类首先通过WindowsAPI判断是否有事件发生,当有事件发生时该类会调用事件支持组件的相应函数;然后进入更新流程,更新流程用于更新游戏数据和状态,更新流程分为更新前、更新时、更新后三个步骤,其中更新前和更新时以组件的注册顺序通知各组件,更新后以组件注册的逆序通知各组件;随后进入渲染流程,渲染流程分为渲染前、渲染时、渲染后三个步骤,其中渲染前和渲染时以组件的注册顺序通知各组件,渲染后以组件注册的逆序通知各组件;Application类不断循环整个过程,直到游戏退出时卸载所有组件;

事件系统在分发事件的过程中,首先在Windows消息循环中获取产生的消息,将消息分发给注册在Application上的所有事件支持组件,其中Director类是默认注册的事件支持组件之一,Director类用于管理场景的更新、渲染、过渡和事件分发,该类收到事件后会把事件转发给当前场景;场景是Stage类,Stage类会递归地把事件分发给它的子节点,每个节点都先调用相应的事件监听器,然后继续向节点树的下层分发。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西南民族大学,未经西南民族大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911342435.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top