简单的三维场景制作.docx

上传人:b****8 文档编号:8909267 上传时间:2023-05-16 格式:DOCX 页数:67 大小:732.19KB
下载 相关 举报
简单的三维场景制作.docx_第1页
第1页 / 共67页
简单的三维场景制作.docx_第2页
第2页 / 共67页
简单的三维场景制作.docx_第3页
第3页 / 共67页
简单的三维场景制作.docx_第4页
第4页 / 共67页
简单的三维场景制作.docx_第5页
第5页 / 共67页
简单的三维场景制作.docx_第6页
第6页 / 共67页
简单的三维场景制作.docx_第7页
第7页 / 共67页
简单的三维场景制作.docx_第8页
第8页 / 共67页
简单的三维场景制作.docx_第9页
第9页 / 共67页
简单的三维场景制作.docx_第10页
第10页 / 共67页
简单的三维场景制作.docx_第11页
第11页 / 共67页
简单的三维场景制作.docx_第12页
第12页 / 共67页
简单的三维场景制作.docx_第13页
第13页 / 共67页
简单的三维场景制作.docx_第14页
第14页 / 共67页
简单的三维场景制作.docx_第15页
第15页 / 共67页
简单的三维场景制作.docx_第16页
第16页 / 共67页
简单的三维场景制作.docx_第17页
第17页 / 共67页
简单的三维场景制作.docx_第18页
第18页 / 共67页
简单的三维场景制作.docx_第19页
第19页 / 共67页
简单的三维场景制作.docx_第20页
第20页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

简单的三维场景制作.docx

《简单的三维场景制作.docx》由会员分享,可在线阅读,更多相关《简单的三维场景制作.docx(67页珍藏版)》请在冰点文库上搜索。

简单的三维场景制作.docx

简单的三维场景制作

简单的三维场景制作

 

摘要:

随着计算机图形学应用研究不断深入,以及应用不断扩大,虚拟场景的渲染技术在应用当中占有相当重要的位置。

虚拟场景渲染主要目的是真实地显示三维(3D)环境,并且允许与人们在其中进行漫游观察。

如何渲染一个逼真的虚拟场景,是现在图形学领域的一个重要研究方向,OpenGL提供的强大图象处理功能,让虚拟场景的渲染工作变得更加方便、灵活,渲染效果更加逼真。

本文尝试使用最简单又高效的算法,并力求渲染效果的仿真性达到应用的需要。

最终本文在地域生成渲染方面得到相对简单高效又效果逼真的渲染方法,并基于这些算法以及OpenGL提供的强大功能,开发了一个逼真的室外场景,并在这个虚拟场景中进行漫游观察。

关键词:

图形学虚拟场景OpenGL

Abstract:

Withtheapplicationofcomputergraphicsdeeperstudy,andcontinuouslyexpandtheapplication,thetechnologyofVirtualSceneRenderingoccupiesaveryimportantpositionintheapplications.ThemainpurposeofVirtualscenerenderingistodemonstratethetruethree-dimensional(3D)environment,andallowusertoroamforobservation.Exaggerationofarealisticvirtualenvironmentisanimportantresearchdirectioningraphicsfield;OpenGLprovidesapowerfulgraphicprocessingfunctionforvirtualscenerenderingworkhasbecomemoreconvenient,flsxible,andsimulationeffectsmorerealistic.

Weattempttousethemostsimpleandefficientalgorithm,andsoughttoexaggeratetheeffectofsimulationstoachieveapplicationneeds.Finally,thispaperfoudarelativelysimpleandefficientresultsalsorealisticrenderingmethodofTerrainGeneration.Basedonthesealgorithms,andthepowerfulfunctionsOpenGLprovided,wedevelopedasystemwhichshowsrealisticoutdoorscenes.Andusercangointhevirtualscenetotoamforobservation.

Keywords:

ComputerGraphics,VirtualScene,OpenGL(OpenGraphicLibrary)

 

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

指导教师评阅书

指导教师评价:

一、撰写(设计)过程

1、学生在论文(设计)过程中的治学态度、工作精神

□优□良□中□及格□不及格

2、学生掌握专业知识、技能的扎实程度

□优□良□中□及格□不及格

3、学生综合运用所学知识和专业技能分析和解决问题的能力

□优□良□中□及格□不及格

4、研究方法的科学性;技术线路的可行性;设计方案的合理性

□优□良□中□及格□不及格

5、完成毕业论文(设计)期间的出勤情况

□优□良□中□及格□不及格

二、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规范?

□优□良□中□及格□不及格

2、是否完成指定的论文(设计)任务(包括装订及附件)?

□优□良□中□及格□不及格

三、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□及格□不及格

2、论文的观念是否有新意?

设计是否有创意?

□优□良□中□及格□不及格

3、论文(设计说明书)所体现的整体水平

□优□良□中□及格□不及格

建议成绩:

□优□良□中□及格□不及格

(在所选等级前的□内画“√”)

指导教师:

(签名)单位:

(盖章)

年月日

评阅教师评阅书

评阅教师评价:

一、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规范?

□优□良□中□及格□不及格

2、是否完成指定的论文(设计)任务(包括装订及附件)?

□优□良□中□及格□不及格

二、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□及格□不及格

2、论文的观念是否有新意?

设计是否有创意?

□优□良□中□及格□不及格

3、论文(设计说明书)所体现的整体水平

□优□良□中□及格□不及格

建议成绩:

□优□良□中□及格□不及格

(在所选等级前的□内画“√”)

评阅教师:

(签名)单位:

(盖章)

年月日

教研室(或答辩小组)及教学系意见

教研室(或答辩小组)评价:

一、答辩过程

1、毕业论文(设计)的基本要点和见解的叙述情况

□优□良□中□及格□不及格

2、对答辩问题的反应、理解、表达情况

□优□良□中□及格□不及格

3、学生答辩过程中的精神状态

□优□良□中□及格□不及格

二、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规范?

□优□良□中□及格□不及格

2、是否完成指定的论文(设计)任务(包括装订及附件)?

□优□良□中□及格□不及格

三、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□及格□不及格

2、论文的观念是否有新意?

设计是否有创意?

□优□良□中□及格□不及格

3、论文(设计说明书)所体现的整体水平

□优□良□中□及格□不及格

评定成绩:

□优□良□中□及格□不及格

(在所选等级前的□内画“√”)

教研室主任(或答辩小组组长):

(签名)

年月日

教学系意见:

系主任:

(签名)

年月日

前言:

随着计算机的不断地飞速发展,计算机应用已经深入渗透到人们日常生活的每一个角落。

计算机图形学作为计算机计算机科学与技术学科的一个重要分支已经经历了近40年的发展历程。

一方面作为一个学科,计算机图形学在图形算法,图形软件与图形硬件三方面取得了长足的进步,成为当代几乎所有科学和工程技术领域用来加强信息理解和传递的技术和工具。

另一方面,计算机图形学的硬件和软件本身已发展成为一个巨大的产业,1996年总产值达500亿美元,预计到2000年将达到1000亿美元。

因此,当前全世界从事计算机图形学研究、应用和产业的队伍十分庞大,这也是为什么每年参加SIG-GRAPH年会的人数多达3~4万人的理由。

越来越多的计算机应用都向着可视化的方向迈进。

计算机图形学主要是研究图形(图像)的计算机生成,其研究方向众多。

在图形基础研究方面可归纳为两个主要方向,即建模(modeling)技术(又称"造型技术")和绘制(rendering)技术。

建模技术又可分为两大分支,即计算机辅助几何设计和自然景物建模。

计算机辅助几何设计追求建模的精确度、可靠性和建模的速度;自然景物建模追求建模的逼真度和速度。

计算机图形学中的绘制技术是指基于光栅图形显示技术的"真实感图形"绘制技术,包括各种光照模型、明暗(shading)处理和纹理生成等内容。

绘制技术追求的是真实感(逼真度)和绘制速度。

综合上述两大研究方向的追求目标可以看出,计算机图形学研究水平的高低就是反映在"真实感"和"速度"的高低以及两者的结合上,也就是既要逼真地反映客观世界的对象,又能高速地、通常又称"实时"地绘制它们。

众所周知,"真实感"与"实时性"是一对尖锐的矛盾,如何解决这一矛盾是当代计算机图形学工作者奋斗的目标。

综观SIGGRAPH96的大会论文报告、专题讨论会内容及产品展览会,明显感到计算机图形学的主攻方向不再是孤立地追求图形的真实感和绘制的实时性,而是把重点转移到如何把两者结合在一起,即向更高的目标迈进。

操作系统,应用软件,计算机游戏由以前的非图形的到绚丽的图形界面,从二维的到三维的,无不见证计算机图形学的迅猛发展,以及它给人们带来的各种便利。

三维互动式场景建模更是计算机三维图形应用所必须解决的问题。

OpenGL是优秀且功能强大的图形库,利用OpenGL进行三维建模,从而能够实现各种仿真。

OpenGL作为一项开放性的标准、主攻专业图形应用和3D游戏开发的图形API,即便其发展处于目前的低潮状态,OpenGL仍然牢牢把持着专业绘图领域,而DirectX在此毫无竞争力,功能更强大的OpenGL2.0无疑将继续保持垄断性地位。

因此,研究OpenGL图形库的结构和实现原理,深入了解OpenGL的各种机制,有一定的商业价值。

1绪论

1.1课题的来源

随着计算机的普及,计算机图形已不再是稀罕物,它是所有计算机用户界面的一个组成部分,并且对于二维(2D)、三维(3D)和更高维对象的可视化是不可或缺的,诸如教育、科学、工程、医学、商业、军事、广告和娱乐等各种各样的领域都离不开计算机图形。

正因为计算机图形与我们日常生活如此密切,美国SGI公司为图形工作站开发了功能强大的三维图形和模型库――OpenGL(即开放性图形库,OpenGraphicsLibrary)。

而这个图形学领域的事实标准诞生,又更加促进了图形学应用范围迅速扩大,其中很重要的影响就是在简单的物品摆放和材质渲染方面。

如何渲染出一个逼真的场景,是现在图形学领域一个重要的研究方向。

OpenGL提供强大的图形处理功能,使简单的三维场景制作变得方便、灵活,效果更加逼真。

本文基于OpenGL开发了一个简单的三维场景,并在这个场景中添加了材质渲染,灯光,运动轨迹效果。

1.2三维建模的意义

20世纪中后期,随着计算机技术的飞速发展,计算机描述现实世界的方式越来越丰富:

从声音到图像再到视频,计算机所能表示的世界越来越复杂。

三维模型作为一种新的媒体形式进入了人们的生活、学习和工作中,并且很快被普通大众所接受。

它在影视娱乐,建筑,机械制造,医疗,军事,电子商务,虚拟现实,考古等很多方面都得到了越来越广泛的应用。

在影视娱乐中,基于三维建模技术的CG(计算机图形学)影片(如图1.1)层出不穷,CG技术已经在这个领域得到了广泛的应用。

将三维建模技术应用到电影,可以让电影导演能有更广泛的想象空间来实现现实生活中无法完成的场面,从而降低影片制作中的风险和为影片减少开支。

图1.1影片“最终幻想”场景图1.2游戏“完美世界”人物模型

CPU的发展一直跟不上GPU的发展,这是三维游戏推动的结果。

三维游戏虽然和民生关系不大,但是确是一种具有强有力号召力的娱乐方式。

计算机图形学技术的发展很大程度上得益于三维游戏的发展需求,随着GPU的不断发展,三维游戏中的画面越来越美观和真实。

图1.2展示了一个游戏人物模型,这种简单的人物模型最开始就是由网格模型组成,再通过对模型贴图和渲染而达到这种效果。

很明显,在这种大型的游戏中数据的处理过程是非常复杂的。

三维建模技术也广泛应用电子商务领域。

如图1.3所示是耐克鞋官方主页上提供的一种服务,客户可以通过IE浏览器来设计和订购自己的产品。

这是目前电子商务领域比较热门的一种服务,其中就涉及到三维建模以及模型的传输等技术。

图1.3耐克官方主页提供的订购服务图1.4文物模型的虚拟拼接

在考古学领域,可以对破损的文物进行采样和收集数据,然后通过三维建模技术复原文物模型。

图1.4现实的是北京大学虚拟化实验室对洛阳龙门石窟古阳洞高树龛中的破损佛像的数据进行搜集然后再三维建模从而得到的完整的模型。

在医疗领域,三维建模技术很久以前就得到了广泛的应用。

使用CT或者MRI(核磁共震)技术可以得到人体各个部位的横截面的图像,然后通过三维建模技术可以对这些图像合并成各种人体组织的三维模型。

这种三维模型能比二维的平面图像更加准确,从而让医务人员能更加准确的对病情进行诊断。

在建筑和机械制造等领域,三维建模技术的作用更不用说,CAD技术在工业设计领域已经应用了几十年。

在军事和虚拟现实等领域三维建模技术也有广泛的应用,例如航天员可以在虚拟的航天环境下进行模拟训练。

上面的里例子充分说明了三维建模技术已经深入到社会各个方面,对人们的生活已经产生了巨大的影响。

因此,三维建模具有非常重要的意义。

1.3三维场景建立概述及其意义

随着计算机信息技术的高速发展,计算机三维动画技术被广泛地应用于许多方面。

利用计算机和三维动画软件的强大功能,通过三维建模、材质及动画的设定可以将真实世界中的各种对象在计算机中真实再现。

但是三维动画在中国的宣传力度不是很大,许多人还没有概念。

外国动画垄断中国市场的现状与后果令人不安,但真正惊人的是背后的损失。

首先是民族精神的弱化。

动画的受众主体是青少年,如长期接受国外动画的影响,其价值观、审美观和趣味观必然发生偏移;其次是经济利益的损失;第三是动画产业的衰弱。

所以该课题的应用前景十分广阔,不但锻炼了三维动画的实现能力,还提高了编程的总体思路,大大提高了编程水平。

更何况中国市场的匮乏,这无疑是一块很大的蛋糕!

 

1.4本文的主要工作

本论文的主要研究的内容是如何利用OpenGL开发出一个微型游戏。

因此,所要解决的主要问题有四个:

一是如何用数学方法建立所需三维场景的几何描述,并将它们输入到计算机中,这部分工作由三维实体造型系统来完成。

场景的几何描述直接影响了图形的复杂性和图形绘制的计算耗费,选择合理的有效的数据表示和输入手段是极其重要。

二是将三维几何描述转换为二维透视,通过场景的透视变换来完成。

三是确定场景中的所有可视面,这需要使用隐藏面消除算法将视域之外或其它物体遮挡的不可见面消去。

四是计算机场景中所有可见面的颜色,这就需要根据基于光学物理的光照明模型计算可见面投影到观察者眼中的光亮度的大小和色彩组成,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一象素的颜色,最终生成图形。

 

2几何三维建模技术概述

绪论已经讨论了本文的基本思路,并且说明了制作三维场景的前提是进行三维建模。

在计算机图形学中,对于三维空间的点P(X,Y,Z),如果要将点P变换到一个新的点P’,设其坐标为(X’,Y’,Z’),则其解析表达式如下:

如果将上面的式子改用矩阵的形式表示,则可以写为:

其中矩阵[XYZ]称为几何信息矩阵,或者称为位置矢量矩阵;3×3的矩阵

称为变换矩阵;而[X’Y’Z’]称为变换后的位置矢量矩阵。

显然,变换后的矩阵除了和原来的位置矢量有关外,同时还与变换矩阵的每一个元素的大小有关系。

一般来说可以采用齐次坐标来表示空间上的一个点,则有四个分量,即P(x,y,z,1)。

显然,相应的变换矩阵应该是4×4的方阵。

习惯上用小写字母[xyz1]来表示变换前的空间点的位置矢量;用大写字母[XYZH]来表示变换后的空间点的位置矢量。

通常情况下,变换后的第四个分量H往往不是1,为了用正常化的齐次坐标表示变换后的位置矢量,可以用H去除四个分量,得到正常化的齐次坐标,并用带字母表示为:

对于空间中的三维体,例如线段、平面、立体,都可以将其n个顶点以点集的形式用齐次坐标写成n行四列矩阵P,则三维图形变换可以表示为P’=PT。

其中,P是空间点集的齐次坐标矩阵;P’是经过变换后而且是以正常化的齐次坐标表示的空间点集矩阵;T则是4×4阶的变换矩阵,其一般形式为:

根据变换矩阵中各个元素在变换过程中的作用,可以将变换矩阵划分成四个子矩阵:

概括起来,这四个矩阵分别对应的作用是:

(1)3×3矩阵是产生比例变换,对称变化,旋转变换和错切变换。

(2)1×3矩阵是产生平移变换。

(3)3×1矩阵产生透视变换。

(4)1×1矩阵将产生整体的比例变换。

下面将介绍几种常见的三维变换矩阵:

2.1比例变换

比例变换主要用于三维模型的放大和缩小操作。

对于模型的放大和缩小可以分为全局比例放大和轴向比例放大。

对于全比例变换,其变换矩阵为:

其变换过程如下:

时,模型沿三个轴向等比例放大;当

时,则模型沿着三个轴向等比例缩小;当

时模型将产生对坐标原点的对称变换加比例变换。

对于轴向比例变换,变换矩阵中主对角线上的元素a,f,j,s的作用是使空间几何元素产生比例变换,其中a,f,j分别为X,Y,Z轴三个方向的缩放因子。

当a=f=j

时三个轴向的缩放比例相同;否则三个轴方向的缩放比例不相同。

2.2对称变换

对称变换可以分成如下三种变换方式:

(1)对称于XOY坐标面的对称变换,变换矩阵为:

;其变换过程为:

(2)对称于YOZ坐标面的对称变换,变换矩阵为:

;其变换过程为:

(3)对称于XOZ坐标面的对称变换,变换矩阵为:

;其变换过程为:

2.3平移变换

平移变换是指在空间坐标中的模型从一个位置移动到另外一个位置时,其形状、大小均不发生改变的变换。

其变换矩阵如下:

很明显,l,m,n三个元素分别产生沿X轴、Y轴和Z轴方向的平移,三为空间的点的平移过程如下:

2.4旋转变换

旋转变换[5],很明显是指对于空间中的模型沿着某个轴或者某条直线旋转。

可以将其分成如下几种情况,如图2.1所示的旋转变换的示意图:

(1)绕X轴旋转

角度。

其变换矩阵为:

(2)绕Y轴旋转

角度。

其变换矩阵为:

(3)绕Z轴旋转

角度。

其变换矩阵为:

图2.1三维旋转变换示意图

(4)绕过原点的任意倾斜直线旋转。

假设该直线为ON,它对三个坐标轴方向的余弦已知。

设三个方向的余弦分别为

;可以先在ON上取一个单位矢量OK,将OK先绕OY旋转

,再绕OZ旋转

,使得OK和ON重合,这样就可以得到ON轴的方向余弦和

的关系如下:

这样可以得到最终的绕ON轴旋转变换

角度的变换矩阵如下:

3OpenGL三维建模原理概述

3.1OpenGL简介

3.1.1什么是OpenGL

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

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

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

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

3.1.2OpenGL概览

OpenGL是一个图形硬件的软件接口,包括大约250个函数(其中200个在OpenGL核心中,其他50个在OpenGL核心库中),您可以使用它们来指定物体和操作,以创建交互式三维应用程序。

它的主要作用是将二维或三维的对象绘入一个帧缓冲区中。

对象被描述为一系列的顶点(用来定义几何对象)或像素(用来定义图像)。

OpenGL对数据进行几个步骤的处理从而将其转换成像素,这些像素将在帧缓冲区中形成最终需要的图形。

OpenGL是一个独立于硬件的高效接口,可以在很多平台上实现。

因此,OpenGL中没有执行窗口任务或获取用户输入的函数,程序员必须通过窗口系统来控制硬件。

另外OpenGL也没有提供用于面熟三维物体模型(如汽车,人体,飞机或分子模型)的高级函数。

在OpenGL中,只能使用几种几何图元(geometricprimitive)(点,直线,多边形)来构建所需的模型。

当然,可以在OpenGL之上建立提供上述高级特性的复杂库。

OpenGL实用库(GLU,OpenGLUtilityLibrary)提供了很多建模(modeling)特性,如二次曲面,NURBS曲线和曲面。

GLU是OpenGL实现的标准组成部分。

OpenGL在屏幕上渲染图像时执行的主要图形操作:

(1)使用几何图元建立模型,即是说所建立的模型由图元构成(使用若干个三角形来建立曲面),这里的几何图元包括:

点,直线,多边形,图形和位图。

(2)在三维空间排列物体,选择观察场景的有利位置,也即一系列的变换。

(3)计算所有物体的颜色。

物体的颜色可以由程序来指定,根据光照来确定,进行纹理贴图,或者上述操作的组合来实现的。

(4)将物体的数学描述和相关颜色信息转换为屏幕像素,这被称为光栅化(rasterization)。

在上述步骤中,OpenGL还可以执行其他操作,如隐藏面(线)消除。

另外,在场景被光栅化后,但被绘制到屏幕之前,可以对像素数据执行某些操作。

3.1.3OpenGL的基本特点

从程序开发人员的角度来看,OpenG

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2