水利工程三维可视化设计作业
基于 unity 的三维虚拟场景的构建
姓名:黄文衡
专业:水利信息技术
学院:水利与环境学院
日期:2016 年 6 月 1 日
目录
第一章:简介和数据准备................................................................................................................ 2
1.1 简介 ..................................................................................................................................... 2
1.2 数据准备 ............................................................................................................................. 2
1.2.1 使用 PS 对建筑贴图的制作 ....................................................................................2
1.2.2 使用 3dsmax 绘制建筑物....................................................................................... 3
1.2.3 使用 PS 和 3dsmax 对十字树进行制作................................................................. 3
1.2.4 通过遥感图像制作高度图来进行地形的制作......................................................5
1.2.5 资源包的下载与导入..............................................................................................7
第二章:三维虚拟场景的构建........................................................................................................ 8
2.1 新建 unity 工程 ...................................................................................................................8
2.2 地形的创建 .......................................................................................................................... 9
2.2.1 借助遥感影像制作高度图进行地形的构建 ..........................................................9
2.2.2 手工绘制地形 .......................................................................................................... 9
2.3 树木的加载 ........................................................................................................................ 11
2.2.1 资源包里的树木的加载 .........................................................................................11
2.2.2 自定义的十字树的加载 ........................................................................................12
2.4 草地的加载 ........................................................................................................................ 13
2.5 河流湖泊的制作的两种方法 ............................................................................................14
2.6 建筑物的加载 .................................................................................................................... 16
2.7 天空盒的加载 .................................................................................................................... 17
第三章:场景漫游与场景特效...................................................................................................... 19
3.1 第一人称,第三人称角色控制器 ....................................................................................19
3.2 粒子特效(烟火、爆炸、风) ........................................................................................20
3.3 刚体和碰撞检测 ................................................................................................................ 21
第四章:结论和展望...................................................................................................................... 23
4.1 结论 .................................................................................................................................... 23
4.2 展望 .................................................................................................................................... 23
参考文献及资料: .......................................................................................................................... 23
1
第一章:简介和数据准备
1.1 简介
本文详细介绍了使用 unity3D 对三维虚拟场景构建的流程,通过 Photo Shop
制作纹理贴图,使用 3DMAX 进行建筑物的构建,使用 Unity3D 对地形、树木、草
地、河流等进行编辑和制作,介绍了通过高度图和手工绘制来制作地形的两种方
法,介绍了制作河流及湖泊的两种方法。导入外在的资源包进行特殊天空盒的加
载,通过第一、第三人称角色控制器可以进行场景的漫游,通过刚体和碰撞检测
增加了漫游过程中的真实性,也使用一些粒子特效来提高场景的目视效果。
1.2 数据准备
1.2.1 使用 PS 对建筑贴图的制作
因为有些建筑物纹理比较复杂,采用照片作为贴图的方式会比较真实。通过
相机或手机对建筑物进行照相,然后通过图像处理软件对相片进行简单的处理,
即可得到所需要的建筑物纹理。具体的操作步骤如下:
使用 PS 打开拍摄的图片,如图 1.2.1.1 所示,然后使用透视裁剪得到如图
1.2.1.2 所示的裁剪效果,然后进行选择右键填充,或者复制粘贴然后合并图层,
或者进行图案图章工具进行 P 图(图 1.2.1.3 图片处理),或者在图片模糊时,
使用 USM 锐化、进一步锐化、调整色阶等,将图片处理清晰。图 1.2.1.4 为此图
所需的效果,然后更改图片的像素值。在菜单栏上,图像->图像大小,或用快捷
键 Ctrl+Alt+I。将像素值调为 2 的 N 次方×2 的 N 次方。否则的话可能(一定?)
会导致最后材质的缺失。
图 1.2.1.1PS 透视裁剪
图 1.2.1.2 透视裁剪效果
2
图 1.2.1.3 图片处理
图 1.2.1.4 效果图
1.2.2 使用 3dsmax 绘制建筑物
建筑物建模可以用体建模,也可以用线建模,方法多种多样,现在简单的用
标准基本体上里的长方体,注意单位设置成 cm(按照真实的尺寸),否则好像
在真实场景中大小会改变,但是最后也可以缩放,只是略微麻烦。设置好长宽高
后,可以右键转换为可编辑多边形。将材质放到材质球上(参照 1.2.3),然后
在修改器列表中找到 UV 贴图,进行贴图,如图 1.2.2.1 所示。贴图完成之后,
将模型导出成 FBX 格式的文件,整理好之后,打包拷贝到 unity 工程中的 Assert
文件夹下。
图 1.2.2.1UV 贴图
图 1.2.2.2 贴图效果
1.2.3 使用 PS 和 3dsmax 对十字树进行制作
如图 1.2.1.1 从网上下载的(百度:树木,即得)jpg 的图,分别进行命名。
通过 PS 软件打开图片(如 tree2)。选择魔棒工具,单击空白处(图 1.2.1.2),
然后右键反向选择(图 1.2.1.3)。按住 Alt 键,然后点击树木图片内部的空白
区域,可以去除空白的选择。然后新建一个 Alpha 通道,如图 1.2.1.4 所示,最
后图片另存为(Ctrl+S 或 Ctrl+Shift+S)tga 格式的图片。另外的两张图也做
同样的处理。另外值得注意的是,在存储 tga 时,选择的分辨率应该为默认(32
位像素的),我测试了一下,只有 32 位的最终才能在 3DMAX 立面做成透明贴图
(采用我采用的方法),而 16 位的 24 位的都未成功,甚至 24 位的时候,在 3dmax
中无法使用 Alpha 通道,如图 1.2.3.9 所示。
3
图 1.2.3.1 数目 jpg 原图 图 1.2.3.2 点击空白
图 1.2.3.3 反向选择
图 1.2.3.4Alpha 通道
图 1.2.3.5tree1 处理
图 1.2.3.6 创建 Plane
图 1.2.3.7
图 1.2.3.8_16\24\36 图 1.2.3.9 各分辨率效果
打开 3ds Max,如图 1.2.1.6(上图)创建一个 Plane(平面)。点了之后,
左键即可在任意窗口(前、顶、左、透视等)中绘制一个平面。打开材质编辑器
(菜单栏上有,或英文输入状态下按 M 键),将 tga 贴图拖到材质球上。如图
1.2.3.7 所示。然后点击下面的漫反射后面的 M 按住不松手,拖到不透明度后面
的按钮上,如图 1.2.3.8 所示。然后在弹出的对话框上选择实例,如图 1.2.3.9
所示,然后点击漫反射后面的 M(图 1.2.3.8 的左箭头标注的地方),向下拉动,
找到单通道输出,选择 Alpha,然后将材质赋给所创建的平面。就得到一个透明
的面片树,然后选中面片树,按住 Shift 移动,选择复制,然后对复制面片的进
行旋转 90 度(可采用角度捕捉)(图 1.2.3.11),就可以成功生成十字树。如
图 1.2.3.12 所示。最后通过文件->导出,导成 FBX 格式的文件(可以先随便保存,
最终要打包拷贝到 unity 工程的 Assert 文件夹下)。
4
图 1.2.3.7tga 贴图
图 1.2.3.8 制作透明贴图
图 1.2.3.9 实例
图 1.2.3.10
图 1.2.3.11 复制面片
图 1.2.3.12 十字树效果
1.2.4 通过遥感图像制作高度图来进行地形的制作
制作地形,有些时候可以制作虚拟的地形,有的时候必须制作真实的地形,
通过遥感图像结合 PS 可以制作真实的地形。具体的操作步骤如下(PS:这是本
人测试的一种方法,但是不知道最后是因为电脑配置太低,还是方法有缺陷,经
使用大面积的 tiff 图像,过格式转换后做成高度图后,电脑太卡,无法进行下
一步的操作。截取一部分之后,可以勉强进行操作,但是遥感图像和地形图上的
5
坐标无法完全匹配,导致效果不佳)。
用 PS 打开 Tiff 图像之后,裁剪出所需的一块(图 1.2.4.1)(调整像素值 2
的 N 次方×2 的 N 次方)(用整张图的会非常非常卡。)然后存储(Ctrl+Shift+S)
为 raw 格式的图像,打开相对应的多波段合成的图(在 ArcSence 可以,但是不
知道怎么在 PS 使用,于是我截取生成了 jpg 格式),然后在 PS 中截取相对应的
位置,如图 1.2.4.2 所示。注意图片格式,像素大小同样 2 的 N 次方×2 的 N 次
方。然后拷贝到 Assert 文件夹下。
图 1.2.4.1 裁剪 Tiff
图 1.2.4.2 裁剪 jpg
如图 1.2.4.3 所示,重新建立了一个测试工程(时间上是 6_1 了),然后同
样 Create->3DObject->Terrain 创建一个地形,然后导入 raw 格式的高度图,如
图 1.2.4.4 所示。注意更改高度,改成适当的大小(图 1.2.4.5),否则会导致,
高度落差太大,当然,导入之后也可以进行设置,如图 1.2.4.6 箭头所指,然后
添加地形贴图(参照 2.2.2,此时注意贴图尺寸与地形长度和宽度相一致),最
终成果如图 1.2.4.7 所示。
图 1.2.4.3 新建测试工程
图 1.2.4.4 导入高度图
6
图 1.2.4.5 更改高度
图 1.2.4.6 最终效果
图 1.2.4.7 添加贴图
图 1.2.4.8 加贴图最终效果
1.2.5 资源包的下载与导入
Unity5.0 之后标准资源包需要单独下载,可以在 unity 的官网上的 assert
store 里下载,有些特殊的资源需要付费。下载完之后,安装即可。具体的导入
参照第二章的第 1 小节(2.1).
1.2.6 特殊效果的天空盒资源下载与导入
Unity5.0 以后的天空盒(skyBox)只有一个默认的天空盒,难以展示出更好
的效果,所以可以自己制作天空盒,也可以从网上下载“雷锋网友”上传的资源。
我从网上下载了一个带有 18 种天空盒的资源包,具体导入参照本文第二章第 7
小节(2.7).
7