目录
一、加载全球无高度地形
- 先去如下网址下载全球无高度地形:Using a global terrain layer without height detail - #9 by RidhwanAziz - Cesium for Unreal - Cesium Community
下载后如下:
解压后可以看到是一个.tif格式的文件
- 打开CesiumLab,需要将tif转为3DTiles。
点击"数据处理-》地形切片"
点击"添加"按钮,选择下载的tif文件
存储类型选择"散列",然后选择一个输出路径
点击"提交处理"
等待处理完成:
全部处理完后内容如下,可以看到包含两个.json格式的文件,其中"layer.json"是地形信息,"meta.json"是边界信息
- 打开UE,先添加一张地图
再添加"Cesium SunSky"和"Dynamic Pawn"
删除大纲中的"Cesium World Terrain"
删除后可以看到地球表面是光秃秃的
添加一个"Blank 3D Tiles Tileset"
这里在大纲中重命名为"MyWorldTerrain"
在细节面板中,"Source"选择"From Ur","Url"填入的应该是"layer.json"的位置
找到"layer.json"的存储位置,复制绝对路径
"Url"中填入:file:///F:/chaochao/Assets/GEOData/DEM0_SanLie/layer.json【"file:///"+"layer.json"的位置】
此时可以看到一个灰白色的高速为0的地球:
为"MyWorldTerrain"添加一个"Cesium Ion Raster Overlay"组件
在细节面板中将"Ion Asset ID"改为2
此时效果如下:
二、加载区域DEM
- 去地理空间数据云下载公开的地形数据
点击"高级检索"
点击添加数据集
选择"GDEMV2 30M 分辨率数字高程数据"
这里选择一个城市进行检索
全选该城市所有区域,可以看到由5块区域组成
将这5个区域全部下载下来
下载好后是5个.zip文件
分别进行解压:
每个文件夹内容由"xxx_dem.tif"和"xxx_num.tif"组成
- 打开"CesiumLab",选择"地形切片"
分别添加5个文件夹中的"xxx_dem.tif"
存储类型选择"散列",选择一个输出路径,然后点击"提交处理"
等待处理完成
处理结果如下:
- 在UE中将"Url"改为上一幅图中"layer.json"的路径
在"CesiumGeoreference"中设置经纬度为成都市的经纬度
设置好后点击如下按钮:
将"DynamicPawn"的位置和旋转改为0
通过在"CesiumSunSky"中设置"Solar Time"使该区域为白天
此时效果如下,可以看到有高度信息
此时运行效果如下所示
三、加载离线地图影像
当第二节做完时,此时的地形虽然是离线,但是地图影像却是在线的,因此断网后并不能正确加载地图
- 从水经注上下载的全球7级影像,这里下载的是tif格式
- 打开CesiumLab,在"数据处理-》影像切片"的"输入文件"一项中,点击添加下载tif文件
在"处理参数"一栏中,服务类型选择"TMS",投影参数选择"经纬度",瓦片大小默认为256
在"输出文件"一栏中,存储类型选择"散列",选择一个输出路径,最后点击提交处理
等待处理完成
处理完成后文件内容如下:
- 在UE中选中"MyWorldTerrain",删除"CesiumRasterOverlay"组件
删除后可以看到此时只有地形数据,没有影像数据
添加一个"Cesium Tile Map Service Raster Overlay"组件
可以看到该组件需要填入一个Url参数,就是本地影像的路径,这里我的是:
file:///F:/chaochao/Assets/GEOData/YinXiang/tilemapresource.xml
此时就完成了影像的离线加载,即使是断网也可以正确显示地图和地形,效果如下,可以看到成都市是有地形的,其它地方没有地形,这是因为在第二节中我们只下载了成都的地形数据
参考视频链接: