系统,平台支持系统。对于数学系统主要提供在渲染过程中需要用到的数学,和线性代数。例如向量,矩阵等。核心系统是整个结构的核心,消息处理,当前帧的渲染都在核心系统中,它负责调节,调用和维护其他的子系统。平台支持,主要考虑到可能的夸平台原因而抽象出来的层,为将来使用。从比较低的级别上来看,图形引擎负责描绘对观察者可见的物体。典型的就是使用图形,例如来进行渲染,描画相应的物体。从比较高的级别上来看,引擎主要是封装了些固定的算法,对场景的组织和对底层的隔离,让使用此框架进行应用开的开发人员不必考虑底层的细节问题。本系统在平台上使用进行开发。关键词引擎结构场景组织四叉树动态细节度控制辽宁科技大学毕业设计论文第页辽宁科技大学毕业设计论文第页摘要第章绪论选题背景及目的课题研究的内容第章概要设计系统整体结构描述各个子模块描述数学子系统平台支持引擎核心第章类之间的继承和调用关系主要类之间的继承关系主要调用关系描述第章详细设计数学子系统向量矩阵四元数引擎核心场景的组织不可见剔除主渲染循环主更新循环平台依赖窗口的创建辽宁科技大学毕业设计论文第页消息处理器消息映射机制的实现第章系统测试软件测试基础理论软件测试定义软件测试基本概念软件测试目的软件测试方法分类静态测试与动态测试本系统的测试结论致谢参考文献附录附录辽宁科技大学毕业设计论文第页第章绪论选题背景及目的在上世纪年代以前,电子游戏和图形程序的制作业还没有引擎这概念,所有厂商在制作游戏和图形程序的时候都是以小组团队甚至是个人形势来制作图形程序,通过用各种编程语言来编写程序。相对于使用引擎来制作图形程序,这种方式较为复杂跟繁琐,需要图形程序创作者花费很多时间。但至今仍有许多业余的图形程序开发者或者部分游戏厂商在使用这种非引擎制作方式来设计制作图形程序。制作者可以利用,或者其他语言的环境下通过或者的接口形式来表现图形程序。由于在实际开放中的对时间的要求,以及时间对开发成本的影响越来越需要程序能够拥有最大的复用性,和通用性。复用性表现在,当需要开发类似功能的相关产品时,能够沿用以前的开发成果,或部分,或全部。这需要程序有良好的结构。通用性表现在,算法或程序应该不完全依赖于个特定的数据类型或结构,中的就是个例子,它把算法和数据类型进行了脱离,。提高了通用性。引擎是对图形图像编程中些固定算法和结构的汇总,它好比个大型的库,让图形图像程序的开发人员能够把更多的经历放在如何去表现图形上,而不必去考虑些数据组织和算法的问题。这样可以大大节省了开发的时间周期,提高开发的效率。课题研究的内容首先给出百科上对于引擎的定义引擎是电子游戏或者其他交互式实时图像应用程序的核心软件组件,它提供游戏运行的底层技术,简化了图形程序的开发过程,支持多种硬件平台和操作系统,包括游戏主机和运行或的桌面系统。它主要包含以下功能模块二维或三维渲染引擎即渲染器物理引擎碰撞检测碰撞响应声音脚本动画人工智能网络流辽宁科技大学毕业设计论文第页内存管理线程以及场景组织。引擎代表了所有图形程序的技术。因此引擎可以重复使用,从而制作出不同的图形程序。图形程序与引擎的关系就像辆汽车和它的发动机,没有发动机,汽车自然动不了,但我们可以把发动机卸下来放到另个新的车体内,就变成了另辆车。简单说,引擎就是种工具软件,性质和样,只不过我们用来写文章,用引擎来开发图形程序。辽宁科技大学毕业设计论文第页第章概要设计系统整体结构描述系统主要分为三个模块,引擎核心依赖于其他两相互的模块。模块之间的依赖关系多少,直接决定了以后直接复用的可能,模块的功能要尽量的单化,这里的数学子模块,和平台支持子模块是不依赖于引擎核的,在将来可能的需要中可以直接抽出单独的使用。图是系统整体结构图。图系统整体结构图系统核心,是整个引擎的核心所在,整个消息的处理和场景的渲染都在这个模块中,所以相对其他两个模块来说他也是比较复杂的,他要负责管理其他两个模块的创建和销毁。数学子模块,主要是实现些在图形渲染中要用到的向量,矩阵,以及他们之间的运算,例如向量之间的点积叉乘矩阵和向量的积矩阵的逆等。对于程序数学子模块是必不可少的,因为整个系统都是建立在数学模型之上的,当然数学系统的好坏对整个系统据有很大的影响。平台支持,主要是对不同平台提供的类似或相同的服务抽象层统的接口,因为你不可能要求和的系统有相同的名字或参数。有了这层引擎的核心结构就能保持固定,不至于在支持新平台的时候重新修改整个引擎的相关函数。各个子模块描述各个子模块在系统中相对,并且拥有自己的功能。辽宁科技大学毕业设计论文第页数学子系统数学子系统主要实现包括如下类,他们之间没有任何继承关系,只是为了表达数学符号,和特定的数学运算。他们依次分别表示二元向量或二维坐标,三元向量,四元向量,二阶矩阵,三阶矩阵,四阶矩阵,颜色,平面,保存四元数,几乎每个数学类都重载了操作,以便调试程序,检查是否正确,每个成员函数都使用修饰,以减少在调用他们时对栈的使用。因为他们是工作在最底层的,几乎每次变换都离不开调用数学库中的相关函数,使用也会整加目标应用程序的大小。二元向量或二位坐标,主要是用在纹理坐标的表示上,他重载了运算符,以及数组访问,方便调用者使用。三元向量或三维坐标,它是系统中使用最频繁的,主要用来表示系统中的点或是法线,相应的也重在了很多数学运算操作,比较重要的几个函数是单位化,点乘和叉乘。四元向量,它有个特殊的分量,在为时表示的是向量,在为时表示的是点,这主要是它对四阶矩阵右乘时表现出来的线性特性。矩阵是引擎中最重要的个数学符号,所有的坐标变换都是基于矩阵进行的。二阶矩阵,在引擎中还是比较少的用到它,但是在只有屏幕坐标二维,时会使用它。三阶矩阵,使用最频繁的矩阵,坐标变换中的旋转和缩放都要使用到它。这里重载了些常规的运算符操作,以及转置,求逆矩阵和伴随矩阵等数学运算。最重要是对旋转的支持,以及从旋转矩阵中如果是提取出相应的轴向量和旋转角度逆时针为正,为了方便是使用还提供了欧拉角旋转大于度是会有问题。四阶矩阵,主要是为了对应中使用的矩阵。颜色,图形图像中少不了的元素,封装了些简单的缩放和截取操作。平面,使用方程来表示个平面,在这个类中的主要作用是在错裁剪时可以用来判断个物体是否在可是的范围之内。辽宁科技大学毕业设计论文第页四元数表示个四元的量,它与不同,他表示的是复数的坐标,在它被单位化以后可以表示个轴和绕这个轴旋转的角度,因为他在很多方面比较优秀所以常常代替矩阵来表示旋转,常在骨骼动画中进行插值使用,所以他封装了些插值接口。数学子模块中各个类的结构单,没有任何依赖的关系,他们只是对特定的数学运算和数学符号的抽象。平台支持平台依赖主要功能是实现对各个平台的支持,隔离平台之间的差异,使他的上层引擎核心能够得到统的结构,而不必去考虑这些差异。主要类如下这个模块中还有其他很多类,但最主要的是个类。是对在接口的封装,同理也可以对进行封装。这个类继承自引擎核心的,是对的实现。是对系统平台的抽象,向上提供支持和系统服务并且统接口,例如创建窗口,消息处理等等。是个消息处理类,抽象他的主要原因是,用户可能需要自己拦截和处理些特定的消息,当然它是所有特定平台消息处理器的基类,就是平台的实现,他实现的是在平台上消息的提取和分发处理。最主要的是这里的消息映射机制,通过模仿的消息映射宏产生个消息映射链,以使得继承自这个类的所有子类可以对消息进行处理,并且可以把些不关心的消息交给父类去处理。引擎核心引擎核心模块是整个引擎的核心所在,从职责上来看,个图形引擎就是要把给定的数据以特定的方法描画出来,这些主要数据包括,图形数据点,和纹理和空间数据在何处描画。为了提高渲染的效率,我们首先应该对数据进行良好的组织,其辽宁科技大学毕业设计论文第页次是分离出描绘部分,因为描绘的方法是变化的我们应该把具有相同描绘方法的归在起,以提高渲染的效率。主要类如下,是对空间位置的抽象,是那些需要空间位置的类的基类。是特定图形结构的基类,对引擎核提统的接口,隔离不同图形的差异。是场景组织树,使用他来组织场景。四叉树,场景组织树的另种,使用它来组织场景。全局状态,他将影响到物体的描画。镜头类,好比在拍电影中是用到的摄像机。渲染目标,是渲染结果的接受者,好比胶片。图形类,是被渲染的物体的数据集合所在,他包括点,法线,纹理坐标,应用在此图形上的灯光,特效描绘方法。描绘方法,在渲染个物体是,我们不能保证所有的物体都使用同样的方法去描绘,有的可能需要多个纹理,有的可能需要多个通道。最好的办法就是对变化的事物进行封装。引擎的核心,他负责整个引擎的初始化和逆初始化,系统通过他为用户提供服务。辽宁科技大学毕业设计论文第页第章类之间的继承和调用关系主要类之间的继承关系是个抽象类,他提供了套更新函数接口,和表示位置信息的成员变量,还有个指向父结点的指针,所有需要这些特性的类都应继承自它。图和是类之间的继承关系图。图引擎核心继承关系图图平台支持继承关系图主要调用关系描述首先系统启动,进入或函数,在或中实例化个应用程序类,在这个类中首先会初始化场景,并对引擎的状态进行设置,在这里用户可以创建自己的场景,设置渲染状态。
1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。