一种RGBGameBuilder三维游戏开发工具的制作方法

文档序号:14332039阅读:1539来源:国知局

本发明涉及一种三维游戏开发工具,具体涉及一种rgbgamebuilder三维游戏开发工具,属于游戏开发领域。



背景技术:

目前,各种基于pc机平台的3d加速卡性能越来越高,使用这些廉价的3d加速卡开发模拟仿真的视景系统、逼真的三维游戏已经成为现实。但是到目前为止,3d应用开发人员的队伍还非常弱小。其原因在于两个方面:首先,三维图形的处理是一个庞大的、不断发展的专业知识体系,不经过专门的学习和训练很难成为一个合格的开发者;其次,缺乏通用的、廉价的开发工具。



技术实现要素:

本发明要解决的技术问题是提供一种rgbgamebuilder三维游戏开发工具,解决传统rgbgamebuilder产品的设计宗旨是采用三维图形、计算机软件的前沿技术,将三维图形复杂的知识框架和技术难点隐藏起来,提供一套方便、实用的开发工具,使用户不需要深入了解三维图形和软件开发的复杂技术就可以容易地开发自己的应用。

本发明采取的技术方案为一种rgbgamebuilder三维游戏开发工具,包括,交互建模工具和引擎,交互建模工具是windows平台下的一个场景创建、浏览和编辑工具,是在景物上引入了控制形状、行为的参数,用户通过编程可以实时控制这些参数,实现与三维数据库的交互作用,用户通过交互建模工具产生一个表达场景的三维数据库和参考信息文件;引擎是用户开发应用程序的支持工具,所述的引擎是三维数据库的实时显示,提供控制三维数据库中的各种参数api接口,封装图形、声音的实现平台。

三维图形工具软件尤其是实时引擎的开发是现代计算机三维图形技术和编程技巧的有机组合,具有相当的复杂性,由于处理速度的制约,很难给出一种支持所有应用的实时引擎。我们在模拟仿真和三维游戏领域里探索了很多年,rgbgamebuilder是我们经验和心血的结晶,它的推出正值3d加速卡大规模普及的时刻,我们期望它能给三维图形应用开发者们一双有力的翅膀,在虚拟世界里自由翱翔。

采用本发明的技术方案,可以解决传统rgbgamebuilder产品的设计宗旨是采用三维图形、计算机软件的前沿技术,将三维图形复杂的知识框架和技术难点隐藏起来,提供一套方便、实用的开发工具,使用户不需要深入了解三维图形和软件开发的复杂技术就可以容易地开发自己的应用。

具体实施方式

下面结合本发明详细说明本发明的优选实施例。

一种rgbgamebuilder三维游戏开发工具,包括,交互建模工具和引擎,交互建模工具是windows平台下的一个场景创建、浏览和编辑工具,是在景物上引入了控制形状、行为的参数,用户通过编程可以实时控制这些参数,实现与三维数据库的交互作用,用户通过交互建模工具产生一个表达场景的三维数据库和参考信息文件;引擎是用户开发应用程序的支持工具,所述的引擎是三维数据库的实时显示,提供控制三维数据库中的各种参数api接口,封装图形、声音的实现平台。

交互建模工具由元实体创作模块和实体(景物或物体)创作模块组成。元实体代表在场景可直接观察到的几何形状。交互建模工具采用标准的windows界面规范,简洁易用,用户非常容易掌握,同时对焦点、捕捉等进行了有效的智能处理,使用起来得心应手。

元实体建模工具主要用于创建点组、面、体等几何对象,使用三维变换操作几何对象,对面和体进行着色。点组是一组有序三维点集。可以通过折线形、圆

弧、bezier曲线、bspline曲线等工具创建。对点组可以进行顶点的移动、插入、删除操作,打开、封闭、切分点组操作,反转点组的方向、删除共线点及由点组

创建面等操作。面由一个封闭的点组构成的空间多边形描述。面的法向量方向(可见方向)根据点组顺序由右手法则决定。对面可以设置双面可见属性,可以指派一个颜色。对面的操作可以通过对点组的操作实现,此外面可以进行规范化、凸剖分和反转可见方向等操作。体为一组有序面的集合。可以通过长方体、球面、拉伸面、旋转面、连接面、曲面等工具创建。对一组面可以选择它的任意一个子集构成新的面组(体)进行独立操作。体之间可以进行联结和分离操作。在编辑过程中所有体之间自动产生bsp面,可以通过联结操作去掉bsp面。对一个体可以对它的面进行可见排序,可以进行人工bsp分割将其切分成两个体。可以对体指派颜色。元实体建模工具还提供了一些集成工具,如由文本直接生成平面和3d字,dxf文件读入和自动bsp处理。

实体编辑工具用于对已经制作好的元实体、实体进行组合,产生新的实体。在编辑过程中对被调用的实体进行几何变换,指派运动、材料、纹理、开关等

属性,对编辑后的实体预览。实体编辑界面由两个窗口组成,一个图形窗口用于图形交互操作和浏览,一个组织结构窗口用于编辑和浏览实体的树状组织结构。在图形编辑窗口中用户可以通过拖放、变换放置实体,设置显示环境和实体的各种显示方式,通过鼠标和键盘在实体中漫游。可以通过拖放方式制作运动路径并通过对话框设置各种属性。在图形编辑窗口还可以进行人工bsp操作。在组织结构窗口用户可以选择实体,插入、删除实体,通过拖放安排实体在树中的位置,设置实体属性等。在组织结构窗口中设置了多种模板,用户可以方便地设置分支、lod等结构。图形编辑窗口和组织结构窗口是紧密关联在一起的,通过二者的结合可以有效地完成实体的各种编辑操作。

引擎(engine)是三维游戏数据库的执行外壳。通过引擎的api接口程序用户可以存取三维游戏数据库的数据,透明地完成对三维游戏数据库的各种操作。为了使用户控制程序开发容易进行,引擎被设计成宿主程序,用户所要编写的只是一些事件响应函数,用户的控制程序等待引擎在事件发生时回调(callback)。采用这种机制,用户在源码级不必关心引擎的实现平台,例如,引擎在windows平台上实现,但用户不需要了解windows编程的专门知识,只要简单地利用引擎提供的api编写事件响应函数即可。

引擎内部是一个外部事件处理及三维数据库的操作和显示的循环。引擎启动时,首先调用用户的initlevel()函数,将控制权交给用户控制程序。initlevel()函数相当于用户的主函数,用户控制程序必须实现这个函数。在initlevel()函数中,用户通过引擎提供的api完成数据库加载、显示环境设定、操作设置、定义各种事件响应的回调函数等。引擎的主循环体主要是完成数据库的操作和显

示处理。在此之前要先进行帧前处理即处理外部事件并允许用户进行帧初始化及对整个进程进行控制。外部事件是指操纵杆、键盘、鼠标中断等的输入。如果外部事件引擎不能处理,则根据用户是否设置了外部事件回调函数,定是否将事件传递给用户控制程序处理。用户可以通过处理外部事件完成自己的交互操作过程。帧初始化主要是用户对显示环境及目标驱动的控制。进行控制允许用户结束和重新加载新的数据库。在执行三维数据库的操作和显示处理时,当各种操作和传感器(时间、距离、接触等)产生事件时,如果用户对该事件设置了回调函数,则将事件传递给用户控制程序处理。

引擎提供的api可以分为以下几类:数据库的加载和初始化、回调函数设置、显示环境设定、操作设置、数据库参数控制、用户界面显示支持以及交互设备和声音的支持。三维数据库的加载和初始化是将三维游戏数据库加载到内存,在加载过程中对三维数据库进行扩展,产生各种信息表、便于快速处理的操作和显示的数据集。引擎api接口setcallback(name,type,callback,data)用于设置回调函数。其中name为对象名,type为响应的事件类型,callback是用户程序对该对象相应事件的响应函数,data为用户处理该对象的事件时附加的数据区指针。当与该对象连接的事件发生时,引擎回调voidcallback(handle

handle,dword&data)函数,其中handle为对象标识,data为用户数据区指针。用户控制该对象时,将handle作为参数调用相应的参数控制api。对于习惯面向对象编程的用户,引擎也提供了一套以虚函数机制实现的事件响应机制,用户只要具体实现对象事件处理虚函数即可。虚函数机制可以免去设置回调函数过程。

显示环境设定api主要提供对视窗、显示层、视点、光源等的控制。用户在initlevel()函数中可以设置初始的视窗、显示层、视点、光源,另外在主循环的操作和显示处理前调用setviewportcallback函数,用户通过编写这个函数实现每帧对显示环境的控制。操作设置api用于定义和使用引擎提供的各种复杂操作,如碰撞检测、地形匹配、雷达、导弹寻地、目标智能等。这些操作由引擎内部特殊处理和结构支持,可以快速执行,同时减少用户程序开发的复杂性。数据库参数控制api是用户存取三维数据库中各种控制参数的接口。用户的事件响应函数一般都是通过组合各种参数控制api实现的。用户界面显示支持api提供一组用户向界面上输出图象和文字的接口。交互设备支持api便于用户实现界面的交互。声音支持api实现了3d声音、背景声等,使得声音的实现平台对用户透明。

三维图形工具软件尤其是实时引擎的开发是现代计算机三维图形技术和编程技巧的有机组合,具有相当的复杂性,由于处理速度的制约,很难给出一种支持所有应用的实时引擎。我们在模拟仿真和三维游戏领域里探索了很多年,rgbgamebuilder是我们经验和心血的结晶,它的推出正值3d加速卡大规模普及的时刻,我们期望它能给三维图形应用开发者们一双有力的翅膀,在虚拟世界里自由翱翔。

采用本发明的技术方案,可以解决传统rgbgamebuilder产品的设计宗旨是采用三维图形、计算机软件的前沿技术,将三维图形复杂的知识框架和技术难点隐藏起来,提供一套方便、实用的开发工具,使用户不需要深入了解三维图形和软件开发的复杂技术就可以容易地开发自己的应用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1