基于Unity3D平台的三维虚拟城市研究与应用_第1页
基于Unity3D平台的三维虚拟城市研究与应用_第2页
基于Unity3D平台的三维虚拟城市研究与应用_第3页
基于Unity3D平台的三维虚拟城市研究与应用_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

收稿日期: 20120722; 修回日期: 20121028 基金项目: 2011 年乐山市重点研究计划项目( 2011GZD052) 作者简介: 王星捷( 1980) , 男, 湖南永州人, 讲师, 硕士, 主要研究方 向为分布式系统、 地理信息、 虚拟地理。 基于 Unity3D 平台的三维虚拟城市研究与应用 王星捷, 李春花 ( 成都理工大学 工程技术学院, 四川 乐山 614007) 摘要: 针对三维虚拟城市系统在高逼真度、 强交互性和高精度等方面的不足, 提出基于 Unity3D 平台的三维虚拟城市的 实现方法。首先通过三维地形的数据采集和坐标数据统一, 实现三维模型的建立和导入, 纹理数据的建立和导入。在此 基础上结合三维引擎 Unity3D 平台, 实现三维模型数据与二维空间数据整合、 三维虚拟漫游、 三维物理效应仿真等。该系 统采用了真实的数据进行实验, 证明了采用该三维虚拟技术很好地满足三维虚拟城市系统的各项指标, 并且实现效率高。 关键词: Unity3D; 三维虚拟城市; 三维虚拟技术; 三维模型 中图分类号: TP319文献标识码: A 文章编号: 1673629X( 2013) 04024104 doi: 103969/j issn1673629X201304059 Research and Application of 3D Virtual City Based on Unity3D WANG Xingjie, LI Chunhua ( College of Engineering Technology, Chengdu University of Technology, Leshan 614007, China) Abstract: In order to improve the 3D virtual city system deficiency of high fidelity, strong interaction and high precision etc, proposed the realization method of 3D virtual city based on the Unity3D platform First, the threedimensional terrain data should be collected and established, besides, built and imported the threedimensional model On this basis, combined with the Unity3D platform of 3D engine, realize integration of the 3D model data and 2D spatial data, the 3D virtual wandering and the effect of threedimensional physical simulation etc Finally, the system used real data to test, proved that the 3D virtual tech- nology achieves each indicator of 3D virtual city system well, and has completion of high efficiency Key words: Unity3D; 3D virtual city; 3D virtual technology; 3D model 0引言 随着现代城市的不断拓展延伸, 城市空间多层次、 立体模式管理逐渐成为城市规划管理的发展趋势 1 , 实现城市空间信息管理模式从二维到三维的转变, 三 维虚拟城市技术, 已经成为人们关注和研究的热点 2 。 三维虚拟系统具有多维信息处理、 表达和分析的特点, 在空间信息的社会化服务中, 三维虚拟城市的应用有 着越来越明显的优越性和不可替代性 3 。 文中采用了一种新的模式进行三维虚拟城市的设 计, 采用三维算法初步建模, Photoshop 进行贴图加工, 3DMAX 进行图形的渲染, 三维引擎 Unity3D 技术实 现三维虚拟城市。该方式制作过程简洁, 三维引擎技 术编程难度低, 能高效率、 高质量完成三维虚拟城市的 建设。整个建设过程包括地理信息数据采集、 三维算 法建模、 3DMAX 后期渲染以及三维引擎技术编程 4 。 1三维虚拟城市实现设计 首先, 获取地理信息数据。包括数字高程数据、 建 筑物类型( 如草地、 水域、 道路等) 的矢量数据、 数字遥 感影像图数据以及地理坐标等 5 。 其次, 使用三维建模算法, 生成三维数字模型, 包 括不规则三角网 TIN( 顾及地性线) 、 规则格网 DEM 等 6 。 第三, 进行精细处理, 包括建筑物点投影变换和像 裁剪处理、 光照模型选择、 建筑物要素叠加、 点坐标变 换、 消隐与纹理映射等 7 。 第四, 三维模型制作, 使用 3DMAX 和 Photoshop 工具, 对粗糙模型进行加工和渲染, 得到高逼真的三维 模型。 最后, 三维模型的导入, 将三维模型根据地理坐标 依次导入到 Unity3D 中, 进行虚拟技术的开发。 具体系统实现设计如图 1 所示。 2数据采集与处理 数据的收集与处理, 主要包括基础数据准备、 实地 第 23 卷第 4 期 2013 年 4 月 计 算 机 技 术 与 发 展 COMPUTER TECHNOLOGY AND DEVELOPMENT Vol 23No 4 Apr2013 采集和后期处理。 图 1系统实现结构图 基础数据准备主要是收集整理乐山某区域的 1: 2 000 地形图和高程点, 以及最新的航空影像。通过地 形图与影像图的对比和实地考察, 划分区域分布图和 编号图, 用于指导实地数据采集和三维模型建设 8 。 区域分布图分为基础模型、 标准模型和精细模型三个 级别, 编号图主要是依据道路和景点的分布划分编号, 作为模型和纹理命名的依据。 需要对前期准备和实地采集的数据进行处理 9 , 如照片的整理、 纹理的收集、 属性的汇编, 然后建立分 片景区照片库、 通用纹理库、 属性记录表等。例如树的 采集, 按照树的种类建立照片库, 对照片进行处理后, 按照树的种类建立通用纹理库 10 。 地形模型建模采用高精度数字高程模型( DEM) 和高分辫率数字正射影像( DOM) , 制作高精度地形模 型 11 。根据划定的建模范围, 将 DEM 裁切出来, 同时 结合航空影像, 通过 GIS 软件将 DEM 和 DOM 转换到 统一坐标系, 保证两者坐标一致, 将 DEM 和 DOM 数 据导入专业软件中, 自动生成地形模型, 将生成的地形 模型转换为三维建模软件( 如 3DSMAX) 兼容的格式, 进行纹理映射, 生成高精度地形模型。这种建模方式 的主要特点是建模快速、 高程精确、 模型真实。 对于细节要求高的地形实体, 如植被、 景观路等, 主要是根据地形图等高线、 高程点以及特征点线, 通过 三维建模软件, 可采用两种方式建模。一是以 1:2 000 地形图和航空影像作为参考, 先勾勒出整个建模 范围的道路, 以道路作为控制, 建立每个景点或者街 坊, 通过点的高度来表现地形的起伏; 也可通过地形 图, 先在 CAD 勾勒出道路、 建筑或人工湖、 花坛等封闭 的线, 参考高程点, 在 CAD 调节线中点的高度, 然后导 入 3DSMAX 中形成面, 后者更方便, 更准确。主要特 点是表现细腻、 色彩美观协调, 能够细致表现对象变化 细节。 3三维模型建立 模型的建立是整个虚拟系统的重要部分, 因此在 该过程中工作量较大, 工作较繁琐。主要实现过程: 建 筑物形状分析、 建筑物分类和纹理贴图处理 12 。 3 1建筑物形状分析 建筑模型屋顶建模难度较大, 因为屋顶的形状各 有不同, 都是由一些简单的几何体组成, 因此可总结出 该区域建筑物屋顶的大体几何体模型如图 2 所示。 图 2屋顶几何模型 3 2三维模型分类 为了便于系统模型和场景的建立, 对场景和建筑 物进行了分区, 在建模过程中可以方便建筑物与场景 地形坐标进行对应, 同时也方便多场景的集成。具体 分区如图 3 所示。 图 3三维模型分类 3 3纹理贴图处理 为了保证模型的高精度和高质量, 在建模之前必 须要确定各模型的材质, 因此首先用相机拍摄一系列 的照片来提取材质, 建模过程中进行纹理贴图和实体 对比 13 。具体流程如图 4 所示。 4实现方法 本系统的业务逻辑处理用 C#、 Javascript 技术实 现, 使用 Unity3D 引擎开发平台进行开发。实现中最 主要的技术是: 场景漫游技术、 物理效应仿真技术和场 景切换技术 14 。 4 1场景漫游技术 场景漫游技术主要包括键盘控制和鼠标控制, 能 让用户在虚拟城市系统中前后左右任意方向行走。同 时能控制运动的速度。内容描述如下: var MoveSpeed = 5; var RotateSpeed = 20; function Update ( ) if( Input GetKey( KeyCode W) ) 242计算机技术与发展第 23 卷 this Translate( forward* deltaTime* MoveSpeed) ; else if( Input GetKey( KeyCode S) ) this Translate( forward* deltaTime* MoveSpeed) ; else if( Input GetKey( KeyCode A) ) this Rotate( up* Time deltaTime* RotateSpeed) ; else if( Input GetKey( KeyCode D) ) this Rotate( up* Time deltaTime* RotateSpeed) ; 图 4纹理贴图处理过程 该段代码实现的功能就是按键盘上面的 W、 S、 A、 D 键 能 实 现 前 后 左 右 的 移 动。先 定 义 两 个 变 量 MoveSpeed( 移动速度) 和 RotateSpeed( 旋转速度) , 接 下来进入函数入口 Update, 如果按 W 键时程序就回运 行 forward* deltaTime* MoveSpeed; 也就是摄像机向前 移动 MoveSpeed, 因为 MoveSpeed 的初始值为 5, 所以 移动的速度为 5, 以此类推, 当按下 S 键的时候, 程序 运行 forward* deltaTime* MoveSpeed, 这时运动的方 向为一个负值所以表现出来的就是往后退。速度也为 5; 当按下 A 键时程序运 行 up * deltaTime * Ro- tateSpeed 此时摄像机会往左边旋转, 其旋转速度为 20; 当按下 D 键时程序运行 up *deltaTime * Ro- tateSpeed 此时摄像机会往右边旋转, 其旋转速度为 20。 42物理效应仿真技术 本系统中物理效应仿真技术主要是实现动画场景 的仿真, 动画仿真技术包括水池波浪仿真、 重力仿真 等。内容描述如下( 对水池波浪仿真的描述) : Vector4 waveSpeed = mat GetVector(“WaveSpeed“ ) ; float waveScale = mat GetFloat(“_WaveScale“ ) ; float t = Time time / 200f; Vector4 offset4 = waveSpeed *( t *waveScale) ; Vector4 Clamp=new Vector4( Mathf Repeat( offset4 x, 1 0f) , Mathf Repeat( offset4 y, 1 0f) ,Mathf Repeat( offset4 z, 1 0f) , Mathf Repeat( offset4 w, 10f) ) ; mat SetVector(“_WaveOffset“,offsetClamped ) ; Vector3 scale = new Vector3(1 0f/waveScale,1 0f/waveS- cale, 1 ) ; Matrix4x4 Matrix = Matrix4x4 TRS( new Vector3 ( Clamp x, Clamped y, 0) ,Quaternion identity,scale ) ; mat SetMatrix(“_WaveMatrix“,scrollMatrix ) ; Matrix= Matrix4x4 TRS( new Vector3 ( Clamp z,Clamp w, 0) ,Quaternion identity,scale *045f ) ; mat SetMatrix(“_WaveMatrix2“,scrollMatrix ) ; 该代码调用了 Unity3D 引擎中的一些动态函数功 能进行实现, Vector3、Vector4、 Matrix4x4 为 Unity3D 中 提供的一些类型, 用于实现实体效果。设置水波的移 动速度随着时间的变化随机变换公式 float t = Time time / 20 0f, 通过多次实验, 设置成 20, 水面产生流动 和波浪效果使得更生动真实。 4 3场景切换技术 虚拟现实技术的主要目标之一是允许用户以尽可 能自然的方式与虚拟世界物体直接交互。若要实现自 然、 精确的人机交互, 就必须解决碰撞等问题, 相机加 入碰撞能更好地解决模型的穿插问题。本系统中采用 了相机切换技术实现了多个不同场景间的切换。 内容描述如下: var guiskin :GUISkin;/ /定义 GUI var cam1 :Camera; / /定义相机 var cam2 :Camera; function OnGUI( ) / /调用函数 GUI GUI skin = guiskin; if( GUI Button( Rect( 20, 0, 100, 50) , “CAM1“, “button1“) ) cam1 enabled = true; cam2 enabled = false; / /按钮事件, 点击按钮进入相机一 else if ( GUI Button ( Rect ( 120, 0, 100, 50) , “ CAM2“, “ button9“) ) cam1 enabled = false; cam2 enabled = true;/ /点击按钮进入相机二 else if ( GUI Button ( Rect ( 120, 0, 100, 50) , “ CAM3“, “ button9“) ) cam1 enabled = false; cam2 enabled = true;/ /点击按钮进入相机三 该段代码主要实现了场景切换的功能, 主要利用 javascript 脚本编写。一个场景中设定两个相机这样才 不显得那么单调, 先建两个 button, 一个 button 控制相 机一, 另一个控制相机二, 依次类推所有场景中都要建 342第 4 期王星捷等: 基于 Unity3D 平台的三维虚拟城市研究与应用 立两个 button 和两个摄像机, 一个摄像机自由浏览场 景, 另一个相机控制路径浏览模式。 5系统实验与分析 采用上述的设计思想和实现方法, 实现了基于 U- nity3D 的三维虚拟城市系统。其中图 5 为采用物理效 应技术实现的虚拟系统中人工湖波浪的虚拟动态效 果, 从图中可以看出实现效果逼真, 整个画面真实度 高; 图 6 为系统中学校场景的虚拟, 通过 Unity3D 技术 将导入的三维模型进行程序实现, 场景漫游功能, 从图 中可以看出效果真实, 画质精度高; 图 5 和图 6 两个场 景间的切换采用了 Unity3D 的相机技术, 场景切换实 现效果较好, 满足了用户的需求。通过实验, 采用 Uni- ty3D 技术实现的三维虚拟城市系统, 运行效果好, 真 实度高, 其制作过程相对简单化, 可以方便利用 Uni- ty3D 里的物理效应技术、 相机切换技术等进行二次开 发的实现, 能实现多种丰富的物理动画效果, 其真实仿 真度高; 同时该系统三维漫游功能强大, 可以在此基础 上进行二次开发, 实现各种效果的漫游功能, 能满足用 户不同的需求。 图 5人工湖中的波浪效果 图 6学校虚拟场景 6结束语 利用 Unity3D 技术与 C#、 Javascript 进行结合, 实 现的三维虚拟城市系统为三维虚拟城市实现技术提供 了一种新的技术方法。在这种实现技术下, 可以在 U- nity3D 中实现 GUI 界面生成、 地形的生成和一系列的 物理效应, 如声音、 水流、 风力。还有自动漫游、 手动漫 游、 场景的切换等功能。同时提高了实现的速度并能 满足用户视觉上的多种需求。文中研究了采用 Uni- ty3D 的技术来实现三维虚拟城市, 在分析了三维模型 数据、 地理地形和纹理模型的基础上, 通过扩展 Uni- ty3D 的物理效应、 漫游技术和场景切换等技术, 最后 通过 Unity3D 平台进行系统生成输出显示系统, 整个 系统运行情况较好, 内容丰富、 真实感强。取得了较好 的仿真效果。 参考文献: 1 韩飞 面向虚拟环境的三维地形生成方法 J 计算机工 程, 2010( 10) : 261263 2 苏红军, 盛业华, 温永宁, 等 面向虚拟地理环境的多源异 构数据集成方法J 地球信息科学学报, 2009( 6) : 292 298 3 邓志红, 老松杨, 张国华 基于三维 GIS 的导弹预警视景仿 真系统实现 J 计算机仿真, 2010( 4) : 4044 4 陈阿林, 胡朝晖, 祁相志 校园虚拟现实三维场景建模技术 及实现方法研究 J 重庆师范大学学报( 自然科学版) , 2007( 10) : 14 5李昌国, 张晓林, 谭良, 等 基于 GIS 和 VIRTOOLS 技术 的虚拟校园漫游开发方法的研究 J 计算机工程与设计, 2007( 7) : 32233226 6 刘航, 王积忠, 王春水 虚拟校园三维仿真系统关键技术 研究 J 计算机工程与设计, 2007( 6) : 29342936 7陈曼, 盛业华, 温永宁, 等 虚拟地理环境三维可视化系 统构建 J 系统仿真学报, 2008( 10) : 51055108 8 吕智涵, 马瑞娜, 房经宝, 等 WebGIS 中多维空间数据多尺 度表达索引结构J 计算机应用研究, 2010( 9) : 3395 3402 9 朱庆, 高玉荣, 危拥军 GIS 中三维模型的设计 J 武汉 大学学报( 信息科学版) , 2003, 28( 3) : 283287 10 Museth K,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论