SketchUp构建GIS三维模型方法研究 (1)
2009-02-25 15:25:29 作者:网络搜集 来源:网络搜集 文字大小:【大】【中】【小】
摘 要 Google SketchUp软件是智能化建模系统的工具集合,简化了建模工作。通过对SketchUp中三维模型创建及在传统GIS软件中的应用方法研究可大大减少和丰富3DGIS中三维建模的工作量。本文从SketchUp的建模技术 ...
摘 要 Google SketchUp软件是智能化建模系统的工具集合,简化了建模工作。通过对SketchUp中三维模型创建及在传统GIS软件中的应用方法研究可大大减少和丰富3DGIS中三维建模的工作量。本文从SketchUp的建模技术、各地理要素的建模方法以及模型应用于GIS的方法等入手讨论SketchUp中数据转换方法,以将这一可视化工具与GIS软件结合起来,为3DGIS服务。
关键词 3DGIS;Google SketchUp;建模
1 引言
三维地理信息系统(3DGIS)是当今GIS发展的一个新趋势,相比于二维GIS,对客观世界的表达能给人以更真实的感受,它以立体造型技术展现地理空间现象,不仅能表达空间对象间的平面关系,而且能描述和表达它们之间的垂向关系。
专业的GIS软件侧重于强大的空间分析功能,三维可视化功能相对薄弱;而专业的建模软件,如MultiGen Creator、3ds Max、Maya、SketchUp等,与之恰恰相反[1,2]。
Google SketchUp是由Google公司于2006年推出。它是一套直接面向设计方案创作过程的设计工具集合,简单易学,完全避免了其它设计软件的复杂性;可以直接为表面赋予材质、贴图,使得设计过程的交流完全可行;与Google Earth有机结合,能够免费利用GoogleEarth的地形和影像数据等[3-5]。
本文研究SketchUp中各地理要素的三维构建及其在GIS软件中的如何应用。
2 SketchUP的三维建模方法
2.1几何建模方法
要建立真实的三维场景,准确的几何建模是必不可少的。SketchUp可以通过用户交互地设置和输入数值很好地控制几何精度,在3DGIS中这一点非常关键。GIS中地理要素分为地形要素、点状要素、线状要素、面状要素,下面分别针对每种要素的建模方法进行讨论。
2.1.1 三维地形建模
要实现三维景观的比较真实的虚拟,对于起伏大的地区,地形的三维构建十分重要。SketcUp中的扩展工具栏---沙盒(SandBox)能实现创建类似TIN(不规则三角网)的地形。
地形的创建通常有五种方式:①引入已有的等高线或手动创建具有不同高度的等高线,用From Contours直接生成;②导入目标区域的图像或等高线地图,使用Freehand工具跟踪绘制等高线,然后调整所绘等高线到合适的高度位置,采用同上的方法生成三维地形;③从外部导入DTM文件(USGS DEM或SDTS格式)创建;④利用SketchUp6 ESRI插件,从ArcGIS软件中导入TIN数据创建;⑤使用From Scratch工具绘制网格地形,在网格地形的基础上拉伸生成起伏的效果。根据已有数据的种类和要表达地形的精确度选择合适的建模方式,前四种创建的地形比较精确,如果侧重于表达大体的地形空间意向,第五种方式就可满足需要[6]。
2.1.2点状要素建模
地理环境中,行道树、路灯、垃圾桶等往往被抽象成点状要素。路灯和垃圾桶等具有规则的几何形状,与面状要素的建模类似。而树木的建模相对来讲比较困难。其它的建模软件如MultiGen Creator采用BillBoard技术对树木建模,将树木抽象成两个交叉的十字面,通过透明贴图来模拟,效果不是很理想。SketchUp中通过Freehand工具能够实现树木的精确建模(如图1所示)。另外,网络上有丰富的skp格式的树模型资源,常见的树种可以免费下载直接或稍加编辑后使用。
图1 SketchUp所建的树模型
2.1.3 线状要素建模
线状要素包括河流、航线、道路等要素,建模时认为这些线要素是具有一定面积的立体面,需要依据实际宽度进行扩展。对于位于起伏地形上的道路建模,使用Sandbox工具栏中的Drape工具,便可实现平面道路到起伏地形曲面的投影[7]。与道路不尽相同的是,河流一般低于周围地形。这时需要沿Z轴反向拉伸。
2.1.4 面状要素建模
地理环境中的建筑物、草坪、空旷的场地等通常以面状要素表示,具有面积、周长等特征。以建筑物建模为例,模型的创建是在确定了底面的基础上,通过挤压或拉伸底面,绘制屋顶等步骤实现。构建过程中可自动捕捉线条及其特征
SketchUp构建GIS三维模型方法研究 (2)
2009-02-25 15:25:29 作者:网络搜集 来源:网络搜集 文字大小:【大】【中】【小】
摘 要 Google SketchUp软件是智能化建模系统的工具集合,简化了建模工作。通过对SketchUp中三维模型创建及在传统GIS软件中的应用方法研究可大大减少和丰富3DGIS中三维建模的工作量。本文从SketchUp的建模技术 ...
,对建筑物进行精确建模。
图2中的建筑物模型,首先利用导入的遥感图片作为参照,勾勒出底面,再将面沿竖直方向向上拉伸(拉伸高度值可交互输入),得到建筑物的粗糙框架,在此基础上对细部进行调整,包括柱子、门、窗户等的绘制。最后对各部分贴上对应的纹理图片实现真实模拟。本例中所用图片均是由数码相机实际拍摄的jpg格式照片,用PhotoShop软件处理所得。
图2 华师大大学生活动中心实体景观图
2.2 纹理映射技术
纹理映射技术在建模过程中起着十分重要的作用,一方面能增强模型的逼真度,同时也有利于模型的简化和减少多边形面,这对应用程序的实时性是十分重要的。
SketchUp提供了强大的纹理映射功能。按照使用需要,贴图分为三种:普通贴图、包裹贴图、投影贴图。
普通贴图是最普遍的,即为平面赋予材质,贴图单元在此平面上可以重复n次,也可以比平面大,主要通过调整贴图坐标来实现。如图5中的建筑物大多采用这一方式。
包裹贴图类似于一个盒子进行外包装。需要先给一个平面赋予贴图,用贴图坐标将大小位置调整好,再用吸管将此材质赋予其它面,实现贴图的无缝拼接。
投影贴图主要用于对曲面进行纹理映射,如起伏的地形、圆形或弧形的建筑物及其细部等。实现贴近真实和过度自然的效果(如图3所示)。
SketchUp支持的纹理图片格式包括JPG、BMP、TIF,PNG等。其中PNG格式的图片带有Alpha通道,即我们常说的透明贴图。为减小数据量,其它图片一般保存为jpg格式,并且最大不超过100KB[8]
SketchUp中贴图的另一独特之处为根据材质可以计算出某种对象的面积[6,7]。。
2.3 建模过程中应注意的问题
利用SketchUp对地理要素进行建模过程中应注意以下几个问题:
(1)应选择正确的坐标系,也可导入CAD数据或通过SketchUp6 ESRI插件导入shp格式的二维矢量数据,在此基础上直接建模;或者导入遥感或航空像片作为参照创建模型。总之,创建的三维模型应该有与GIS一致的坐标。
(2)大范围三维场景建立时,所建模型数据量不能太大,否则会影响运行速度。尽可能地简化模型,减少边和面的数量;尽量用纹理图片来代替模型细部;纹理图片的分辨率不宜太高,最大不超过100KB。
3 三维模型应用于GIS中的方法
SketchUp三维模型在GIS中的应用有两个方面:一是作为三维符号;二是作为三维模型。以ArcGIS为例具体探讨。
3.1 作为三维符号应用
ArcGIS支持*.skp格式三维模型作为三维标注符号(3D Maker Symbol)对点、线、多边形三类地图数据进行显示。显示时,如果用于表示的地物是多边形,还需通过旋转、放大、缩小、平移等操作将符号调整到合适位置。此时,模型仅作为图形显示,并不能对其进行分析等操作。
3.2 作为三维模型应用
*.skp模型作为三维模型应用主要是转换为ArcGIS支持的三维模型格式三维数据格式-----Multipatch,然后在ArcScene中直接加载加以应用。转换方法有两种:
3.2.1 通过ArcObject开发实现
示例代码如下
SketchUp构建GIS三维模型方法研究 (3)
2009-02-25 15:25:29 作者:网络搜集 来源:网络搜集 文字大小:【大】【中】【小】
摘 要 Google SketchUp软件是智能化建模系统的工具集合,简化了建模工作。通过对SketchUp中三维模型创建及在传统GIS软件中的应用方法研究可大大减少和丰富3DGIS中三维建模的工作量。本文从SketchUp的建模技术 ...
:
Dim p3DF As IImport3DFile
Set p3DF=New Import3DFile
/*定义sPath存放已有三维模型的存储路径,创建一个新的FeatureClass,其Shape类型为新的记录(pFeatureBuffer)*/
If p3DF.IsValidFile(sPath)Then
p3DF.CreateFromFile sPath
Dim pGeom As IGeometry
Set pGeom=p3DF.Geometry
End If
Set pFeatureBuffer.Shape=pGeom
IImport3DFile这个接口目前对*.skp模型是支持的,通过此方法可以将模型转换为Multipatch,存储在GeoDatabse中,并可对其进行进一步的分析[9]。
3.2.2 利用SketchUp6 ESRI插件转换
SketchUpESRI插件是专门为ArcGIS结合推出的。包括两部分:GIS Plugin和3D Analyst SketchUp 3D Symbol Support,需要将这两部分分别装在SU和ArcGIS的安装目录下。二者交互操作的流程为:ArcMap中加载并导出矢量数据;SketchUp中三维建模;SketchUp模型转换成Multipatch数据;对模型进行编辑、分析等操作。具体路线与涉及到的软件和数据如图4所示。
由于SketchUp中的一个Group对应ArcGIS中的一个Multipatch,因此转换过程应根据3DGIS的需要设置Group[10]。
以建筑物为例,如果对整栋建筑物进行编辑和分析,则按整栋为整体设置成一个Group;如果需要对楼层进行查询,则应以楼层为整体设置成Group,转为对应的Multipatch。
4 结语
SketchUp在建模方面有很多优势,并且与ArcGIS等GIS软件平台能够很好地结合,但是它缺乏其它专业建模软件中的一些高级技术,如LOD,mipmap、BSP、OCTREE、occlusion等技术[2-3],势必会增加空间存储,因此如何减少数据量,更好地为3DGIS服务成为今后研究的一个方向。