在UE引擎实现3DTiles

2,497 阅读4分钟

前言

数字孪生的相关技术这几年在智慧城市、工业制造、基建工程方面的越走越远,任何一个谋求远见的技术团队再也不能抱着围观的态度置身事外。数字孪生的核心技术主要体现在两个方面:三维可视化和物联网技术。其中利用GIS、BIM技术实现对现实世界的建模和还原,是本文意图探讨的主题。

三维可视化的探索路线可以分为3个层级,第一层级,基于GIS建筑面和高度自动创建白模,实轻量级低成本的可视化效果;第二层级,通过倾斜摄影等手段采集现实世界的数据,实现等比例还原,这需要一定的采集和制作成本;第三层级,在第二层级的基础上对模型进一步修缮完善,或人工按精确比例重建模型,并结合成熟的开发引擎实现逼真的细节,这个阶段需要花费较大的模型制作成本。

Untitled.png 后面将介绍一下,如何实现第二层级到第三层级的过渡,即使用倾斜投影采集到的模型,在UE引擎上做展示。

需求说明

1.实现更加逼真的城市级或园区级数字孪生效果

2.制作更加可观的交互效果

Honeycam 2022-11-23 16-45-03.gif

高德地图引擎中的展示效果(没有光影、画面缩放生硬、缩放最大程度受限于高德引擎)

Honeycam 2022-11-23 16-26-15.gif

UE像素流送展示效果(光影效果拉满,镜头处理流畅)

开发环境

工具说明
Unreal Engine 4.26虚幻引擎,提供游戏实例和创建像素流送模块,以下简称UE
Cesium for unrealCesium是全球知名3D地图引擎,提供了与UE集成的插件Cesium for unreal
cesiumlab3用于将倾斜投影原始OSGB数据转换为3DTiles
Node.js提供静态文件服务,可用于部署3DTiles

实现思路

  1. 使用UE创建游戏实例,安装Cesium for unreal ,加载世界3D地图作为底图
  2. Cesium for unreal 创建自定义3DTiles图层
  3. 打包游戏,部署像素流送服务

具体步骤

使用UE创建游戏实例

1.关于UE的开发环境安装这里就不赘述了,自行搜索,注意版本的准确,安装后根据以下提供的官方教程链接安装Cesium for unreal和创建游戏,一路跟下来就可以完成一个带白模的世界游戏场景

Untitled 1.png

zhuanlan.zhihu.com/p/365834299 Cesium for Unreal快速入门

2.Cesium for Unreal也提供了现成的3DTiles图层,如果手上没有倾斜投影原始数据的话,按下面教程的操作也可以得到墨尔本的3DTiles城市场景

Untitled 2.png

zhuanlan.zhihu.com/p/366186262 Cesium for Unreal添加倾斜摄影模型

创建自定义3DTiles图层

  1. 将现有的倾斜投影OSGB数据转换为3DTiles,这块内容之前在《在高德地图中实现3DTiles》里面讲过了,使用cesiumlab3即可免费转换。需要注意的的是在“输入文件” 阶段做一下调整,空间参考按格式‘ENU: lat, lng’ 输入模型实际的地理坐标,比如本文示例的模型坐标为“北纬22.765064, 东经113.545154“ ,那么输入 “ ENU:22.765064, 113.545154 ”; 零点坐标仍旧改为0,0,0。

5cf73ac5cb2448a886c3967533c2f4b1_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

  1. 顺利的话可以在cesiumlab3的 “分发服务-3dtiles服务” 找到刚刚转换好的3DTiles,点击chrome图表可以进入查看页面,3DTiles与底图均显示,表示转换成功,生成的3Dtiles文件可用于下一步。即使位置不是特别精确也没关系,后面还有机会调整。

Untitled 3.png

Untitled 4.png

  1. 部署刚才生成的3DTiles文件,这里部署后入口文件tileset.json的访问地址为 http://localhost:8080/jinzhu/tileset.json

Untitled 5.png

Untitled 6.png

  1. 回到UE,点击Cesium面板中的Blank 3D Tiles Tileset 添加空白3DTiles图层A; 在世界大纲视图点击图层A,出现细节面板; 在细节面板设置好Source和Url,将刚才部署好的3DTiles文件入口地址填入回车,双击图层A,即可看到自定义3DTiles图层已加载。

Untitled 7.png

Untitled 8.png

  1. 打包游戏,部署像素流送服务。这方面的教程可以查看《使用像素流送技术实现3D场景》

后面能做什么

场景美化: 精细化个别重要模型,比如办公楼、灯杆

特效开发:根据业务专题定制特效,比如早午晚时段光线切换,光柱效果等

交互集成:场景和web页面的交互集成

模拟数据:将现实中的数据引入场景中展示