首页 > 其他分享 >Cesium for Unreal加载倾斜摄影

Cesium for Unreal加载倾斜摄影

时间:2023-01-27 21:02:35浏览次数:47  
标签:插件 ion UE Unreal Cesium 加载

Cesium for Unreal加载倾斜摄影


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

安装Cesium for Unreal插件

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

Cesium for Unreal加载倾斜摄影_数据


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


启用插件

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

Cesium for Unreal加载倾斜摄影_Pawn_02

点击启用。

启用之后可能需要重启


添加Cesium SunSky

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

Cesium for Unreal加载倾斜摄影_Pawn_03

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

添加Dynamic Pawn

Cesium for Unreal加载倾斜摄影_数据_04

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

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

添加倾斜摄影

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

Cesium for Unreal加载倾斜摄影_Pawn_05


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

Cesium for Unreal加载倾斜摄影_加载_06

在【细节】面板中,查找“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。)

比如笔者的案例中,使用本地文件加载,输入如下所示:

Cesium for Unreal加载倾斜摄影_数据_07


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

CesiumGeoreference用于设置坐标系的原点。

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

Cesium for Unreal加载倾斜摄影_加载_08

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

调整CesiumSunSky(解决一片黑)

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

Cesium for Unreal加载倾斜摄影_Pawn_09

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

Cesium for Unreal加载倾斜摄影_加载_10

有关3D Tile的一些说明


Maximum Screen Space Error

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

Cesium for Unreal加载倾斜摄影_数据_11


这个是因为** Maximum Screen Space Error造成的, Maximum Screen Space Error默认值是16。 ** Maximum Screen Space Error用于控制模型的精度,数值越大,精度越小,性能越好;反之,精度越大,性能越差。

选中3D title 模型,在 细节面板下->Level of Detail -> Maximum Screen Space Error可以设置值。

Cesium for Unreal加载倾斜摄影_Pawn_12

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

Cesium for Unreal加载倾斜摄影_数据_13

Enable Frustum Culling

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


参考文档

​https://cesium.com/learn/unreal/unreal-quickstart/​

关注公号“ITMan彪叔” 

标签:插件,ion,UE,Unreal,Cesium,加载
From: https://blog.51cto.com/u_15469248/6024314

相关文章

  • Cesium Ellipsoid(十四)
    由方程(x/A)^2+(y/b)^2+(z/c)^2=1在笛卡尔坐标系中定义的二次曲面。Cesium主要用来表示行星体的形状。通常使用提供的常量之一,而不是直接构造此对象。 不用new,直接就可以使用......
  • 类加载内存分析
       ......
  • Cesium计算范围(十四)
    functionbounds(positions=[],expand=0){letminLng=180letminLat=90letmaxLng=-180letmaxLat=-90positions.forEach(item......
  • Cesium 椭球大地测量EllipsoidGeodesic(十三)
    首先发现一个问题,这段代码会报错,原因是"DeveloperError:Expectedvaluetobegreaterthanorequalto0.0125,actualvaluewas0,不知道为什么经度不能为0newCesium......
  • SpringMVC学习笔记 - 第一章 - 工作流程、Bean加载控制、请求与响应(参数接收与内容返
    【前置内容】Spring学习笔记全系列传送门:Spring学习笔记-第一章-IoC(控制反转)、IoC容器、Bean的实例化与生命周期、DI(依赖注入)Spring学习笔记-第二章-注解......
  • Cesium计算多边形面积(十一)
     //计算三角形面积functiontriangleArea(p0,p1,p2){letv0=Cesium.Cartesian3.subtract(p0,p1,newCesium.Cartesian3())......
  • 5、pytorch加载数据
    1、Dataset:提供一种方式去获取数据及其label值******实现的功能:(1)如何获取每一个数据及其label(2)告诉我们总共有多少的数据(因为神经网络经常会对一个数据迭代多......
  • vue学习之----- 图片懒加载插件【vue-lazyload】
    1、用npm安装npmivue-lazyload2、main.js中绑定到vue对象上 3、在需要懒加载的img标签上把src换成v-lazy 4、懒加载的意义:(1)显示在屏幕之外的图片不加载,图片......
  • Cesium计算三角形面积(十)
    functiontriangleArea(p0,p1,p2){//利用subtract计算出两个向量letv0=Cesium.Cartesian3.subtract(p0,p1,newCesium.Cartesian3())......
  • CSS font-display 控制字体加载和替换
    在编写网站的时候,或多或少都会用到一些网络上的字体,CSS3中虽然加入了对WebFonts(网络字体)的支持,但是浏览器对它们的加载和默认处理方式会极大的影响网站的性能和用户体验......