版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实时图形设计课程设计报告姓名 学号 专业 班级 任课教师 XX大学计算机科学与技术学院2012 年 月 日一、课程设计内容课程设计的主要内容为开发一个实时绘制大规模三维场景的程序系统(运行界面可以参考图1),包括必做部分和选做部分(其中,选做部分要求实现23项以上功能)。必做部分:1、学习3DS Max 的基本功能,并采用3DS Max 对三维场景进行建模,要求场景中包含建筑物、道路、天空等基本元素,实现场景的纹理贴图功能。2、通过3DS Loader 读取场景数据。3、学习并使用OpenGL 或DirectX 3D 实时绘制上述场景。4、提供用户界面,并实现场景的交互漫游功能。选做部分:1、
2、实现Level of Detail (LOD)技术。2、在场景中添加三维地形。3、采用流体模拟技术,实现动态水面的实时绘制。4、学习纹理合成技术,实现大规模纹理的实时合成。5、学习GPU(Graphics Processing Units)编程语言Cg,采用图形硬件技术对程序进行加速绘制。6、实现云、雨等不同气象条件的实时绘制。7、实现实时碰撞检测技术。8、实现一种计算机动画技术如物体形变、人物动画、布料动画等。9、在场景中添加喷泉、瀑布等元素。10、实现Billboard 绘制技术。11、实现阴影的实时绘制。二、主要技术介绍1、3d smax建模3ds Max是3D Studio Max的简
3、称,它是在3D Studio的基础上发展的三维实体造型及动画制作系统。在其图形化的界面中,可以完成建模、渲染、动画制作等操作。同时,它也是一个面向对象的智能化应用软件,用户可以通过菜单选项、命令、按钮等操作方式轻松实现对象的创建与编辑。3ds Max广泛应用于影视制作、产品设计、建筑设计、多媒体制作、游戏开发、辅助教学、工程展示等诸多领域。2、3ds loader程序读入场景数据一个3ds文件包含一系列的信息用于描述由一个或多个物体组成的3D场景的所有细节。一个3ds文件包含了一系列的块,称之为chunks。Chunks中包含描述场景的所有信息:每个物体的名称,顶点坐标,映射坐标,多边形列表,
4、表面的颜色,动画关键帧等等. 这些chunks没有一个线性的结构。这意味着一些chunks依赖于其他的chunks,并只有在它们的父chunks被读入后才能读入。我们加载3ds物体并保存到我们的引擎所定义的格式需要的步骤是:实现一个”while”循环(正如我们为纹理加载器所做的),不断地执行直到到达文件的结束。每个循环的反复读入chunk id和chunk length。使用一个switch分析chunk id的内容。如果chunk是我们不需要读入的树的一部分,我们移动文件指针到一个新的位置来跳过那个chunk长度,即通过将当前位置加上当前chunk的长度。这使得我们可以跳过任何我们不需要读入
5、的chunk和子chunk。如果chunk允许到达我们需要的其他chunk,或是包含了我们需要的数据,那么我们就根据需要来读取数据,然后我们移动到下一个chunk。3、天空盒技术所谓天空盒,就是用一个矩形方盒作为形容远景贴图的物体。 在长方体的前后左右上下6个面贴有天空远景的6幅图形(需要时底面也可以帖)。这6幅图形必须有以下规律: 1、顶图的4边与前后左右图的上边相连; 2、前后左右的4幅图形必须首尾相连。 对于每个面的贴图,就图的方向而言,长方体的面的顶点是顺时针还是逆时针排列都没有关系,重要的是图形的
6、顶点要与长方体面的相应顶点相对应,这就要求在设置纹理坐标时要特别小心。天空盒技术可以通过opengl实现,也可以在3ds max中实现,在本次课程设计中采用的是在opengl中通过在六个面上贴图实现天空盒。4、在三维场景中添加地形在三维场景中添加地形采用的方法为读取.raw类型的文件。首先以二进制形式打开文件,然后导入.raw 文件到 pHeightMap数组,根据高度图的返回高度值X,Y, 应用公式: index = (x + (y * arrayWidth) ) 来取得当前高度, 设置高度图的当前纹理坐标,然后绑定纹理并开始绘制地形。绘制地形时遍历高度图,在每个X坐标上渲染地形。5、纹理合
7、成技术纹理合成是为了解决纹理映射中存在的接缝走样等问题而提出的,目前纹理合成方法可分为两类:一类为过程纹理合成(PTS),另一类为基于样图的纹理合成(TSFS)。过程纹理合成通过对物理生成过程的仿真直接在曲面上生成纹理,如毛发、云雾、木纹等,从而避免了纹理映射带来的失真。这种方法可以获得非常逼真的纹理,但对每一种新的纹理,却需要调整参数反复测试,非常不便,有的甚至无法得到有效的参数。自然界中存在大量的纹理,这些纹理往往具有自相似性,即一小块纹理就能反映整体纹理的特点。这就促使人们着手研究基于样图的纹理合成方法以取得更有效的成果:给定一小块纹理,生成大块相似的纹理。基于样图的纹理合成(textu
8、re synthesis from samples,TSFS)技术是近几年迅速发展起来的一种新的纹理拼接技术,它基于给定的小区域纹理样本,按照表面的几何形状,拼合生成整个曲面的纹理,它在视觉上是相似而连续的。TSFS技术可以克服传统纹理映射方法的缺点,又避免了过程纹理合成调整参数的繁琐,因而受到越来越多研究人员的关注,成为计算机图形学、计算机视觉和图像处理领域的研究热点之一。利用TSFS技术还可以进行纹理填充(如修补破损的图片,重现原有图片效果),纹理传输,扩展到时域则可以用一短段视频图像,生成任意长度的非重复的视频动画等。所以纹理合成技术在图像编辑、数据压缩、网络数据的快速传输、大规模场景的
9、生成以及真实感和非真实感绘制等方面具有广泛的应用前景。6、Billboard 绘制技术公告牌技术,即billboard技术,在3D游戏中有着广泛的应用.它的本质就是用预先做好的几幅位图来代替3D物体,极大地节省资源和提高速度.仔细观察<<魔法门>>系列游戏,它的精灵,树木,物品都是二维图象,但由于它始终朝向观察者,你根本看不到它"扁"的一面,所以给人一种立体的感觉.这种技术最大的优点是快.试想一个多边形构成的3D精灵,至少百余个多边形,而用billboard技术,只需处理两个多边形,优势不言而喻.其他3D游戏的爆炸效果,<<极品飞车>
10、;>中路旁的树木,都使用了该技术.7、阴影绘制技术1、通过阴影投射矩阵的推导得到S的四维向量坐标S = HP,其中P为空间某点P的向量坐标,H即为平面阴影投射矩阵。在OpenGL中,有一个4×4的空间平面坐标变换矩阵R,将三维坐标映射为屏幕实际显示出来的二维图形。故有S0 = RS = RHP = R'P,其中R' = RH。从而在R'的变换下,图形将被“压扁”地绘制到阴影投射平面上。2、阴影投射矩阵的生成算法。设计函数void GenerateShadow()计算阴影投射矩阵,记录在二维数组shadow44中。3、绘制阴影。(1)关闭光照和纹理贴图,设
11、置阴影颜色。(2)为防止阴影与投射平面重合导致绘图层次混乱,将阴影绘制平面上移一个小单位。(3)对于四个阴影投射平面,分别计算阴影投射矩阵,并与当前模型视图矩阵相乘。(4)由于当前模型视图矩阵被修改,要恢复之前的状态必须将运算前的矩阵压入矩阵栈,阴影绘制结束后弹出。8、雾的实现技术雾也是大自然中最常见的现象之一,有了雾的效果,场景看起来会更加真实。在OpenGL中,很容易实现雾的效果。在OpenGL中,雾的工作模式有两种:线性模式和指数模式。这两种模式是根据雾的浓度变化来区分的。在线性模式下,只需要提供一个距离视点的开始位置和结束位置。从开始位置到结束位置之间,雾的浓度越来越高,浓度的变化和距
12、离成正比。在指数模式下,雾的浓度随着距离的增加呈指数增长。这种模式通常用来用于烟雾、烟幕等效果。启用雾化的效果必须使用glEnable(GL_FOG),同样,取消雾的效果就是glDisable(GL_FOG)。9、喷泉的实现:随着时间的变化,粒子系统中的粒子都要经过产生、运动、消亡三个阶段。在这三个阶段中粒子的大小和形状随时间变化而变化,其他性质如粒子的透明度颜色和运动速度都将随机变化,从而充分体现出不规则物体的动态性和随机性。基于这三个阶段,因此粒子的初始属性以及其变化规律的确定就显得非常重要。每个粒子都在其生命周期内按一定的方式不断运动,其速度、位置、颜色、生命值等属性值也在不断地发生变化
13、。喷泉是通过对粒子系统的绘制实现的,首先设定粒子的初始属性,包括粒子的初始速度,和初始位置。将粒子的初始速度(Vx,Vy,Vz)限制在一个圆柱环的域内,圆柱的轴平行于Y轴并且长度很短,这样可以保证粒子以比较稳定的状态变化。其次是通过函数UpdateEngine(GLvoid)更新粒子运动,函数void DrawEngine(GLvoid) 来制粒子(1) 将新生成的粒子加入到粒子系统当中。(2) 为新生成的粒子赋予一定的属性。(3) 从喷泉粒子系统中删除那些超过所赋予的生命周期的粒子。(4) 活着的粒子( 没有到生命终结期的粒子) 都将按照所赋予的粒子动力学规律进行移动和变换。(5) 采用Op
14、enGL 显示列表方法和纹理映射技术来绘制和显示那些没有死亡的粒子即有生命的粒子。三、实现流程产生新粒子粒子属性初始化粒子属性更新判断粒子是否活着重新赋予粒子生命 是 否粒子绘制绘制结束 图1.喷泉系统实现的流程图打开文件 读取chunk 成功 失败判断是否为3ds文件 是 不是输出错误提示载入纹理 从文件中读取字节读取主chunk读取.3ds对象读取面信息、读取材质、漫反射属性纹理等释放3ds模型资源结束 图2.读取3ds文件的流程图创建界面定义全局变量定义用户变量绘制场景实现系统功能Billboard阴影天空盒喷泉系统退出前扫尾结束程序 图3.程序流程图四、实验结果场景:显示模型的线条:阴
15、影显示:GL_EXP雾:GL_EXP2雾:GL_LINEAR雾喷泉:Billboard树:五、实验分析和总结实验分析:本次课程设计的主要内容为开发一个实时绘制大规模三维场景的程序系统,开发环境为openGL VC+。首先用3ds max建立模型,可以通过一些素材网站下载一些现有的模型,然后将文件类型为.3ds的文件通过3ds Loader程序读取三维场景的数据,当程序调通后就可以向场景中添加其他功能。系统实现了如下功能:可以读入三维场景并显示;可以播放背景音乐;可以进行人机交互,通过鼠标或键盘实现漫游功能;当在键盘上输入1时可以调整多边形的显示方法,显示线条;在键盘上输入2时可以实现对阴影的实
16、时绘制;在键盘上输入G时可以出现雾,并且用了3种方法显示雾,并且实现了Billboard技术,Billboard显示了一棵树,按下ESC退出场景。试验中添加了背景音乐,背景音乐可以通过相关代码载入音频文件,实现音乐的播放。天空背景是在openGL中绘制出天空盒并在表面贴上天空的图案,实现天空场景。雾的实现有三种不同的计算方法,使用fogMode来保存三种类型的雾:GL_EXP,GL_EXP2和GL_LINEAR。GL_EXP是充满整个屏幕的基本渲染的雾GL_EXP2比GL_EXP更进一步,看起来更有深度,GL_LINEAR最好的渲染模式,效果更自然。喷泉的实现通过粒子系统,对粒子系统进行初始化,更新粒子的运动状态,绘制粒子的运动轨迹等过程实现。实验总结:以前通过图形学的课程已经对opengl有了初步的认识,通过本次课程设计,我对opengl有了更加深入的学习并且学习了3ds Max的基本使用方法,3ds Max 在游戏和建筑设计等方面有着广泛的运用,相信这对我们将来的发展是很有作用的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园社会元宵节课件
- 2025年湖北省洪湖市高二生物下册期末考试考试卷附完整答案【全优】
- 2026年安徽省天长市高二生物下册期末考试试卷(网校专用)附答案
- 2026年三八节大地幼儿园
- 2026年广东省连州市高二生物下册期末考试测试卷附参考答案(A卷)
- 2025年黑龙江省五大连池市高二生物下册期末考试试卷含答案【培优B卷】
- 企业建(构)筑物防雷检测方案
- 2026年吉林省和龙市高二生物下册期末考试试卷及答案一套
- 2026年山东省胶州市高二生物下册期末考试测试卷附答案【轻巧夺冠】
- 2026年四川省康定市高二生物下册期末考试检测卷及参考答案(轻巧夺冠)
- 2026年北京市石景山区初三二模语文试卷(含答案)
- 全民健身体育中心建设项目技术方案
- 耳念珠菌感染预防与控制规定考试测试卷及答案
- 施工质量风险分析及预防措施
- 山东科技大学2026年综合评价招生《笔试+面试》模拟试题及参考答案
- 2025年《材料加工和成型工艺》考试复习题(含答案)
- 家庭教育指导师考试测试题库2026年
- 事业单位采购管理制度及采购流程
- 【全册教案】2025-2026学年统编版道德与法治五年级下册全册表格式(教学设计)
- 2025年安全生产标准化考试题库及答案
- 社交媒体对糕点偏好影响-洞察与解读
评论
0/150
提交评论