基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx

上传人:b****4 文档编号:17832540 上传时间:2022-12-11 格式:DOCX 页数:70 大小:2.47MB
下载 相关 举报
基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx_第1页
第1页 / 共70页
基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx_第2页
第2页 / 共70页
基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx_第3页
第3页 / 共70页
基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx_第4页
第4页 / 共70页
基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx

《基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx(70页珍藏版)》请在冰豆网上搜索。

基于ogre的三维场景渲染本科学位论文Word文档下载推荐.docx

AbstractII

第一章绪论1

1.1课题研究的背景及意义1

1.2国内外研究现状及发展趋势2

1.3论文主要研究方案3

1.4论文主要结构4

第二章3D渲染引擎简介5

2.13D渲染简介5

2.1.1OpenGL简介7

2.1.2DirectX简介9

2.23D建模简介10

2.2.13DsMax简介11

2.2.2Maya简介12

2.2.3Maya与3DsMax的差异区别13

2.33D引擎简介14

第三章Ogre渲染引擎16

3.1Ogre引擎16

3.1.1Ogre简介16

3.1.2Ogre的渲染流程17

3.2Ogre的场景管理19

3.2.1Ogre场景图系统20

3.2.2Ogre场景管理器21

3.2.3Ogre材质简介22

3.3Ogre引擎的装配22

第四章系统设计25

4.1绪论25

4.2整体架构25

4.3天空模块26

4.4地面模块26

4.5光线模块27

4.6模型导入28

第五章3D场景渲染的实现29

5.1绪论29

5.2天空模块29

5.3地面模块30

5.3.1地面构建30

5.3.2草地构建31

5.3.3动态效果34

5.4光线模块35

5.5模型导入36

5.6测试运行38

5.6.1准备工作38

5.6.2运行38

第六章总结与展望41

6.1总结41

6.2展望41

致谢42

参考文献43

第一章绪论

1.1课题研究的背景及意义

本论文是对三维渲染引擎编辑系统的研究,所谓渲染,就是将计算机中的三维数据展现在二维的画面上,比如显示器。

渲染引擎的作用就是要优化遍历和展示三维模型,三维渲染引擎编辑系统是渲染引擎的辅助工具,它能够实现对三维模型、三维场景等三维数据的编辑,并能够将编辑后的数据保存以便供基于该款渲染引擎的三维应用程序所使用。

如果没有渲染引擎编辑系统,那么所有的三维数据都要通过代码实现,这不仅对开发人员水平有很高的要求,而且效率也很低下。

而有了编辑系统作为辅助开发工具,不仅可以降低开发成本,也可以提高工作效率,而且由于编辑系统提供的是可视化编辑,制作出来的场景将更漂亮而且效果更真实。

随着计算机硬件技术的不断进步发展,渲染技术的发展完善,三维虚拟现实技术不断快速,已经从早期的纸上理论中彻底解放走出,开始广泛地应用于到各行各业之中,并开始创出造巨大的经济效益。

因此,三维虚拟现实技术也开始越来越受到开发者们的关注[1]。

目前,通过上层高度抽象封装调用底层驱动API,组织资源,并对I/O,UI进行完善的响应,并基于GPU运算产生实时场景的3D程序,正成为其中一个热门的开发方向[2]。

其中,3D游戏开发正是这一方面应用的典型代表。

随着计算机和网络的不断普及,从不断节节攀升的市场规模可以看出网络游戏正越来越成为人们的一种日常休闲娱乐方式。

3D游戏是当前游戏的主流,其核心技术是3D图形的渲染。

一般说来,从事3D游戏开发不外乎两种方法,一种是利用已有的具有世界项级水平的3D引擎进行开发;

另一种是自行开发3D引擎。

前者因为容易上手,成为大多数游戏人的选择;

后者则对图形渲染算法有很高的要求。

由于国内研究3D图形渲染起步较晚,以至于到现在还没有一款高质量的渲染引擎供国内的游戏行业使用。

国内的绝大部分有影响力的游戏公司都是购买国外的高价引擎后再进行游戏开发,这样有三个弊端:

第一:

成本昂贵,价格是大多数中小型游戏丌发商无法承受之重;

第二:

国外厂商对国内市场重视程度不够,很难保证良好的售后服务;

第三:

人员的沟通不便,出现技术问题不能得到及时的解决。

OGRE渲染引擎是国外的开源渲染引擎,它在三维渲染方面表现出了良好的性能和渲染效果,还有庞大的社团长期支持着渲染引擎的升级更新。

由于该渲染引擎是开源的并且又具备良好的性能,所以越来越多的国人也开始研究这款渲染引擎。

在不久的将来,就会有国内的游戏公司利用OGRE开发出高质量的游戏。

本课题是在研究国外开源渲染引擎OGRE的基础上开发渲染引擎编辑系统,本编辑系统充分利用了国外开源的OGRE第三方插件库,目的是最大限度的增强三维场景编辑效果和渲染效果[2]。

1.2国内外研究现状及发展趋势

在国外,开始研究三维图形渲染的时间比较早,而三维图形编辑的历史也比较悠久,三维图形编辑软件中最成功的莫过于3DsMax了。

3DsMax是美国Autodesk公司的电脑三维模型制作和渲染软件,3DsMax9.0是其具有显著提高的最新版本。

将广泛应用于视觉效果,角3色动画及下一代的游戏开发领域。

至今3dsmax获得过65个以上的业界奖项,而3dsmax9将继承以往的成绩并加入新的角色动画IK体系,为下一代游戏设计提供交互图形界面。

同时3dsmax9提供了与高级渲染器的连接,比如Mentalray和Renderman,来产生更好渲染效果如全景照亮,聚焦及分布式渲染[3]。

国内图形研发一直落后于国外;

3D引擎更由于研发时间长、投入高、风险大而致使很少公司问津。

相对于国外数十年的游戏引擎发展史,国内仍处于落后阶段。

2000年初,中国网络游戏市场丌始发展起来,国内3D游戏引擎的研究也由之开始迅速发展起来。

比如目标软件的GFX3D引擎,盛大的3D引擎,网易的“风魂”引擎,锦天科技的AURORA引擎,可乐吧的FancyBox等,还有一些游戏工作组的3D引擎,比如Origo系列等等¨

’。

虽然在国内的3D引擎上己经可以开发相关的游戏或应用,但也仅仅是针对某一个或某一类型的游戏,要真正达到引擎的通用性和可扩展性,还需要很长的路要走。

目前国内网络游戏虽然有着巨大的需求,但国人自主知识产权的3D引擎却很少;

因此研发国人自主知识产权的引擎是大势所趋。

各大游戏公司也加大了自主研发的力度;

同时国家863项目也明确将自主知识产权通用游戏引擎的研发列入其中,这都将大大推动我国3D引擎开发的发展。

我国当前仍处于相对落后的位置,起步晚,技术力量上的薄弱,国内的渲染引擎厂商正面临着自主研发上的窘境,一方面3D游戏市场热火朝天,但真正属于国人的游戏却少之又少,国内玩家普遍倾向于日韩欧美的游戏。

有关国家部门也对此相当地关注,通过政策,资金,教育甚至863计划来大力扶植国内三维渲染技术力量的发展。

1.3论文主要研究方案

本项目主要以目前最流行的MicrosoftVisualStudio2010为开发环境,Ogre为主要渲染引擎。

通过对场景的设计,天空、地面、景物的构建,Ogre引擎的渲染操作获得场景的呈现。

初步计划构建一个飘动白云的天空、有摇曳草地的地面与放置在场景中间的绿色吉普车的场景。

有一个可以随鼠标移动的视角,可通过键盘上的W、A、S、D四个键来控制位置。

天空的白云与绿色的地表通过贴图平铺实现,地表小草通过代码随机排列,吉普车是通过贴图立体组成的mesh文件。

由于地表场景小草较多,需要较高显示硬件配置。

1.4论文主要结构

三维渲染引擎编辑系统是3D游戏、虚拟现实、计算机动画、计算机图形学中的一个重要研究内容,也是该领域内的研究热点和难点。

三维渲染引擎编辑系统主要包括三维场景的构建和三维场景的编辑以及场景文件的载入和保存。

论文的主要结构也源于以上思想结构:

第一章主要介绍了国内外渲染引擎以及渲染引擎编辑系统的发展现状。

出了本文的研究的背景与意义、国内外研究的发展现状,以及本论文的主要的研究内容。

第二章主要了解了3D渲染引擎的基本概念,以及部分渲染工具的简介。

第三章介绍渲染引擎简介,介绍了渲染引擎的特性、框架结构以及Ogre引擎的简介、渲染流程与管理以及Ogre引擎的安装与配置。

第四章讲述渲染引擎编辑系统的总体设计和设计过程。

第五章详细讲述了渲染引擎编辑系统的实现过程。

论文最后总结了整个研究和学习过程,同时对今后的工作和研究进行了展望。

第二章3D渲染引擎简介

2.13D渲染简介

渲染(Render)在电脑绘图中,是指:

用软件从模型生成图像的过程。

模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。

图像是数字图像或者位图图像。

渲染这个术语类似于“艺术家对于场景的渲染”[3]。

另外渲染也用于描述:

计算视频编辑文件中的效果,以生成最终视频输出的过程。

渲染是三维计算机图形学中的最重要的研究课题之一,并且在实践领域它与其它技术密切相关。

在图形流水线中,渲染是最后一项重要步骤,通过它得到模型与动画最终显示效果。

自从二十世纪七十年代以来,随着计算机图形的不断复杂化,渲染也越来越成为一项重要的技术。

渲染的应用领域有:

计算机与视频游戏、模拟、电影或者电视特效以及可视化设计,每一种应用都是特性与技术的综合考虑。

作为产品来看,现在已经有各种不同的渲染工具产品,有些集成到更大的建模或者动画包中,有些是独立产品,有些是开放源代码的产品。

从内部来看,渲染工具都是根据各种学科理论,经过仔细设计的程序,其中有:

光学、视觉感知、数学以及软件开发。

三维计算机图形的预渲染或者实时渲染的速度都非常慢。

预渲染的计算强度很大,通常是用于电影制作;

实时渲染经常用于三维视频游戏,通常依靠带有三维硬件加速器的图形卡完成这个过程。

渲染的图像有许多显著的特性,渲染研究的领域,也主要集中在寻找:

高效模拟这些特性的方法。

有些特性只与特定的算法有关,有些却与多个算法相关。

•浓淡处理—表面颜色与亮度随光照的变化

•纹理映射—在表面生成细节的方法

•凸凹纹理映射—在表面模拟小凸凹的方法

•距离模糊—光照穿过不清澈的大气时的模糊

•阴影—阻挡光照的效果

•柔和阴影—模拟光的衍射下的阴影

•反射—镜子或者非常光滑的反射

•透明—固体明显允许光线穿过

•半透明—光线通过固体高度散射

•折射—与透明相关的光线弯曲

•间接照明—表面由其它表面反射的光照亮,而非光源直接照亮

•焦散(caustics)—间接照明的一种形式,光滑物体反射的光线或者通过透明物体生成的聚焦光线在其它物体上形成照亮区域

•景深—当物体在焦距物体前后太远时出现模糊

•运动模糊—由于物体高速运动或者照相机运动而导致的物体模糊

•真实感渲染—看起来较像现实世界的三维渲染

研究人员已经研究出了许多渲染算法,渲染软件可以使用多种不同的技术,以生成最终图像。

对场景中的每束光线进行跟踪不太现实,并且需要耗费大得惊人的时间。

如果没有采样进行很好的约束,即使是一部分光线的跟踪以生成图像也需要非常大量的时间。

所以,大致可以分为四类的更加高效的光线传输模型技术就应运而生。

第一类是栅格化,包括扫描线渲染,这种方法考虑场景中的物体并将它们投影一幅图像,但是缺乏一些高级的视觉效果;

第二类是光线投射,将场景从不同视角观察,只根据几何与反射强度的基本光学原理计算观察到的图像,也可能使用蒙特•卡罗方法减少人为噪声;

第三类是辐射着色,使用有限元分析方法模拟光线在表面的散射;

第四类是光线跟踪,类似于光线投射,但是使用了更加先进的光学模拟方法,并且通常使用蒙特•卡罗方法以实现更加真实的结果,但是这样做的代价通常是速度的大幅度降低。

大多数高级软件使用多种技术的组合,以在合理的开销范围内,实现足够好的结果[7]。

图2-1渲染系统实现

一个典型的三维渲染程序包括渲染系统和外部应用模块。

其中渲染系统又包括渲染引擎,设备管理模块和虚拟设备(Directx、OpenGL)。

2.1.1OpenGL简介

OpenGL(全写OpenGraphicsLibrary)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。

OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。

其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。

OpenGL™是独立于视窗操作系统或其它操作系统的,亦是网络透明的。

在包含CAD、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,OpenGL™帮助程序员实现在PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。

 

图2-2Windows图形OpenGL服务

OpenGL的前身是SGI公司为其图形工作站开发的IRISGL。

IRISGL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRISGL的基础上开发了OpenGL。

OpenGL的英文全称是“OpenGraphicsLibrary”,顾名思义,OpenGL便是“开放的图形程序接口”。

虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。

  OpenGL是个与硬件无关的软件接口,可以在不同的平台如Windows95、WindowsNT、Unix、Linux、MacOS、OS/2之间进行移植。

因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。

由于OpenGL是图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。

但是,通过一些转换程序,可以很方便地将AutoCAD、3DS/3DSMAX等3D图形设计软件制作的DXF和3DS模型文件转换成OpenGL的顶点数组。

  在OpenGL的基础上还有OpenInventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应用。

其中,OpenInventor应用最为广泛。

该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。

  OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。

1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了WindowsNT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。

1995年OpenGL的1.1版本面市,该版本比1.0的性能有许多提高,并加入了一些新的功能。

其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。

OpenGL1.5又新增了“OpenGLShadingLanguage”,该语言是“OpenGL2.0”的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能。

  OpenGL2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3DLabs。

2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点与像素及内存管理上与DirectX共同合作以维持均势。

OpenGL2.0将由OpenGL1.3的现有功能加上与之完全兼容的新功能所组成(如图一)。

借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。

此外硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令。

OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;

OpenGL可以与VisualC++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;

OpenGL使用简便,效率高。

它具有七大功能:

  1.建模:

OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面绘制函数。

  2.变换:

OpenGL图形库的变换包括基本变换和投影变换。

基本变换有平移、旋转、变比镜像四种变换,投影变换有平行投影(又称正射投影)和透视投影两种变换。

其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。

  3.颜色模式设置:

OpenGL颜色模式有两种,即RGBA模式和颜色索引(ColorIndex)。

  4.光照和材质设置:

OpenGL光有辐射光(EmittedLight)、环境光(AmbientLight)、漫反射光(DiffuseLight)和镜面光(SpecularLight)。

材质是用光反射率来表示。

场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。

  5:

纹理映射(TextureMapping)。

利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。

  6:

位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图象效果处理。

以上三条可使被仿真物更具真实感,增强图形显示的效果。

  7:

双缓存动画(DoubleBuffering)双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。

  此外,利用OpenGL还能实现深度暗示(DepthCue)、运动模糊(MotionBlur)等特殊效果。

从而实现了消隐算法。

OpenGL设备运用,目前瑞芯微2918芯片和英伟达芯片Tegra2就是采用OpenGL2.0技术进行图形处理,而基于瑞芯微2918芯片方案代表是台电T760和微蜂X7平板电脑所采用到[8]。

2.1.2DirectX简介

  DirectX,(DirecteXtension,简称DX)是由微软公司创建的多媒体编程接口。

由C++编程语言实现,遵循COM。

被广泛使用于MicrosoftWindows、MicrosoftXbox和MicrosoftXbox360电子游戏开发,并且只能支持这些平台[2]。

最新版本为DirectX11,创建在最新的Windows7上。

DirectX加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。

从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上我们就可以看出DirectX的出现就是为了为众多软件提供直接服务的。

  举个例子,骨灰级玩家以前在DOS下玩游戏时,可不像我们现在,安装上就可以玩了,他们往往首先要先设置声卡的品牌和型号,然后还要设置IRQ(中断)、I/O(输入与输出)、DMA(存取模式),如果哪项设置的不对,那么游戏声音就发不出来。

这部分的设置不仅让玩家伤透脑筋,而且对游戏开发者来说就更头痛了,因为为了让游戏能够在众多电脑中正确运行,开发者必须在游戏制作之初,便需要把市面上所有声卡硬件数据都收集过来,然后根据不同的API(应用编程接口)来写不同的驱动程序,这对于游戏制作公司来说,是很难完成的,所以说在当时多媒体游戏很少。

微软正是看到了这个问题,为众厂家推出了一个共同的应用程序接口——DirectX,只要这个游戏是依照Directx来开发的,不管你是什么显卡、声卡、统统都能玩,而且还能发挥更佳的效果。

当然,前提是你的显卡、声卡的驱动程序也必须支持DirectX才行。

DirectX是由很多API组成的,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。

显示部分

  显示部分担任图形处理的关键,分为DirectDraw(DDraw)和Direct3D(D3D),前者主要负责2D图像加速。

它包括很多方面:

我们播放mpg、DVD电影、看图、玩小游戏等等都是用的DDraw,你可以把它理解成所有划线的部分都是用的DDraw。

后者则主要负责3D效果的显示,比如CS中的场景和人物、FIFA中的人物等等,都是使用了DirectX的Direct3D。

声音部分:

  声音部分中最主要的API是DirectSound,除了播放声音和处理混音之外,还加强了3d音效,并提供了录音功能。

我们前面所举的声卡兼容的例子,就是利用了DirectSound来解决的。

输入部分:

  输入部分DirectInput可以支持很多的游戏输入设备,它能够让这些设备充分发挥最佳状态和全部功能。

除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。

网络部分:

  网络部分DirectPlay主要就是为了具有网络功能游戏而开发的,提供了多种连接方式,TCP/IP,IPX,Modem,串口等等,让玩家可以用各种连网方式来进行对战,此外也提供网络对话功能及保密措施[9]。

2.23D建模简介

3D建模通俗来讲就是通过三维制作软件通过虚拟三维空间构建出具有三维数据的模型。

D建模大概

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1