logo资料库

天津大学2019年实时图形设计课程设计报告.pdf

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
《实时图形设计》课程设计报告 学 专 年 姓 学 院 业 级 名 号 智能与计算学部 计算机科学与技术 4班 宋金铎 3016216116 2019 年 6 月 2 日
目录 1. 课程设计内容和项目简介................................................................................................................. 4 1.1 项目设计...................................................................................................................................4 1.2.项目内容简介...........................................................................................................................5 2.主要技术介绍........................................................................................................................................6 2.1 用 Unity 建模...........................................................................................................................6 2.2 读取模型到场景并使用 DirectX 绘制场景...........................................................................7 2.3 用户界面设计...........................................................................................................................8 2.4 键盘控制场景漫游...................................................................................................................9 2.5 实现物体移动...........................................................................................................................9 2.6 实现物体拾取.........................................................................................................................10 2.7 实现 Billboard 技术.............................................................................................................11 2.8 实现 Level of Detail 技术.................................................................................................12 2.9 纹理贴图技术.........................................................................................................................12 2.8 粒子效果.................................................................................................................................13 2.9 阴影贴图技术.........................................................................................................................13 2.10 光照贴图技术.......................................................................................................................14 2.11 一定的故事情节...................................................................................................................14 2.12 计算机动画技术...................................................................................................................15 2.12 模板缓存实现水面倒影.......................................................................................................15 2.13 碰撞器检测...........................................................................................................................16 3.项目的创新功能................................................................................................................................. 16 3.1 第一人称视角上车功能.........................................................................................................16
3.2 物体水面浮力功能.................................................................................................................16 3.2 完成任务时的释放烟花和显示任务完成界面.....................................................................17 4.项目总结..............................................................................................................................................17 参考资料..................................................................................................................................................18 附录..........................................................................................................................................................18
1. 课程设计内容和项目简介 1.1 项目设计 课程设计的主要内容为开发一个实时绘制较大规模三维场景的程序系统,包 括必做部分和选做部分。 必做部分: (1) 学习一种建模软件(如 3DS Max、Maya、Unity3D、Vega 等)的基本功 能, 并采用其对三维场景进行建模。其中场景为校园、工厂、机场等一角 (室 外或室内)。 (2) 读取(如通过 3DS Loader)场景数据,学习并使用OpenGL或DirectX 3D 实 时绘制上述场景。要求提供用户界面,通过键盘或鼠标控制物体移动、 拾 取及漫游等基本交互功能。 (3) 要求实现常见的实时绘制技 选做部分: (1) 用AABB方法实现碰撞检测。 (2) 实现一个物体的阴影贴图。 (3) 利用模板缓存(stencil buffer)技术实现镜面效果,并且要在镜子中显示 物体。 (4) 实现光照贴图与环境贴图中的一种。 (5) 至少实现一种粒子效果,如火焰、雪花、雾、光晕效果等。 (6) 设计并实现一定的故事情节。 (7) 实现一种以上计算机动画技术如人物动画、物体形变、布料动画、实现动态 水面(如包含与船只的交互)等。 (8) 学习 GPU(Graphics Processing Units)编程语言(CUDA、Cg 等),采用 图形硬件技术对程序进行加速绘制。 1.2.项目内容简介 1.2.1 项目简介 我的实时图形设计是一个主要基于Unity软件技术搭建的一个海岛模型场 景,具有一定的故事情节,主要是第一人称,并实现了第一人称和三人称切换, 以及水体浮力和人物开车行驶功能等,具有一定的创新性和趣味性。 1.2.1 项目流程图 以下是整个项目任务的流程图展示,这个流程图包含了我的整个的项目的任 务流程。
2.主要技术介绍 2.1 用Unity建模 2.1.1 Unity介绍 Unity3D是Unity Tecnologies开发的一款游戏引擎,但也有部分建模功能, 并且Unity社区有大量支持Unity游戏引擎的模型可以使用。因此我选择Unity 3D 来建立一些自己的模型,比较复杂的模型则从官网上或者相关社区网站上下载。 2.1.2 建模过程 首先我从Unity官网(https://unity3d.com/)上下载并安装了Unity Hub,然 后通过Unity Hub下载安装了unity3D的2018.4.0f1的64位windows版本和Visual
Studio 2017版本,其中Unity 3D作为我建模工具和游戏引擎,Visual Studio 作为我的编辑器。 在Unity 3D建模时,主要拼接使用软件提供的一些基本的模型,并将一些材 质贴到模型上,实现了基本的建模和贴图功能。以下是我在Unity 3D中建立的和 导入的模型。 (1)基本模型方块 方块是Unity 3D提供的基本模型之一,我建立方块模型后主要是在Inspector 里调整了方块的大小,贴上了我之前准备好的材质,在之后的开发中我还引入了 自己写的C#脚本。 (2)车模型 车的模型是Unity 3D官网标准包里提供的模型,我主要在模型上贴上了自己 之前准备的材质,并在之后的开发中引入了自己写的C#脚本。 (3)椰子树模型
椰子树模型是我在Unity 3D官网上下载的资源包,主要是为了契合我构建的 海岛场景而做,我在使用此模型时主要调整了一下模型的大小,方便之后导入模 型。 2.2 读取模型到场景并使用DirectX绘制场景 2.2.1 DirectX介绍 DirectX,(Direct eXtension,简称DX)是由微软公司创建的多媒体编程 接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、 Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE电子游戏开发,并 且只能支持这些平台。 Microsoft DirectX 是这样一组技术:它们旨在使基于Windows 的计算机成 为运行和显示具有丰富多媒体元素(例如全色图形、视频、3D 动画和丰富音频) 的应用程序的理想平台。DirectX 包括安全和性能更新程序,以及许多涵盖所有 技术的新功能。应用程序可以通过使用DirectX API 来访问这些新功能。 2.2.2 读取与绘制场景 在Windows平台下,Unity 3D调用DirectX 3D渲染。DirectX是图形函数库, 而Unity 3D是游戏引擎,已经内置封装好了DirectX的函数库,使用Unity 3D读 取和绘制场景数据具有操作简单,渲染效果明显等优点,因此我采用Unity 3D 封装好的DirectX 3D库来绘制我搭建的场景,并使用Unity 3D先读取我的模型数 据。 以下是我使用Unity 3D读取的场景并使用DirectX 3D渲染出的部分场景效 果。
2.3 用户界面设计 我使用Canvas(画布)绘制了用户的界面,其中用户界面包括三部分:背包、 任务提示栏和完成任务提示栏。 2.4 键盘控制场景漫游 对于实现利用键盘进行场景漫游,我使用的是Standard Assets(标准资源 包)中的FPSController组件。这个组件是第一人称视角,并且可以使用鼠标控 制镜头的转动,使用WASD按键来实现人物的前后左右移动。同时我还为第一人称
分享到:
收藏