cesium 影像图层 ImageryLayer

cesium 影像图层 ImageryLayer,第1张

Cesium支持多种服务来源的高精度影像地图数据的加载和渲染。图层支持排序和透明混合。每个图层的亮度(brightness),对比度(contrast),gamma,hue,and saturation都可以动态修改。

可以在Viewer构造时传参进行设置

baseLayerPicker    底图图层控件显隐

imageryProviderViewModels  可选底图图组(baseLayerPicker:true)

terrainProviderViewModels  可选地形组(baseLayerPicker:true)

imageryProvider 底图设置(baseLayerPicker:false)

terrainProvider  地形设置(baseLayerPicker:false)

在地球构造后可通过viewersceneimageryLayers(ImageryLayerCollection类)来控制

Terrain 是Unity自带的地形编辑器工具。

在 Hierarchy面板 中右键-> 3D Object -> Terrain ,创建一个Terrain(地形)

同时会在 Assets 文件夹中创建一个默认名为 New Terrain 的文件, 用于保存 Terrain 的相关数据 。后缀为 " asset "

Settings 是 Terrain 的参数设置面板。

由于每一次改变地形,unity 默认都会自动生成光照贴图,导致性能减弱。

可以在 windows 菜单-> rendering -> lighting setting ->取消勾选最下面的 auto Generate

使用:

从调色板 Brushes 中选择一个画笔,然后单击左键并将其拖动到 Terrain对象上 以 提高地形高度 直到最大高度 Terrain Height 。在按住Shift键的同时单击左键并拖动以 降低地形高度 降低地形高度直到0。

使用:

使用“ Set Height” 工具绘画时,单击左键在 Terrain 上拖动,它将降低当前高于 目标高度 的地形区域,并升高低于 目标高度 的区域。

注意:

作用:

“ Smooth Height” 工具可以平均附近区域,使景观柔和并减少突然变化的外观;它不会显着提高或降低地形高度。

使用包含高频图案的画笔绘画后,平滑处理特别有用。这些笔刷图案倾向于将尖锐的锯齿状边缘引入到景观中,但是您可以使用 “Smooth Height” 工具来软化该粗糙度。

使用:

使用 “ Smooth Height” 工具绘画时,单击左键在 Terrain 上拖动,

作用:

使用 “Paint Texture” 工具将诸如草,雪或沙之类的 纹理 添加到 Terrain 中。它使我们可以将平铺纹理的区域直接绘制到 Terrain上 。在 Inspector 面板中,单击“ 绘制地形” 图标,然后选择从 “ Brushes ” 工具列表中 绘制纹理

使用:

注意:

作用:

选择工具后,Unity会突出显示所选“地形”图块周围的区域,指示您可以在其中放置新的连接图块的空间。

使用:

左键单击区域,将自动生成一片空白的 Terrain ,并在 Assets 文件夹中生成一个新的 assets 文件。

注意:

作用:

如果使用 “Brushes” 来创建自定义画笔,该 “纹理” 表示具有特定地质特征(例如山丘)的高度图,则 Stamp Terrain 很有用。

使用:

1使用 Stamp Terrain 工具,您可以选择现有的画笔并单击以选用它。在 Terrain 中每次单击都会引发 Terrain 中出现所选笔刷形状的 “ Stamp Height ” 。要将 Stamp Height 乘以百分比,请移动 Opacity 滑块以更改其值。例如, Stamp Height 为200, Opacity 为50%,则将每个 Stamp 的高度设置为100。

2 Max <–> Add 让我们选择是将 Stamp 的高度添加到地形的当前高度,还是取两者中的最大高度。

作用:

将树刷入到 Terrain 里面。

添加树:

点击 Edit Trees … -> Add Tree -> 选择

使用:

Settings:

作用:

一个 地形 可能有草丛和其他小物体(例如岩石)。用 Paint Details 来刷细节。

添加细节物体和草:

最初,地形没有可用的草或细节。在检查器中,单击“ 编辑细节”按钮以显示带有“ 添加草纹理”和“ 添加细节网格”选项的菜单。单击任一选项以打开一个窗口,您可以在其中选择资产以添加到地形以进行绘制。

使用:

添加窗口:

注意:

注意:

⚠️本文在cesium 1520下测试

cesium目前支持的格式有下面的两种地形格式,分别是:

在 heightmap 10 terrain format 说明页面上,官方明确指出这种格式已经废弃了,推荐使用 quantized-mesh ,关于两种格式的对比,推荐阅读 这篇文章 。

在Cesium 1520下测试, Cesium 还是支持 HeightMap 格式的,未来的Release版本有可能还会继续支持。

鉴于历史原因,项目之前一直使用 HeightMap ,最近才迁移成 Quantized-Mesh ,但构建离线的地形服务流程基本一致。

基本的构建流程为:

如果没有Docker环境,首先安装docker环境,建议安装Docker for Mac / Windows,不推荐使用Docker Toolbox。

这里以构建 Quantized-Mesh 为例,首先获取image。

在一个新的容器中执行。

合并tiffs,生成vrt文件。

创建一个terrain文件夹存储切割后的瓦片,运行ctb-tile生成瓦片,这个步骤可能时间较长,可以出去喝杯咖啡。

创建Cesium layerjson描述文件。

到此,cesium Quantized-Mesh 的地形瓦片就生成完毕。

最后在程序中使用:

注:使用Node编写server的时候,需要额外的header设置。

选取一个43的矩形区域作为数据源:

采用的流程都是先将上述12个tif合并成一个vrt文件,然后使用ctb-tile来进行切割。从最终得到的数据集的大小来看,Quantized-Mesh更节省空间,运行时会更节省内存:

效果对比:

在实际的开发过程中,基本上会用到上图所示的Cesium API中各个类,我们可以把它按照以下分类进行记忆。

imageryLayers 影像数据

terrainProvider 地形数据

dataSources 矢量数据

entities 几何实体集合(用于空间数据可视化)

Widgets 组件,即Viewer初始化界面上的组件

Camera 相机

Event 事件,鼠标事件、实体选中事件等

primitives 图元集合(几何体和外观)

postProcessStages 场景后期处理

环境对象,大气圈、天空盒、太阳、月亮等

Event事件,更新、渲染事件等

Camera类属性

位置、方位角、俯仰角、翻滚角

三维矩阵、四元数、四维矩阵、转换等

相对高度是指两个地点的绝对高度之差,即选某一指定参考平面为基准面,物体重心在空中距离指定参考平面的垂直距离。相对高度的起点是不固定的。

相对高度是什么及怎么算

相对高度算法

绝对高度就是从最高点到海平面的距离 例如海拔3000M 绝对高度就是3000米

相对高度就是改变了比较的参照物 例如a地海拔2000 b地3000 两地的相对高度就是1000米

专业解释:指两个地点的绝对高度之差。表示地面某个地点高出另一个地点的垂直距离,叫相对高度。相对高度的起点是不固定的。

相对高度最大值如何求

首先确定图中绝对高度(海拔)的两个极值,即最高海拔区域和最低海拔区域。最高海拔为500~600。最低海拔为200~300。交叉相减得出图中最高与最低的相对高度范围为200~400。也就是说:相对高度的最大值无限接近400(但不能等于400)。只要在200~400之间,且接近400的区间,如399~400、390~400都可以属于“相对高度最大值”。当然,要看选项如何给。

陡崖的相对高度算法

三条等高线重叠(看陡崖,两侧各有三条,到陡崖处成一条),所以n=3;等高距d=100

所以(n-1)×d≤△H<(n+1)×d即(3-1)×100≤△H<(3+1)×100

200≤△H<400

地理相对高度计算方法

例如山峰高出邻近河谷的高度,相对高度是地势起伏大小的指标:

例如甲山低于乙山的高度,(如:甲山100米,乙山50米,则乙山低于甲山50米)

相对高度是相邻两个地点的海拔差 。相对高度是指选某一指定参考平面为基准面,物体重心在空中距离指定参考平面的垂直距离;

常用领域:

在建筑规范中,相对高度指计算处的高度z与建筑物总高度H的比值,即z/H。

在地图中,人们观察两山之间的高度,人们常用等高线来表示地形的高低起伏。

以上就是关于cesium 影像图层 ImageryLayer全部的内容,包括:cesium 影像图层 ImageryLayer、10.Unity2018中的地形——Terrain(一)、build cesium offline terrain等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9757523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存