一种应用于游戏的3D引擎系统技术方案

技术编号:13067232 阅读:54 留言:0更新日期:2016-03-24 03:30
本发明专利技术涉及一种应用于游戏的3D引擎系统,所述引擎系统包括游戏应用上层,中间引擎系统层,操作系统底层;所述中间引擎系统层包括引擎系统核心模块、资源加载模块、资源管理模块、核心渲染模块、场景管理模块、多线程模块、事件系统模块、日志系统模块、声音模块、数学模块、渲染单元、地形模块、天空模块、特效模块、相机模块、动画模块、模型模块、shader模块、角色模块、后效模块和灯光模块;所述游戏应用上层、中间引擎系统层、操作系统底层依次连接。本发明专利技术的有益效果为:本发明专利技术简单易用的面向对象接口设计,更容易的实现渲染,进行扩展;本发明专利技术支持多种格式的文件加载,并支持多线程加载引擎系统渲染需要的各种资源。

【技术实现步骤摘要】

本专利技术属于3D引擎系统,具体讲涉及一种应用于游戏的3D引擎系统
技术介绍
随着计算机硬件图形加速器,图形学,三维渲染技术的发展,三维立体视觉游戏已经逐步走入我们的生活。3D游戏可随意转换视角,具有梦幻般的场景,并且极强的视觉冲击力,正在被越来越多的人关注。党的十七届六中全会提出将加速推动文化产业成为国民经济支柱产业,而游戏业的核心作用日益明显。三维游戏目前仍然是市场开发的重点领域也是占整个游戏产业收入最大的一块。三维游戏引擎系统是3D游戏开发中最核心的技术,弓丨擎系统的好坏直接决定一款3D游戏的成败。虽然目前市面上已经有很多成熟且优秀的3D游戏引擎系统,比如EPIC的虚幻引擎系统,Crytek的CryEngine,EA的Frostbite,Unity3D引擎系统等,但是采用这些引擎系统进行游戏开发不仅需要缴纳高昂的授权费用,而且由于对引擎系统底层实现的不熟悉,开发过程中可能会遇到瓶颈和后期性能优化的问题。
技术实现思路
为了解决现有技术存在的上述问题,本专利技术提供了一种应用于游戏的3D引擎系统,该系统具有良好的封装和组织架构,模块化设计,DLL插件式功能扩展,高效的场景管理和渲染模块。同时配套有完善的游戏开发必需的各种工具。本专利技术游戏引擎系统主要包括游戏应用上层,中间引擎系统层,操作系统底层三部分。游戏应用通过调用引擎系统的渲染接口间接调用操作系统底层渲染接口实现高效的三维图形渲染。本专利技术所采用的技术方案为:一种应用于游戏的3D引擎系统,其改进之处在于:所述引擎系统包括游戏应用上层,中间引擎系统层,操作系统底层;所述中间引擎系统层包括引擎系统核心模块、资源加载模块、资源管理模块、核心渲染模块、场景管理模块、多线程模块、事件系统模块、日志系统模块、声音模块、数学模块、渲染单元、地形模块、天空模块、特效模块、相机模块、动画模块、模型模块、shader模块、角色模块、后效模块和灯光模块;所述游戏应用上层、中间引擎系统层、操作系统底层依次连接;所述引擎系统通过资源加载模块并配合多线程模块对资源进行加载。优选的,所述资源管理模块包括资源管理器,资源组管理器,磁盘10,用于对引擎系统进行统一管理,所述资源管理模块进行资源的查询,插入和删除机制,避免资源的重复加载和资源内存泄露。进一步的,所述引擎系统向资源管理器请求资源,该资源在资源管理器中Cache命中,则直接返回该资源,否则资源管理器向资源组管理器发出请求,并将返回的资源指针Cache到资源管理器内部的一个Map容器中。优选的,所述日志系统模块用于为引擎系统的其他模块提供服务和帮助,其包括资源加载模块记录各个资源的加载状态;资源管理模块的资源加入,删除操作和内存泄漏进行记录;渲染模块记录渲染设备的状态切换。优选的,所述数学模块用于为引擎系统提供向量,矩阵,四元数类和各种高效数学算法;数学模块还用于对使用频率高的算法混合使用汇编语言和SSE进行编写。优选的,所述声音模块采用开源中间件FM0D,可支持wav,mp3,acc大多数格式音乐音效的播放;所述场景管理模块将每一帧需渲染的单元挑选出来提供给渲染模块,由渲染模块完成最终的图像输出。优选的,所述渲染模块将渲染单元最终渲染到电脑屏幕上变成可视的画面;所述渲染模块提供高度抽象的上层渲染接口,将渲染接口与平台渲染相关API进行分离,便于跨平台支持和扩展。优选的,所述渲染模块每帧按照各个渲染队列的优先级从各个渲染队列依次取出各个渲染单元进行渲染;渲染模块采取资源预加载,渲染状态切换最小化,按照材质进行分批次渲染,渲染批次最小化一系列渲染技巧。优选的,所述引擎系统渲染应用方法为(1)每帧渲染需更新场景图,更新各个相机,设置shader参数,分别渲染静态阴影和动态阴影;(2)场景管理器根据当前场景主摄像机,视距,主角坐标参数对场景对象进行裁剪;(3)对帧时间更新完成后的场景对象,提取其包含的渲染对象并给渲染对象设置顶点着色器参数,片段着色器参数,渲染状态,变换矩阵,灯光,材质参数一系列参数;(4)提交至渲染队列;(5)将每个渲染队列的数据交由渲染模块进行渲染处理。进一步的,所述步骤(5)包括(5.1)渲染模块设置该队列的渲染状态,遍历渲染队列中的各个渲染对象;(5.2)渲染模块设置渲染对象的渲染状态,顶点数据,索引数据,顶点声明;(5.3)渲染模块调用DriectX底层API完成对每个渲染队列中的各个渲染对象的渲染。本专利技术的有益效果为:本专利技术简单易用的面向对象接口设计,不仅更容易的实现渲染,进行扩展也非常方便;本专利技术高效且高度可配置的资源管理系统,支持多种格式的文件加载,并支持多线程加载引擎系统渲染需要的各种资源;本专利技术支持读取MPQ格式的资源包进行渲染,不仅实现了资源压缩,加密,还提高了加载速度;本专利技术优秀的场景管理系统通过将渲染实体附属到场景结点的方式进行组织场景,实现了渲染实体与场景树的分离,具有高度的灵活性;本专利技术充分利用GPU编程技术进行各种渲染,支持汇编,Cg,HLSL,GLSL等语言编写的shader,不仅提高了渲染效率而且可以实现各种绚烂多彩的效果;本专利技术支持多种动画,包括数字动画,结点动画,姿态动画,骨骼蒙皮动画及多个动画混合技术;本专利技术支持静态阴影技术和实时动态阴影技术;本专利技术高效的材质管理系统将渲染状态切换最小化,提高了渲染效率;本专利技术支持无限大地形渲染,按照地形块进行渲染,支持多线程地形加载和地形L0D技术;本专利技术全面支持渲染到纹理技术和投影贴花技术;本专利技术丰富高效的粒子系统可以实现各种绚丽夺目的特效;本专利技术全面支持各种天空渲染技术,例如天空盒,天空面,穹顶;本专利技术优化的二进制模型文件格式,加载效率非常高;本专利技术支持多种图片格式,包括jpg,png, dds,tga等,同时支持特殊格式纹理包括一维纹理,volume texture, cube texture 等;本专利技术支持游戏中的各种绚丽的过场动画,增强了玩家代入感,丰富了游戏体验;本专利技术全面高效的日志系统和内存泄露检测系统,便于游戏引擎系统出现问题后进行问题的排查。本专利技术灵活高效的摄像机系统,可以实现各种视角。【附图说明】图1为本专利技术提供的一种应用于游戏的3D引擎系统结构示意图;图2为本专利技术提供的一种应用于游戏的3D引擎系统中间引擎系统层结构示意图;图3为本专利技术提供的一种应用于游戏的3D引擎系统资源加载流程示意图;图4为本专利技术提供的一种应用于游戏的3D引擎系统渲染模块渲染流程示意图。【具体实施方式】如图1所示,本专利技术提供了一种应用于游戏的3D引擎系统。本专利技术的游戏引擎系统将引擎系统的所有核心功能导出到DLL动态链接库插件中,并提供C++头文件供游戏逻辑开发人员使用,具有极强的灵活性和扩展性。美术人员将做好的美术资源(场景,模型,特效等)通过引擎系统提供的各种工具转换成引擎系统专用的数据格式提供给游戏引擎系统。引擎系统通过资源加载模块并配合多线程模块对各种资源进行加载,在这个多核普及的年代,多线程资源加载具有很高的加载效率。本专利技术引擎系统的资源加载过程如图3所示,加载到游戏中的资源由资源管理模块进行统一管理,资源管理模块不仅为资源提供高效的查询,插入,删除机制,还能避免资源的重复加载和资源内存泄露。按照资源类型引擎系统定义了本文档来自技高网...

【技术保护点】
一种应用于游戏的3D引擎系统,其特征在于:所述引擎系统包括游戏应用上层,中间引擎系统层,操作系统底层;所述中间引擎系统层包括引擎系统核心模块、资源加载模块、资源管理模块、核心渲染模块、场景管理模块、多线程模块、事件系统模块、日志系统模块、声音模块、数学模块、渲染单元、地形模块、天空模块、特效模块、相机模块、动画模块、模型模块、shader模块、角色模块、后效模块和灯光模块;所述游戏应用上层、中间引擎系统层、操作系统底层依次连接;所述引擎系统通过资源加载模块并配合多线程模块对资源进行加载。

【技术特征摘要】

【专利技术属性】
技术研发人员:仁庆道尔吉李娜万剑雄
申请(专利权)人:内蒙古工业大学
类型:发明
国别省市:内蒙古;15

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1