找回密码
 立即注册
查看: 441|回复: 0

UE5 Cesium for Unreal加载本地各类数据[原创]

[复制链接]
发表于 2022-7-9 17:21 | 显示全部楼层 |阅读模式
2 基础环境准备
2.1 安装及激活
1、安装插件。在【虚幻商城】选项卡中搜索关键字“Cesium for Unreal”,并单击“安装到引擎”安装该插件。
2、激活插件。启动UE5,在需要添加该插件的项目中(或者新建一个项目),转到菜单【编辑】->【插件】,并在插件窗口的搜索栏中搜索关键字“Cesium”,确保Cesium for Unreal插件被勾选。启用插件后,会要求重新启动虚幻引擎。



图1 插件安装及激活

2.2 连接在线数据
如果需要使用Cesium ion的线上数据,可以登录Cesium ion账户。通过点击【Add】按钮,弹出【Cesium ion Assets】选项卡,内部列表数据与线上Cesium ion账户内【My Assets】选项卡中的数据一样。因为Cesium ion数据服务器在国外,考虑到数据使用的安全性以及带宽流量,本文主要实践加载本地部署数据。



图2 登录Cesium ion账户获取在线数据

2.3 基础设置
1、添加Cesium SunSky控件。如果项目中已有光照系统,可选择不添加。CesiumSunSky扩展了内置的 SunSky  Actor。如果场景太暗或者黑色看不见,调整CesiumSunSky的属性“Solar time”。
2、渲染设置。转到菜单【编辑】->【项目设置】并搜索“亮度”,确保启用【扩展自动曝光设置中的默认亮度范围】选项。如果未启用此选项,则在阳光直射的情况下,用CesiumSunSky照明会完全曝光,界面白茫茫一片。
3、添加Dynamic Pawn控件。使用户能在地球上任意移动,并允许使用鼠标滚轮控制移动速度,特别是远距离移动时必不可少(用键盘WSAD前后左右移动,鼠标控制方向,滚轮控制移动速度)。当视角在Cesium地球上的不同位置之间飞行时,相机遵循与地球表面平行的弯曲路径,而不是线性的点对点飞行轨迹。Dynamic Pawn扩展了内置的pawn类。



图3 勾选【扩展自动曝光设置中的默认亮度范围】选项前后效果对比

4、控制编辑器视口位置要将编辑视口导航到你希望的位置,单击大纲中的Cesium Georeference控件,在其Details面板中,调整Cesium类别下的Origin Longitude、Origin Latitude和Origin Height变量的值(设置地理参考原点)。
5、控制播放时你的位置。在原点发生变化的情况下为了保持其先前在地球上的位置,Dynamic Pawn将自行调整位置(地理感知控件都有此特征),为了保证播放时你在新的原点位置,需要将Dynamic Pawn的Location设置为(0, 0, 0)。
3 模型场景搭建实践
3.1 倾斜摄影加载
1、添加3DTiles Tileset控件。在编辑器左侧的Cesium面板中,单击“Blank 3D Tiles Tileset”,在场景中添加一个新的空白Cesium 3D Tileset。插件将自动添加Cesium Georeference、CesiumCameraManager、CesiumCreditSystemBPM等其它三个控件(如果原先没有)。
2、添加3DTiles Tileset地址。在大纲选项卡下选择新添加的Cesium3D Tileset控件,在【细节】面板中,查找“Cesium”类别。为了加载本地数据,将使用3D Tileset 的主tileset.json 文件的路径来填写“Url”字段。(本地格式:file:///C:/***/tileset.json。网络URL地址格式:http://***/tileset.json。)双击该控件,编辑器场景镜头视角将切换到倾斜摄影模型的位置。
3、修复模型上下颠倒,让虚幻引擎的世界坐标重新定位。大纲视图面板中点击CesiumGeoreference,在细节面板中,单击“Place Georeference Origin Here”按钮。
4、添加或修改Cesium SunSky控件。如果场景是黑的或者较暗,可能是因为倾斜摄影地区是夜间,调整CesiumSunSky对象上的“Solar Time”属性。



图4 模型颠倒修复效果

5、添加周边环境数据。为了补充模型周边真实环境,同时也验证倾斜摄影模型位置的正确性,可以选择添加周边地形或者影像数据。



图5 添加周边环境

3.2 地形数据加载
1、采集所在区域DEM数字高程数据。利用“地理空间数据云”或者水经注等平台软件下载DEM数据,格式一般为tif。
2、处理高程数据:可利用“华设BIM+GIS转换工具集”等软件将tif处理成Cesium支持的terrain格式。
3、发布地形数据服务。通过Nginx等工具将tms格式的文件发布成网络服务。(Cesium for Unreal不支持本地file路径地形数据)



图6 地形数据下载及发布

4、添加3DTiles Tileset控件。在编辑器左侧的Cesium面板中,单击“Blank 3D Tiles Tileset”,在场景中添加一个新的空白Cesium 3D Tileset。在大纲选项卡下选择新添加的Cesium3D Tileset控件,在【细节】面板中,修改URL地址形式为:http://******/layer.json。(注意不能通过双击该控件来定位,需要通过CesiumGeoreference来设定调整位置;通过CesiumWorldTerrain控件也可以操作。)



图7 本地地形数据加载

3.3 影像数据加载
1、采集所在区域影像数据。通过水经注等软件下载卫星影像数据,此处选择L17级数据,格式一般为tif。
2、tif处理成tms格式。可利用QGIS等软件将tif文件处理成tms格式的数据。(目前,Cesium for Unreal只支持TMS协议的影像数据)



图8 影像数据下载及处理

3、发布tms数据服务。通过Nginx等工具将tms格式的文件发布成网络服务。(Cesium for Unreal不支持本地file路径影像数据)
4、添加CesiumTileMapServiceRasterOverlay组件。在大纲选项卡中,选中或者添加Cesium3DTileset或者CesiumWorldTerrain控件(均需要有地形数据),在Detail面板中点击【+添加】按钮,搜索Cesium,选择CesiumTileMapServiceRasterOverlay,修改其Url为该影像服务的TMS地址。(如果界面是黑的,可以选中CesiumSunSky,调整时区和时间。)



图9 本地影像数据加载

3.4 白膜数据加载
1、制作白膜数据:通过BlenderGIS、ArcGIS等软件或者“华设BIM+GIS转换工具集”的【矢量楼块切片】可以将shp文件快速拉伸制作成白膜。或者直接通过cadmapper等开放网站下载,或者通过SketchUp等软件制作导出。
2、白膜数据转换为3dtiles数据格式。可利用“华设BIM+GIS转换工具集”等软件将fbx格式白膜数据处理成3dtiles文件。(目前Cesium for Unreal只支持b3dm格式,注意参数设置,确保模型结果只有b3dm,没有cmpt和i3dm)
3、参照【3.1】相同方式在UE5中导入白膜数据。



图10 白膜数据加载

3.5 BIM模型加载
1、BIM模型转换为3dtiles数据格式。可利用“华设BIM+GIS转换工具集”等软件将Revit、Bentley、Catia、FBX及IFC格式的BIM模型处理成3dtiles数据格式。(目前Cesium for Unreal只支持b3dm格式,注意参数设置,确保模型结果只有b3dm,没有cmpt和i3dm)
2、参照【3.1】相同方式在UE5中导入BIM模型数据。



图11 BIM模型加载

3.6 人工建模加载
1、人工模型转换为3dtiles数据格式。可利用“华设BIM+GIS转换工具集”等软件将人工模型(如max、fbx格式)转换处理成3dtiles数据格式。(目前Cesium for Unreal只支持b3dm格式,注意参数设置,确保模型结果只有b3dm,没有cmpt和i3dm)
2、参照【3.1】相同方式在UE5中导入模型数据。



图12 人工模型加载

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-25 09:03 , Processed in 0.132342 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表