1、“电子地图”技术方案一 技术路线C A D 2 0 0 4 二维地 形底图S K E T C H U P 7 . 0S K Y L I N E A R C S C E N C E 9 . 3制作三维模型纹理:真实、虚 拟分层:居民地, 医院、 办公楼,绿 化,运 动场,花园V R P ,虚拟现实 A r c M a p 矢量化查询 网 络发布3 D M A X 9 . 0灯光:摄像机: 纹理( 透明)二 基础软件1、autoCAD2004 软件 AutoCAD2004 是美国 Autodesk 公司 03 年开发通用计算机辅助绘图与设计的软件。具有易于掌握、使用方便、体系结构开放等特点,广泛应
2、用于机械、建筑、电子、航天、造船、石油化工、土木工程、冶金、农业、气象、纺织、轻工业等领域 。本方案主要用于:制作地形图草图2、SKETCHUP 7.0SketchUp 7 是直接面向设计过程而开发的三维绘图软件,操作简单,功能强大。本书从实际应用的角度出发,图文并茂地介绍了 SketchUp 7 在建筑装饰设计领域中的广泛应用。本方案主要用于:建立三维模型3、3dMAX 9.03D Studio Max,常简称为 3ds Max 或 MAX,是 Autodesk 公司开发的基于PC 系统的三维动画渲染和制作软件。其前身是基于 DOS 操作系统的 3D Studio系列软件,最新版本是 201
3、2。在 Windows NT 出现以前,工业级的 CG 制作被SGI 图形工作站所垄断。3D Studio Max + Windows NT 组合的出现一下子降低了CG 制作的门槛,首选开始运用在电脑游戏中的动画制作,后更进一步开始参与影视片的特效制作,例如 X 战警 II,最后的武士等。本方案主要用于:进行渲染4、PS8.0photoshop 是 Adobe 公司旗下最为出名的图像处理软件之一。多数人对于PHOTOSHOP 的了解仅限于 “一个很好的图像编辑软件”,并不知道它的诸多应用方面,实际上,PHOTOSHOP 的应用领域很广泛,在 图像、图形、文字、视频、出版各方面都有涉及。本方案主
4、要用于:拼接成图5、ARCGIS10ARCGIS10代表了 ArcGIS 最新最主要的所有产品,将于 2010 年夏季发布,目的就是为了帮助用户提高 GIS 工作效率。 更快,更准的绘图性能,包括平滑,连续的数据平移 更轻松地访问最常用的 geoprocessing 工具等等,本方案主要用于:矢量化、配准、查询三 制作过程3.1、三维建模1、初始建模采用 sketchup(这里主要用 sketchup7.1 版本),在软件中要对模型逐面进行合理的处理,最好使正面面向我们所要观察的一面,另外尽量将已经没用的辅助面或辅助线删除,以免出现重面重线的情况。图 1 白面为正面,灰面、蓝面为反面2、在建模
5、时,对于同样的模型最好建立组件,进行统一命名,以便在将来进行修改,删除,添加方便操作。3、在 sketchup 中建好模之后,选中模型,文件导出3D 模型,导出格式为 3ds 格式,注意设置好模型的单位,再导入导出时,单位要统一。(1)二者的单位应设置一致,分别在 CAD 中的选项设置单位为米,导入到 sketchup 中时在导入对话框中设置单位为米,选择面一致即可导入,最后在软件中设置单位。(2)建立模型时,参照 CASS 图形以及注记信息进行建模。先将线连接成面,遇到被打断的可根据实际情况进行修改,构不成面的可检查是否有交叉的线或点。(3)构建模型时,若分层可拉起一层后按 ctrl 键,然
6、后再向上拉起所要的高度,在此次建模中对于一般建模可直接按每层 3 米的高度一次建模。(4)问题是在起初建模时没考虑到模型转换时的问题,直接将大片的建筑物、绿地、道路以及其它模型全部未分层,这导致了后来转换时出现的麻烦问题。解决方法:将各个独立的实体分别进行群组,然后导入到 ArcGIS 数据库中。经验:建模时分层建立,然后将每个实体直接进行群组,这样就避免了这种麻烦的事情。(5)贴图问题,本次试验是用的 3dmax 的素材库,其实 Sktchup 本身也有自己的模型库和材质库,可以考虑在接下来的具体项目中应用这些,也可以利用它本身的材质生成器做素材库。另外实际纹理应在 PS 中进行处理后使用,
7、以保证其真实性。3.2、 渲染出图4、导出的 3ds 文件将在 3DMAX 中导入,导入后原来的纹理会丢失,这时候需要重新吸纹理。其步骤为:首先选取模型,将模型右键点击转换为可编辑多边形,选取面操作,点选一个面图 2 选取面 图 3 吸管工具按快捷键 M 打开材质球,选择吸管工具,移动到所选的面点击一下之后就会出现纹理图的图名称(如下图 4 中的-75) ,点击 Diffuse 右边的 M弹出如图 5 所示的对话框图 4 吸取纹理 图 5 找回纹理点击图 5 的 Bitmap,会弹出一个对话框图 6 错误信息点击确定,找到图片文件所在文件,选取后打开(如图 7)图 7 找回图片 图 8 重新附
8、图找回图片后,将图片重新赋给所选面即可。 【配置用户路径】-【外部文件】5、将所有模型都找回纹理后,就可以添加灯光,摄影机,调整好角度和灯光参数后就可以进行渲染。图 9 灯光阴影设置要使渲染的图具有阴影效果,需要将修改面板中的 Light Type 的 On前面打对勾,并选择高级阴影追踪(Ady Ray Traced) 。要想得到一幅较好的渲染图,需要进行反复的调试和参数修改。6、由于整个图区分成了几块,并且分开渲染,最后需要将所有分开渲染的图进行配准整合,在这个过程中可以将图区的 CAD 底图作为参考进行配准,拥有不错的效果。3.32.5 维数据查询7、打开 Arcmap,加载 jpg 格式
9、的 2.5 维图、shp 图(由 CAD 底图转化而来) 、新的图层(用来做矢量化的图层) ;图 10 新 建 图 层新建图层在 ArcCatalog 中建立,选择你要建立的文件路径。按照图示方法打开新建图层对话框,输入新图层的名称以及图层形式(点、线或面),点击 OK 就可以建立新图层。图 11 加载数据8、将 2.5 维图与 shp 图进行配准,配准后关闭 shp 图,打开新建图层,参考配准后的 2.5 维图进行矢量化;图 12 配 准 图 13 配 准 两 点 后图 14 矢量工具 图 15 矢量化9、为矢量化的图添加属性,并且当鼠标移到目标区域可以显示相关信息。图 16 打开属性面板
10、图 17 添加属性图 18 显示属性 图 19 显示名称以上是在 ArcGIS9.3 中的展示,在 ArcGIS9.3 中只能显示一个属性,如果需要显示多个属性,则可以在 ArcGIS10.0 中文版中进行相应的编辑。 3.4 三维电子沙盘10、所需环境:sketchup +ArcGIS( 主要是 Arcscene)+Photoshop11、根据外业测量的 CAD 图形,对其进行清理分区。必须删除重复实体、清理未使用的图层(命令 purge) 、删除带有高程的线段、绘制断开的闭合体,以便导入到后期软件时方便建模。12、将 CAD 图形导入到 ArcGIS 中建立 shp 格式文件。Toolbo
11、xconversion toolsto geodatabaseimport from CAD然后再将其 geodatabase 中的 area 要素转换成 shpe 文件定坐标Toolboxconversion toolsto shapefilefeatures class to shapefile 即可13、将 shp 图形导入 Sktchup 软件中进行建模。需要用到 sktchup esri 插件,具体安装略去。主要是进行坐标定位。然后直接建模贴图。14、数据转换,基于 sketchup 与 ArcGIS 软件进行数据交互。(1)首先在 Arccatalog 新建 New Persona
12、l Geodatabase.mdb,在个人数据库中新建各个要素类别,坐标系选择部件坐标系。要素分类以及属性表制作。(2)将 sketchup 中做好的群组直接分类导入到新建的数据库中按类导入,这样就能解决导入时繁琐的工作量问题,大大提高了效率。转换时选中要转换导出的组件,然后导出到数据库中,此时不需要考虑贴图模型库大小的问题(前提是将没用到的材质模型进行清除) ,另外分层建模时就不用考虑最后还要把 CAD 转换过来的线条删除,当然在shapefile 文件导出的也就不存在这个问题。(3)进行模型转换时曾想过将模型挨个导出,采取的方法是删除该实体周围的模型,此时出现的问题是材质库还是包含了所有的
13、材质,导致数据量较大,导出时特别耗时还容易死机,浪费时间。解决办法:按照(2)步骤解决;可问题是 ArcMAp 转换到 skp 中时会丢失一些块,这部分就要利用 CAD 图形进行补绘,确定坐标信息会有些偏差。(4) 、贴图缺失可能是软件兼容性,另外还有就是可能是材质模型与Arcscene 建立的模型没在一个目录下导致的,可通过实验进行验证15、部件数据,部件数据的三维符号化,叠加到 ArcScene 中查看。16、属性具体分类表,与需求链接,按实际情况进行调查分析17、可行性分析,主要是数据量大,能否运行的问题。可通过二次开发进行实现。三维符号的制作如路灯、井盖都可以采取三维模型3.5、VRP
14、 制作18、在 3dmax 中进行人,树和花草的添加树的形式分为两种: 十字交叉:在 3dmax 中建立一个单面,然后透明贴图,按住 shift 进行复制旋转。这样就做好了一个组,然后把组在 3dmax 中进行插件打碎,记住,打碎后在复制,要不,导入 3dmax 时候你复制的得一个一个打碎,比较麻烦。 单面贴图(随着视角旋转):建好一个面,要实现随视角旋转功能,必须对其进行特殊的命名,形如bb-11*,bb-22*,然后进行透明纹理贴图,记得打碎后再复制。 同理,人和花草的添加也可以使用单面贴图来实现。19、汽车的添加为了让建立的模型更逼真,我们可以添加一些汽车的模型,这样,就更形象逼真,3d
15、max 素材库中有汽车模型,我们可以直接通过 merge命令,直接导入进来。20、动态红旗和喷泉的设置在 3dmax 中安装 vrp 后,我们会发现它附带有 atx 动画编辑器,我们使用一组连续的图片进行动画的合成,然后按照普通的贴图方式就可以完成动态图片的显示,只不过我们不能看到效果,只能在 vrp 生成的 exe 文件播放的时候显示,所以为了检验动态图片的效果,我们可以进行小试验来事前检验。这样,红旗和喷泉就完成了。21、对模型的打碎处理对模型完善以后,接下来我们对模型进行打碎处理:加载小脚本 然后 Run Script点击优化材质,然后点选所要打碎的模型,之后在优化材质下面会出现三个数字
16、,当三个数字相同时,可以进行打碎操作。优化材质 打碎模型将模型打碎后导入 VRP 中就可以显示出纹理。22、导入到 vrp 检查错误在对模型进行打碎之后,我们就可以导入到 vrp 中(前提是我们必须安装 vrp 到 3dmax 的路径当中) 。,点斧子 点击 more,然后点击最后一项【vrplatform】, 点击导出进行场景保存。然后调入 vrp 编辑器重新打开保存的场景。这样就完成了模型从 3dmax 到 vrp 的导入。接下来我们还必须在 vrp 中对模型进行检查,破面,纹理,悬浮(比如树飘在空中)等等。查出有问题的地方,这些问题我们需要在 3dmax中进行修改。23 Vrp 使用帮助
17、Vrp 可以实现的功能小结:(共享版 8.0 对模型面数进行了限制 50 万以内)VRP 可以实现的主要功能有:自主漫游、飞行动画、行走动画、动态图片atx、各种人或事物动画、设置天空盒(背景) 、虚拟天气、虚拟阳光等;VRP 中需要设置碰撞,避免漫游时发生穿透模型,超出模型的情况;在 VRP 中也可以对模型的纹理颜色进行适当的处理,不必在 3Dmax 中再次修改。第一步:开启碰撞。选择物理碰撞 Ctrl+A,选择所有的模型,点击开启,成功开启碰撞后,我们的相机机器人在走动的时候碰到物体就会被挡住,不会出现穿越的现象。第二步,天空盒和太阳,点击天空盒,选择合适的天空背景,添加太阳,选择合适的角
18、度,一般须注意的是天空盒的太阳需要与添加的太阳重合,这样就不会出现天空两个太阳。第三步,添加相机,漫游与行走都是创建相应的机器人相机来实现。动画相机的录制,在点击动画相机后,按 F5,出现动画录制界面,按F11 进行动画录制,录制完成后按 F11 结束,保存。动画按钮的设置,在 ps 中制作好按钮的图案,然后选择编辑界面最终实现的界面如下然后进行贴图和事件的创建开始界面的设置选择运行,项目设置,选择介绍图片如下图所示音乐的添加,菜单栏脚本,脚本编辑器,选择系统函数,新建,单击窗口函数插入语句,在下面的音乐中选择音乐的来源,保存。完成后,点击文件,生成 exe 文件,即可完成。四 注意事项0、
19、从 简 数 据 , 体 现 效 率鉴于三维模型本身的数据量就较大,因此在实验中应尽量在保证模型真实的情况下减小数据量,可以用外业部件数据代替路灯、树木以及井盖等以此来保证运行速度。将所有的实体分成几大类:学校、医院、市政、交通、小区、独立建筑等。每一类可用一种贴图进行显示,查询时实现查询高亮显示。1、 VRP 可以实现的主要功能有:导入模型*.vrp( 注意必须在 3dmax 中安装 vrp软件,将 3dmax 格式导出 vrp 模型时候进行场景保存,然后重新在 vrp 编辑器中打开场景,否则,共享版不提供保存),自主漫游、飞行动画、行走动画、动态图片*.atx(这种动态显示也是在 vrp 动
20、态图片编辑器中进行编辑,主要以喷泉,飘动的红旗为主,还可以进行模拟电视播放画面)、各种人或事物动画、设置天空盒(背景) 、雾效,阳光光晕等;2、VRP 的制作是以 3Dmax 为基础,由 3Dmax 导出模型,为了制作一个效果良好的 VRP,需要在 3Dmax 中将模型进行一些错误检查和修改,确保模型不会出现破面、漏面,检查贴图情况,确保贴图准确;如果出现破面,必须就行面的修补,否则在 vrp 中会出现黑面或者透视情况。3、 VRP 中需要设置碰撞,我们可以 ctrl+A 选择全部的物体,然后开启碰撞,这样在漫游时就避免发生穿透模型,超出模型的情况;4、 在 VRP 中也可以对模型的纹理颜色明
21、暗度进行适当的处理,不必在photoshop 中修改色调。5、由于 vrp 8.0 共享版通过加密狗都面数进行了限制,我们在模型中的面数不能超过 50 万,否则,软件自不会加载多余的面。6、Vrp 的按钮可以自己在 ps 中制作成透明纹理,然后在 vrp 中进行按钮添加,设置图片,以透明显示,进行按钮功能的标注,事件的添加。这样就可以以按钮来实现相应的功能。7、在由 sketchup 导入 3Dmax 找回纹理后,再导入 VRP 时,要想让模型拥有纹理,需要在 3Dmax 中将模型一一打碎或者烘焙,打碎步骤为:选取要打碎的模型,然后点击菜单栏的 MAXScript 在其子菜单中找到 Run S
22、cript,然后选择小脚本(如图 11 中的小脚本) 。图 1 加载小脚本图 2 Run Script 图 3 小脚本 图 4 小脚本界面点击优化材质,然后点选所要打碎的模型,之后在优化材质下面会出现三个数字,当三个数字相同时,可以进行打碎操作。图 5 优化材质 图 6 打碎模型将模型打碎后导入 VRP 中就可以显示出纹理。8、若要使得模型在 VRP 中拥有阴影效果,就需要在 3Dmax 中对模型进行烘焙操作,烘焙就是将阴影效果以贴图的形式与模型结合在一起的过程。烘焙的过程及参数设置参考下图(所有操作均在 3Dmax8 中进行,按快捷键 0 进入烘焙界面):图 7 图 8 图 9至此就可以进行
23、简单的烘焙操作。9、3Dmax 中透明贴图的制作首先创建一个平面,将该面的段数均设置为 1(如图 19) ,将面规范命名(如图 20 所示 bb-00*,bb-11*),然后将该面转换为可编辑多边形,点选面,打开材质球,点选位面 bitmap,选择 png 格式的贴图,然后进入图 10 所示操作。图 10 设置段数 图 11 修改名称图 12 勾选红笔标志的两个框 图 13 图 13 所示步骤做完后,就可以将材质赋给所选面,得到的效果图如下所示。图 14 效果图如果要将透视图导入 VRP,也需进行打碎操作。10、PS 中动态图片 gif 的制作选择两幅或多幅图片,在 PS 中打开(这里用的是
24、PS cs3 版本) ,选择其中的一幅图为载体,将另一幅图移动到载体图中,这样载体就有 2 个图层(如图25) ,打开窗口动画(如图 26)图 15 移动复制图片图 16 图层 图 17 动画如图 26 将帧复制一个,点选第二帧,在图层中点掉与第一帧相同的图层,使俩帧显示不同的图层。图 18 显示单图层 图 19 存储设置好帧之后,再设置每帧的切换时间,之后就可以进行 gif 图的存储了。点击文件存储为 Web 和设备所用格式,选择默认设置进行存储即可得到一张动态 gif 图像。11、3Dmax 中简单动画制作先画一个 box 和一条线图 20 图 21建立一个虚拟体,如图 21图 22连接虚拟体与 box,连接时先选中 box,按住鼠标左键不放移动放置到虚拟体上,完成两者的链接。图 23接着在菜单栏中选择 AnimationConstraintsPath Constraint 将虚拟体链接到线上,最后点击播放按钮就可以观察到 box 的运动。图 24 图 2512、在 sketchup 模型导入到 arcsence 中时一定要分图层建模,然后每个模型进行群组后分层导出到相应的数据库中。此时为减小数据量建模不需要太精细,而且可以不要地面。