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库及对应的图片库,可以创建不同的建筑效果。