Cesium for Unreal添加倾斜摄影数据集

学习条件:
1.了解如何为 Unreal 应用程序设置基本的 Cesium
2.一个Cesium帐户,用于将墨尔本数据集传输到UE中
查看Cesium for Unreal快速入门,了解如何开始使用 Cesium for Unreal 插件

一、创建Cesium项目和关卡

本文假设您已经创建了一个项目并安装了 Cesium for Unreal 插件。如果您尚未创建项目,请参阅Cesium for Unreal快速入门以获取详细说明。

1.单击“文件”>“新建关卡”创建新关卡。在出现的窗口中,选择“空白关卡”以从空白场景开始。

2.单击Window>Cesium打开Cesium面板。

3.使用Cesium面板的“快速添加基本Actors”部分将CesiumSunSky添加到场景中,顺带向场景添加一个CesiumGeoreference。

二、添加来自Cesium ion的墨尔本倾斜摄影数据

1.连接到 Cesium ion(如果尚未连接)

2.单击添加按钮打开Cesium资产面板

3.在资源列表中找到Melbourne Photogrammetry ,单击它,然后单击添加到关卡

资产清单中如果缺少墨尔本倾斜摄影数据,访问 墨尔本倾斜摄影数据下载  Asset Depot 页面并单击 “添加到我的资产”。然后返回UE并使用Cesium ion Assets面板左上角的按钮刷新资源列表

4.单击“大纲视图”中的“墨尔本倾斜摄影数据” ,然后查看“详细信息”面板
on Asset ID已预先填充墨尔本摄影测量数据集的资产 ID。
Ion访问令牌为空。这意味着该资产正在使用项目的默认代币。现在无需更改这些设置。

5. 在 大纲视图中双击 “墨尔本倾斜摄影数据”,将视口指向墨尔本
它的方向可能会很奇怪,你甚至可能会看到它的底部

三、以墨尔本为中心的虚幻世界

屏幕上墨尔本的方向很奇怪,因为虚幻编辑器相机保持其正常的“+Z 方向向上”方向。在地球上与大多数游戏不同,以地球为中心的坐标系中的“向上”方向会根据您在世界上的位置而变化。所以我们要更新原点位置。

1.单击 大纲视图 中的 CesiumGeoreference0,在 “详细信息” 选项卡上,单击“ 在此处放置地理参考原点” 按钮。

2.这座城市将直立起来。如果场景变黑,可能是因为现在是墨尔本的夜晚。尝试将CesiumSunSky上的Time Zone属性设置为10。它位于“详细信息”面板上的“日期和时间”部分

在此处放置地理参考原点”按钮不仅仅改变方向。如果您仔细观察,您可能已经注意到,当您按下按钮时,按钮下方的Origin Latitude、Origin Longitude和Origin Height字段也会发生变化。准确地说,该按钮重新定位了虚幻引擎关卡的坐标系,使其中心点(0, 0, 0)恰好位于相机之前所在的位置。它对齐了 Unreal 轴,使得+X在该点指向东方,+Y指向南方,+Z指向上方。

四、添加全球资产

1.在 Cesium 面板中,单击 Cesium World Terrain + Bing Maps Aerial imagery 旁边的 + 或您选择的其他 Cesium World Terrain 选项。墨尔本周围的区域将填充您添加的全球资产:

2.从远处看起来不错,但是当我们放大近距离时,我们可以通过倾斜摄影模型看到Cesium世界地形突出的一些地方:

发生这种情况是因为Cesium世界地形和墨尔本倾斜摄影都是高分辨率数据集,因此它们的几何形状可能会重叠。
处理办法:
1.我们可以将倾斜摄影模型向上移动,以便地形模型不再穿透
大纲中选择 Melbourne Photogrammetry Actor,将 Z 轴坐标向上提升
2.“剪掉”Cesium 世界地形以为倾斜摄影模型腾出空间,请查看Cesium for Unreal瓦片集裁剪

五、从本地目录添加倾斜摄影数据集3D Tiles

前提:
1.准备倾斜摄影3D Tiles数据,(上传网盘后链接地址处)
2.倾斜摄影数据格式相关介绍
倾斜摄影数据格式osgb、3d tiles、I3S、S3M简单记录
3.倾斜摄影原始数据osgb转Cesium可用的3DTiles数据osgb如何转3dtiles供Cesium使用

1.将倾斜摄影数据集3D Tiles保存在计算机上的任何位置,但请记下它们的位置,稍后需要它。

2.在UE编辑器中使用Cesium面板将空白3DTileset 快速添加到场景中。

3.在 UE大纲中选择 Cesium3DTileset actor ,在 “详细信息” 面板中,找到“Source”参数。单击下拉列表并将其设置为“From URL”。设置此项将启用Url字段。

4.在计算机的文件中,找到您倾斜摄影数据的tileset.json 文件,复制文件路径,并shao'ji
将所有反斜杠替换为正斜杠,并将所有空格替换为“%20”。将“file:///”添加到路径的开头。
例如,该文件C:\Users\username\My Project\Data\Tileset\tileset.json将变为file:///C:/Users/username/My%20Project/Data/Tileset/tileset.json.
将编辑的路径粘贴到上图所示的Url字段中。

5.在大纲视图中,双击 Cesium3DTileset  actor 以在视口中将其聚焦。
与墨尔本一样,世界和3D倾斜摄影瓦片方向可能很奇怪,要修复此问题,使用CesiumGeoreference actor上的Place Georeference Origin Here按钮即可,世界变黑则将CesiumSunSky的Time Zone属性修改为10试试。

六、总结

1.双击Cesium3DTileset视角定位到该瓦片集
2.CesiumGeoreference的Place Georeference Origin Here按钮设置原点位置
3.DynamicPawn的位置设置为0,摄像机即可到达该瓦片原点
4.加载本地倾斜摄影数据集Url时不要有中文路径
......

参考:本文参考Cesium官方文档并进行整理

### 如何在 Unreal Engine 5 中加载 OSGB 文件 #### 使用 Cesium for Unreal 插件加载倾斜摄影数据 Cesium for Unreal 是一个强大的工具,能够帮助开发者轻松导入地理空间数据到虚幻引擎中。该插件支持多种格式的数据,包括倾斜摄影模型(如 `.osgb`)。要使用此功能,需确保已正确安装并配置了 Cesium for Unreal 插件[^1]。 以下是通过 Cesium for Unreal 实现加载 `.osgb` 数据的方法: 1. **启用 Cesium for Unreal 插件** 打开项目中的插件管理器,搜索 `Cesium` 并激活它。完成激活后重启编辑器以应用更改。 2. **准备倾斜摄影数据** 将 `.osgb` 文件及其关联资源准备好。如果这些文件存储在网络服务器上,则可以通过 URL 访问;如果是本地文件夹内的数据,则需要指定路径。 3. **创建场景并添加地球组件** 在世界大纲视图中右键单击,选择 `Add Actor -> Cesium -> Globe with Terrain` 来初始化一个基于真实地形的虚拟地球环境。 4. **加载倾斜摄影模型** 利用蓝图或脚本调用 API 方法来引入外部源的倾斜摄影数据集。例如,在蓝图节点中查找 `Load 3D Tiles Asset` 节点,并为其提供指向目标 `.osgb` 的有效链接地址或者目录位置作为参数传入。 ```cpp UCesium3DTileset* Tileset = UCesium3DTilesComponent::CreateTileset(); Tileset->SetURL(FString("http://example.com/path/to/osgb/tileset.json")); ``` 注意上述代码片段仅作示范用途,请依据实际开发情况调整具体实现细节以及适配最新版本API接口变化。 --- #### 动态加载 OSGB 倾斜摄影数据方法探讨 除了借助第三方插件外,还可以尝试采用类似 Unity3D 处理方式——即自行编写逻辑处理大规模三维几何体渲染问题。这种方法通常涉及以下几个方面的工作内容: - 开发一个多线程机制用于异步请求远程服务端上的瓦片单元; - 解析返回的结果包并将它们转换成适合 GPU 渲染的形式; - 对象池技术优化频繁实例化销毁过程带来的性能损耗等问题。 不过考虑到工作量较大且容易遇到兼容性和稳定性方面的挑战,推荐优先考虑成熟解决方案比如前面提到过的 Cesium For Unreal 。当然如果有特殊定制需求的话也可以参考某些开源项目的做法来进行二次开发改造[^3]。 --- #### 配置 Supermap 插件 (可选方案) 对于特定情况下可能需要用到其他厂商提供的 SDK ,像超图(SuperMap)也有推出针对 UE 的 GIS 支持库。虽然其主要面向矢量地图领域但同样具备一定能力去展示部分类型的三维结构物。关于它的设置流程如下所示 : 进入工程选项卡下的输入分类里按照个人喜好重新规划按键绑定关系后再将其保存至专属 INI 文档当中以便后续读取运用[^2]。尽管如此需要注意的是这类途径未必能完全满足所有复杂业务场景的要求所以务必权衡利弊再做决定。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值