osgEarth波士顿城市建筑生成案例 3. boston_buildings.earth

osgEarth波士顿城市建筑生成案例3. boston_buildings.earth


1) 案例概述

波士顿城市建筑矢量生成模型案例。

案例以readymap影像为基础底图。

2) 软件环境

osgEarth:官方代码库2017.11.09最新代码地址:www.github.com/gwaldron/osgearth

osgEarth编辑器:SXEarth2.8及以上,下载地址:www.sxsim.com

3) 硬件环境

本文编写和案例测试使用的硬件环境:CPU: i5四核,显卡:GTX660,内存:8GB。

(推荐使用英伟达显卡,intel显卡,会出现三维场景中文字显示不全的问题,笔记本双显卡,需要切换到独显。)

4) 编辑测试

在左侧“场景面板”,在“位置列表”双击其中任意项,进入波士顿城。显示如下图。

5) 建筑配置

a) 矢量层属性:在左侧“场景面板”,选中“buildings”矢量层,在右侧“属性面板”显示属性信息。

b) 矢量文件:“属性面板”的“要素集”组,可以看到使用的矢量文件“路径”为:“../data/boston_buildings_utm19.shp”,配置了一个utm投影的建筑矢量文件。

c) 布局的作用:用于配置矢量的显示范围,切块大小。实现矢量的异步分块加载,提高加载效率,如果不配置布局,整个城市模型一次性计算,不能异步,会卡住主场景,不能操作,所以建议尽可能使用布局。

d) 布局参数:buildings”图层的属性“布局”组,“切片大小因子”为45,“最大显示范围”为20000.0,那么切片大小是多少呢?

i. 切块大小 =最大显示范围/切片大小因子,20000.0/45,切片大小444.4米。

ii. “布局”项,右键单击,弹出的菜单选择“切片大小”,配置为444.4,这里等同于切块大小因子45。需要注意的是切片大小,指的是切片的半径。

iii. 层级:布局可以定义多个层级,右键单击“层级”项,有“样式”、“最小范围”、“最大范围”,配合样式,可以定义不同层级,不同的显示样式,参见案例feature_levels_and_selectors.earth

e) 样式:“样式”包含三个“子样式”,分别是“buildings”、“building-wall”和“building-rooftop”,配置了建筑的高度、侧面纹理、顶面纹理等。

f) 皮肤-库:建筑的侧面和顶面纹理,引用了“皮肤-库”,也就是纹理库配置文件,“库”属性的“路径”为“../data/resources/textures_us/catalog.xml”。编辑该纹理xml库及对应的图片库,可以创建不同的建筑效果。