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 文件,随后                    的法向量,通过在场景中选取一个建筑的顶面,然
   57   58   59   60   61   62   63   64   65   66   67