Page 62 - 电力与能源2023年第三期
P. 62
256 王志科,等:大规模城市场景数据在 Unity 3D 中加载及渲染技术的应用
CRS 为 EPSG:3857 后点击确定,即可完成建筑数 可以进行城市建筑模型的构建。
据坐标系统的转换。 1.3 城市建筑白模生成
1.2.2 城市建筑面融合与分离 通过三维建模工具,可以生成城市建筑模型,
城市建筑轮廓基础数据中会出现建筑面被错 再使用 Blender GIS 插件完成城市建筑白模的快
误切分的情况,若不对数据进行处理,则会出现生 速生成。Blender 是一款免费开源的三维图形图
成模型后一栋楼被拆分为多个的情况。这样不仅 像处理软件,提供了从建模、动画、材质、渲染到音
不符合实际情况,而且会增加生成建筑模型的三 频处理、视频裁剪等一系列的数据处理解决方案。
角形顶点数和面数,增大了三维场景渲染的压力, Blender GIS 是 Blender 中的一款插件,提供了 GIS
因此在生成建筑模型之前需要先将出现问题的数 数据文件的导入,支持大多数公共 GIS 数据格式,
据进行处理。处理方法为将具有相同楼层数并相 如:Shapefile 矢量数据、光栅图像、GeoTiff DEM、
交的建筑面融合,并将不相交的建筑面分离开。 OpenStreetMap xml 等。
因 此 ,需 要 对 建 筑 轮 廓 数 据 进 行 融 合 与 分 离 的 使 用 Blende GIS 导 入 工 具 中 的 Shapefile 导
操作。 入功能,选择处理后的 Shapefile 文件,导入数据类
ArcGIS 或 QGIS 软件提供了矢量数据融合 型选择几何数据,扩展字段选择基面(向下取整),
处理的工具,数据融合算法采用的是矢量图层,并 其他保持默认,点击确定,等待处理完成即可。导
将其要素组合成新的要素。可以指定一个或多个 入的一个 Shapefile 文件,会生成一个对象节点的
属性融合于同一类的要素,也可以将所有的要素 城市建筑模型,若要将城市建筑单体分开,需要在
融合为单个要素。融合过程中所输出的几何图形 导入时勾选分割对象。
都将转换为多个几何图形,如果输入的是多边形 城 市 建 筑 模 型 导 入 后 ,默 认 的 楼 层 高 度 是
图层,将擦除被融合的邻接多边形的公共边界。 1 m,故需要对建筑的高度进行调整,通过模型对
融合过程中,启用“将不可相交的要素分开”,可在 象变换中的缩放,调整 Z 轴缩放为单层楼房的高
融合后将不相交的建筑面进行分离 。 度即可。
[1]
1.2.3 建筑轮廓数据边界处理 1.4 城市建筑模型处理
将建筑轮廓数据融合、分离处理完成后,需要 城市建筑白模生成后,还需要对楼的模型进
进行数据渲染将数据拆分处理。本次数据处理中 行侧面贴材质和顶面贴材质处理,由于生成模型
可以根据行政边界将建筑轮廓数据进行分割处 时整个城市为单独的一个对象,因此在模型处理
理。数据边界处理方法为相交处理,相交算法是 时需要将模型进行拆分处理,将建筑模型的楼顶
提取输入图层和叠加图层中矢量要素的重叠部 面和楼体侧面分离,然后再在分离后的模型上进
[1]
分,输出相交图层中的要素及属性信息 。 行贴纹理等操作。
将城市建筑轮廓数据导入 QGIS 软件中,并 1.4.1 城市建筑模型面分离
将上海各个区县行政边界也同时导入其中。选取 由于生成的城市建筑白模属于同一个对象,
地理处理工具中的相交功能,在相交功能里选择 在三维建模软件中不能单独选取进行操作,需要
建筑轮廓数据图层为输入图层,选择行政边界图 将建筑模型的顶面与侧面进行分离。通过分析,
层作为叠加图层,选取需要保留的属性字段后,点 只需要将建筑模型的顶面单独提取拆分出来,即
击运行,执行完成后即可将建筑轮廓和区域边界 可以实现顶面与侧面的分离工作,在 Blender 工具
融合。 中,可在编辑模式下选取一个面或多个面,但如果
使用分割矢量图层的功能,选取上一步处理 操作方法不当,会导致选取的顶面不全或者选取
过的模型,通过区域边界中的区县字段进行分割, 的侧面不对。研究发现,所有的顶面都拥有相同
分割完成后,输出各个区段的 Shapefile 文件,随后 的法向量,通过在场景中选取一个建筑的顶面,然