12

Cesium for Unreal加载倾斜摄影 - ITman彪叔

 2 years ago
source link: https://www.cnblogs.com/flyfox1982/p/17032948.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

本文介绍UE4中通过Cesium插架加载本地倾斜摄影模型。Cesium for Unreal插件运行在UE环境何总运行Cesium,这样方便做一个GIS应用。

安装Cesium for Unreal插件

在UE 虚幻商城中,搜索 “Cesium for Unreal”, 然后下载插件,下载完成后,可以点击安装到引擎:

image.png

可以安装到引擎,需要UE 4.26以上,笔者使用4.27版本,也可以用于UE5.

打开UE编辑器,创建一个项目,点击菜单: 编辑->插件,搜索 Cesium for Unreal

image.png

点击启用。

启用之后可能需要重启

添加Cesium SunSky

Cesium SunSky扩展了UE本身的SunSky,针对Cesium场景做了优化。

image.png

有关细节此处不详细说明。

添加Dynamic Pawn

image.png

DynamicPawn 是插件定制的基于Cesium场景的一个Pawn对象,赋予了基于地球的运动方式,此处也不详细说明。
实际上DynamicPawn不是必须的,也可以自己写一个Pawn 类来进行操作。但是DynamicPawn可以进行碰撞检测,让镜头总是在地球(或者倾斜摄影的表面运动),如果是挺大场景,可能这一点比较重要。

对于较小场景,可以自己进行Pawn类的编写适合自己的操作习惯。

添加倾斜摄影

首先添加一个Blank 3D Tiles Tileset 到场景中,插件将自动添加Cesium Georeference、CesiumCameraManager、CesiumCreditSystemBPM等其它三个控件(如果原先没有)

image.png

点击该对象,在该对象的详情页面设置加载的倾斜摄影路径,

image.png

在【细节】面板中,查找“Cesium”类别。

Source可以填写倾斜摄影的来源。来源可以是Cesium ion,也可以From Url。

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

本地部署的时候,source选择From Url。
而From Url又可以是本地格式和网络格式。(本地格式:file:///C://tileset.json。网络URL地址格式:http:///tileset.json。)
比如笔者的案例中,使用本地文件加载,输入如下所示:

image.png

更改CesiumGeoreference定位(解决看不到)

CesiumGeoreference用于设置坐标系的原点。
鼠标选择添加的3d Tile模型,按F建聚焦该对象,然后,选择CesiumGeoreference对象,点击按钮“Place CesiumGeoreference Origin here”可以把原点定位到加载的模型处。

image.png

需要注意的一个选项是 “Keep World Origin Near Camera”,如果启用改选项,在运行态下,世界坐标原点会随着镜头的变化而变化,从而导致所有的actor(非Geo对象)的坐标都产生变化。 一般建议在小场景下,关闭次选项。 该选项的目的是在大场景下,避免对象的坐标值很大,超过UE可以能够存储的精度。

调整CesiumSunSky(解决一片黑)

如果场景是黑的或者较暗,可能是因为倾斜摄影地区是夜间,调整CesiumSunSky对象上的“Solar Time”属性。

image.png

至此,模型加载完成,如下图示。

image.png

有关3D Tile的一些说明

Maximum Screen Space Error

加载3d title模型后,我们可能看到模型的精度很差。

image.png

这个是因为** Maximum Screen Space Error造成的, Maximum Screen Space Error默认值是16。 ** Maximum Screen Space Error用于控制模型的精度,数值越大,精度越小,性能越好;反之,精度越大,性能越差。
选中3D title 模型,在 细节面板下->Level of Detail -> Maximum Screen Space Error可以设置值。

image.png

把值改为2后,看到的效果:

image.png

Enable Frustum Culling

改选项表示是否启用 镜头视椎体裁剪。 如果启用,镜头看不到的tile 将会被隐藏显示,当镜头看到的时候,又会重新加载,这就会导致,用户总是会看到tile从无到有的加载过程。
但是如果不启用,可能会导致很多tile在内存中不会被释放,从而导致内存溢出。

https://cesium.com/learn/unreal/unreal-quickstart/
https://www.cnblogs.com/bimgis/p/16457060.html

关注公号“ITMan彪叔” 可以添加作者微信进行交流,及时收到更多有价值的文章。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK