一种三维游戏引擎内核结构的制作方法

文档序号:6377110阅读:184来源:国知局
专利名称:一种三维游戏引擎内核结构的制作方法
一种三维游戏引擎内核结构 本发明涉及一种三维游戏弓I擎内核结构。随着计算机虚拟现实技术、三维游戏技术的发展,三维游戏引擎成为三维游戏开发必不可少的环节。逼真的游戏场景及三维效果需要复杂的三维渲染功能实时显示支持,对于三维游戏引擎的设计,其所包含的三维游戏引擎子功能的实现和封装就成了引擎实现的关键部分。在三维图形和3D游戏场景中,每个像素最终显示出来的颜色都是经过大量计算 得到的,真实感图形绘制是三维模型的一个重要组成部分,它综合利用数学、物理学、计算机科学和其他科学知识生成具有真实感的图形。同时场景中的模型还依赖于场景中的光照以及场景中物体对光线的反射和吸收情况。模型动画是游戏引擎的一个重要功能,在设计游戏引擎的时候,会将一些基本的动画功能封装植入引擎,方便用户的调用。引擎的另一个重要功能是碰撞检测,它可以检测游戏中各物体的物理边缘。当两个3D物体撞在一起的时候,这种技术可以防止它们相互穿过。材质渲染也是引擎的重要功能,当3D模型制作完成后,需要按照不同的面把材质贴图赋予模型,最后再通过渲染引擎把模型、动画、光影、特效等所有效果实时计算出来显示在屏幕上。目前比较成熟的三维游戏引擎,如果用于商业领域,成本过高,而且规模大耗用计算机资源大,对于设计一些简单三维游戏的应用,不需要涉及如此高的成本;同时,不同的三维游戏会在某个引擎功能方面使用较多,而有的引擎功能使用较少,针对不同的应用,需要有不同功能针对性的三维游戏引擎,而这主要取决于三维游戏引擎内核的封装,结合实际需求进行三维游戏引擎内核的封装,内核功能的可扩展及满足后续的补充和修改成为了必要。本发明克服了上述技术的不足,提供了一种三维游戏引擎内核结构,通过对引擎内核中子算法单元的静态与动态功能的划分,自定义出与引擎外部接口进行通讯的自定义功能接口模块,便于上层接口的功能调用,通过其上的功能调用接口单元进行统一的调用管理,功能属性接口单元或动态功能更新接口单元进行相应的功能调用运算,提高处理效率。为实现上述目的,本发明采用了下列技术方案一种三维游戏引擎内核结构,包括有划分封装了三维引擎底层各子算法功能单元、实现三维游戏引擎底层渲染的引擎功能模块1,以及作为引擎内核对外接口用于引擎功能模块I中各子算法功能单元与引擎外部接口进行通讯连接的自定义功能接口模块2。所述引擎功能模块I包括有通过对特定功能属性的参数值的设定或修改就能表现场景模型功能特征的静态功能模块11,以及需要根据当前场景模型数据坐标进行实时更新计算才能逼真表现其功能特征的动态功能模块12。所述自定义功能接口模块2包括有用于在功能调用时负责传递静态功能模块11静态功能所对应的特定功能属性参数给引擎外部接口的功能属性接口单元21,负责对引擎内核动态功能数据的实时计算和更新的动态功能更新接口单元22,以及用于实现对引擎功能模块I的静态功能和动态功能进行统一调用管理的功能调用接口单元23,所述功能调用接口单元23分别与功能属性接口单元21、动态功能更新接口单元22控制连接。所述静态功能模块11包括有三维模型建模单元111、光源节点添加单元112、材质功能添加单元113、渲染功能添加单元114、粒子系统节点单元115。
所述动态功能模块12包括需要根据当前场景模型数据坐标进行实时更新计算才能逼真表现其功能特征的子算法功能单元有矩阵变换功能单元121、摄像机漫游单元122、拾取交互功能单元123、模型动画功能单元124、碰撞检测单元125。本发明的有益效果是I、引擎内核功能即引擎功能模块中各子算法功能单元进行静态与动态的划分,扩展性和兼容性好,容易满足后续的补充和修改,通过本发明的结构容易实现子算法功能的调用。2、自定义功能接口模块兼容性好,便于与引擎外部接口的衔接,提高三维引擎对外的兼容能力。3、通过功能调用接口单元对功能属性接口单元、动态功能更新接口单元统一调用控制,对各子功能算法单元进行有序管理和组织,提高整个引擎内核处理数据的效率。4、通过动态功能更新接口单元负责对引擎内核动态功能数据的实时计算和更新,使整个场景显示的效果更加逼真。5、整个三维游戏引擎内核封装结构容易实现,耗用计算机资源少,成本低。图I为本发明的结构示意图。图2为本发明的引擎功能模块结构示意图。下面结合附图
与本发明的实施方式作进一步详细的描述如图I所示,一种三维游戏引擎内核结构,其特征在于包括有划分封装了三维引擎底层各子算法功能单元、实现三维游戏引擎底层渲染的引擎功能模块1,以及作为引擎内核对外接口用于引擎功能模块I中各子算法功能单元与引擎外部接口进行通讯连接的自定义功能接口模块2。在本设计中,结合具体引擎功能的特征,所述引擎功能模块I将三维引擎子功能划分成两类,通过对特定功能属性的参数值的设定或修改就能表现场景模型功能特征的静态功能模块U,以及需要根据当前场景模型数据坐标进行实时更新计算才能逼真表现其功能特征的动态功能模块12。如图2所示,所述的静态功能模块11包括的子算法功能单元有三维模型建模单元111、光源节点添加单元112、材质功能添加单元113、渲染功能添加单元114、粒子系统节点单元115,上述单元经设定参数后会表现出应有的静态功能特征。所述的动态功能模块12包括需要根据当前场景模型数据坐标进行实时更新计算才能逼真表现其功能特征的子算法功能单元有矩阵变换功能单元121、摄像机漫游单元122、拾取交互功能单元123、模型动画功能单元124、碰撞检测单元125,这些单元的功能需要实时显示更新数据,才能逼真表现其功能。虽然在实时三维引擎显示中,所有模型都是动态呈现的,但此处的静态功能模块11与动态功能模块12中子算法功能单元的划分归类是相对于在如何表现功能特征上来说的,静态功能模块11中的子算法功能单元只需要通过设定一些特定参数就可以使功能持续呈现的子功能,这种静态功能的调用只需与引擎外部接口进行一两次通讯就能完成,而动态功能模块12中的子算法功能单元则需要根据当前数据坐标进行实时更新计算才能逼真表现功能特征。如,在场景中有一头牛,当调用渲染功能添加单元114将其变成红色时,只需调用一次渲染功能添加单元114对应渲染功能参数将其颜色参数改成红色对应的数据值即 可,因此,渲染功能添加单元114被划分进静态功能模块11中的功能单元。而如果显示这头牛在场地中走来走去,则需要实时调用牛的当前位置坐标信息,并调用矩阵变换功能单元121计算其坐标值,然后不断地通过引擎外部接口回传给场景,使牛能够逼真的显示到位置处理后的坐标点,这样的数据需要计算机一直实时做大量的数据处理,因此,矩阵变换功能单元121被划分进动态功能模块12中的功能单元。如上所述,引擎功能模块I中各子算法功能单元进行静态与动态的划分,扩展性和兼容性好,容易满足后续的补充和修改。如图I所示,在本设计中,所述自定义功能接口模块2是结合引擎功能模块I的静态与动态功能划分方式而设计的,其包括功能属性接口模块21、动态功能更新接口单元22和功能调用接口单元23。所述的功能属性接口模块21负责传递三维引擎功能的静态功能变量给外部接□。所述功能调用接口单元23负责引擎外部接口与三维引擎子功能实现调用的双向传递。所述动态功能更新接口单元22负责对于引擎内核动态功能数据的实时计算和更新。所述功能调用接口单元23分别与功能属性接口单元21、动态功能更新接口单元22控制连接。结合上述引擎功能模块I静态与动态功能的划分,所述静态功能模块11在功能调用中,只需要把设置相应静态功能单元的功能属性参数通过自定义功能接口模块2传递给引擎外部接口即可完成其功能的调用,因此将静态功能模块11中各静态功能单元的功能属性参数接口进行统一并与功能属性接口单元21相接,同时各静态功能单元是否调用通过功能调用接口单元23进行统一管理。比如对于光源节点功能的调用,首先通过功能调用接口单元23调用光源节点添加单元112,然后通过功能属性接口单元21设置光源在场景中的类型、颜色、聚光指数、光源衰减因子等参数,所述光源类型如定向光源、定位光源或者聚光灯等,所述颜色包括环境光颜色、漫反射光颜色、镜面反射光颜色,所述光源衰减因子包括常数衰减因子、线性衰减因子、平方衰减因子等,经过设置以后,光源即在场景中以此状态一直存在,直到通过功能调用接口单元23停止对光源节点的调用。而对于动态功能模块12中功能的调用,同样通过功能调用接口单元23调用所需要的子算法功能单元,需要引擎内核实时更新计算外部场景数据,因此还需要通过动态功能更新接口单元22与其相接,首先通过功能调用接口单元23启用某一功能,然后通过动态功能更新接口单元22传递场景中的数据给相应的子功能单元,子功能单元对数据进行处理后再将实时数据传递给动态功能更新接口单元22,动态数据需要实时计算,因此在运行时会占用大量的内存资源。比如需要调用模型之间的碰撞检测功能时,首先通过功能调用接口单元23启用碰撞检测单元125,此时需要通过动态功能更新接口单元22将场景中的模型数据传递给碰撞检测单元125,碰撞检测单元125对模型套用碰撞检测盒,然后对模型与模型的检测盒是否相交进行实时计算和检测,当检测到检测盒相交时,即认定为模型发生了碰撞,然后再通 过动态功能更新接口单元22传递给其他功能模块做出相应的处理。如上所述,自定义功能接口模块2兼容性好,便于与引擎外部接口的衔接,提高三维引擎对外的兼容能力。如上所述,引擎功能模块I中各子功能单元并非独立存在,很多时候都会多个功能同时发生作用,此时通过功能调用接口单元对功能属性接口单元、动态功能更新接口单元统一调用控制,对各子功能算法单元进行有序管理和组织,提高整个引擎内核处理数据的效率,通过动态功能更新接口单元负责对引擎内核动态功能数据的实时计算和更新,使整个场景显示的效果更加逼真。
权利要求
1.一种三维游戏引擎内核结构,其特征在于包括有划分封装了三维引擎底层各子算法功能单元、实现三维游戏引擎底层渲染的引擎功能模块(1),以及作为引擎内核对外接口用于引擎功能模块(I)中各子算法功能单元与引擎外部接口进行通讯连接的自定义功能接口模块(2); 所述引擎功能模块(I)包括有通过对特定功能属性的参数值的设定或修改就能表现场景模型功能特征的静态功能模块(11),以及需要根据当前场景模型数据坐标进行实时更新计算才能逼真表现其功能特征的动态功能模块(12 ); 所述自定义功能接口模块(2)包括有用于在功能调用时负责传递静态功能模块(11)静态功能所对应的特定功能属性参数给引擎外部接口的功能属性接口单元(21 ),负责对引擎内核动态功能数据的实时计算和更新的动态功能更新接口单元(22),以及用于实现对引擎功能模块(I)的静态功能和动态功能进行统一调用管理的功能调用接口单元(23),所述功能调用接口单元(23)分别与功能属性接口单元(21)、动态功能更新接口单元(22)控制连接。
2.根据权利要求I所述的一种三维游戏引擎内核结构,其特征在于所述静态功能模块(11)包括有三维模型建模单元(111)、光源节点添加单元(112)、材质功能添加单元(113)、渲染功能添加单元(114)、粒子系统节点单元(115)。
3.根据权利要求I所述的一种三维游戏引擎内核结构,其特征在于所述动态功能模块(12)包括需要根据当前场景模型数据坐标进行实时更新计算才能逼真表现其功能特征的子算法功能单元有矩阵变换功能单元(121)、摄像机漫游单元(122)、拾取交互功能单元(123)、模型动画功能单元(124)、碰撞检测单元(125)。
全文摘要
本发明公开了一种三维游戏引擎内核结构,包括有划分封装了三维引擎底层各子算法功能单元、实现三维游戏引擎底层渲染的引擎功能模块,以及作为引擎内核对外接口用于引擎功能模块中各子算法功能单元与引擎外部接口进行通讯连接的自定义功能接口模块。本发明的目的是通过对引擎内核中子算法单元的静态与动态功能的划分,自定义出与引擎外部接口进行通讯的自定义功能接口模块,便于上层接口的功能调用,通过其上的功能调用接口单元进行统一的调用管理,功能属性接口单元或动态功能更新接口单元进行相应的功能调用运算,提高处理效率。
文档编号G06F9/44GK102880470SQ201210345770
公开日2013年1月16日 申请日期2012年9月18日 优先权日2012年9月18日
发明者刘福财, 任雁鹏 申请人:中山市世宇动漫科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1