AddingDatasets_译
这个教程教你怎样使用CesiumforUnreal输入模型。首先,你将从Cesiumion中输入摄影测量模型。将使用世界上最宜居城市之一的模型:澳大利亚的墨尔本。然后,您将从计算机导入一个本地数据集。
你会学到怎样:
1)从Cesiumion添加一个城市比例的3DTiles摄影测量模型。
2)在地球上使用CesiumGeoference去地理定位你的关卡。
3)从你的计算机上使用本地3DTiles数据集。
预备:
1)安装UnrealEngine(至少4.26或更高版本)和CesiumforUnreal插件。
2)流送墨尔本数据集到UnrealEngine的Cesium账号。
!)看CesiumforUnrealQuickstart学习怎么安装CesiumforUnreal和用Cesiumion连接。
步骤1:创建一个项目和关卡
详细指示看Quickstart。在步骤6开始前停下,添加一个全球3D建筑到你的场景,因为你将添加摄影测量导出的建筑。
步骤2:从Cesiumion中添加墨尔本摄影测量模型
1)在工具栏点击图标打开Cesium面板。
2)如果你还没有连接到Cesiumion。
3)点击Add按钮打开CesiumionAssets面板。
4)在资产列表找到MelbournePhotogrammetry,点击然后点击AddtoLevel。
!)如果MelbournePhotogrammetry从资产列表消失?看MelbournePhotogrammetry资产页并Addtomyassets。然后返回UnrealEngine,关闭CesumionAssets面板,再次点击Add按钮重打开且更新资产表。
5)在WorldOutliner双击MelbournePhotogrammetry定位视口到Melbourne。
它可能是很奇怪的方向,你甚至可能会在它的底部看它。
步骤3:在墨尔本定位虚幻世界的中心
在屏幕上墨尔本的方向是奇怪的因为UnrealEditor相机仍是它常规的“z方向向上”。在行星地球上,不像游戏,以地球为中心的坐标系向上的方向的变化取决于你在世界上的位置。
让我们用更有用的方法重定位UnrealEngine世界。
1)在WorldOutliner点击CesiumGeoference_1.
2)在Details面板,点击PlaceGeoferenceOriginHere。
城市将会反转向上。如果场景转黑了,肯可能是因为在墨尔本的晚上。试着在CesiumSunSky调整太阳时。
PlaceGeoferenceOriginHere按钮不仅改变了方向。如果你想更近看,你可能注意到当你按下时按钮下Origin Latitude, Origin Longitude, Origin Height已经改变。准确地说,按钮重新定位了虚幻引擎关卡的坐标系统,所以它的中心点(0,0,0)恰好位于之前摄像机所在的位置。它对齐了虚幻轴,使+X指向东方,+Y指向南方,+Z指向上方。
它也可以输入纬度,经度和高度值直接在一个精确的位置定位世界。
它在地球上到处定位世界原点的能力非常有帮助,因为在虚幻引擎中,从相机到树叶再到物理,许多东西都倾向于拥有相对较小的值并带有+Z指向上的坐标系统。在这个方法中通过"定位"虚幻世界,我们允许正常的虚幻物体被放置在墨尔本和周围,并像它们在任何其他游戏中一样行动。
步骤4:添加全球内容
在这儿,墨尔本是一个漂浮在黑暗海洋中的城市。让我们添加一些全局背景。
1)在Cesium面板,点击Cesium World Terrain + Bing Maps Aerial imagery边上 的+,或者你选择的其他Cesium World Terrain选项。
墨尔本周围区域会被你添加的资产填充。
从远处看,这看起来不错,但当我们放大时,我们可以看到一些地方,通过摄影测量模型突出
Cesium世界地形:
这种结果是因为CesiumWorldTerrain和Melbourne摄影测量都是高精度数据集,覆盖了相同的地理图像。CesiumforUnreal的要素版本允许你剪切掉CesiumWorldTerrain为摄影测量模型挪出空间。现在,
让我们把摄影测量模型向上移动,这样地形模型就不再突出。
2)选择MelbournePhotogrammetry角色对象,通过单击Z坐标框内并向右拖动,或通过输入一个数字来调整位置Z坐标。
从本地目录添加3DTiles
这部分,你会使用包含各种高度的3DTiles。这个3DTiles可以在here下载。确保下载全部瓦片集文件,包含tileset.json文件和所有参考.b3dm文件。你可以使用你自己的3DTiles文件代替。
!)如果你是一个3DTiles格式的新人,看3DTilesSpecification学习更多。
1)在编辑器的左边CesiumUI,点击AddBlank。这个添加一个空的Cesium3DTiles到场景。
2)在WorldOutliner选择Cesium3DTiles并重命名为“LocalTileset”。
3)在Details面板,找到Cesium目录。典型地从Cesiumion加载数据,你会填写IonAssetsID和IonAssetsToken字段。对于加载本地数据,你会填写带有3DTileset的主tileset.json文件Url字段代替。在你的本地目录系统放置你的3DTileset数据集。
例如,如果目录是:
C:\Users\username\document\Unreal Projects\CesiumForUnrealSamples\Data\Tileset\tileset.json
然后Url这样:
file:///C:/Users/username/document/Unreal Projects/CesiumForUnrealSamples/Data/Tileset/tileset.json
在file之后三个向前的斜杠。
4)在WorldOutliner,在LocalTileset角色对象双击,在视口聚焦到它。
世界和资产集可能不在正确的方向,像这样:
这是因为CesiumGeoference对象原点远离LocalTileset角色对象。
5)随着视口聚焦到LocalTileset角色对象,转到WorldOutliner,选择CesiumGeoference角色对象,并找到PlaceGeoreferenceOriginHere按钮。点击这个按钮从定向世界。
6)在Deatail面板调整Location变换放置它到期望的位置。例如,在地形上定位3DTiles的基础位置,改变Location的坐标到7400。
!)当前不支持使用CesiumforUnreal加载本地量化格网地形。然而,地形资产可以从任何服务器加载,包括localhost。为了完全离线加载地形资产,考虑设置一个localhost服务地形。用http://localhost:portNumber/terrainAsset使用和以上相同的步骤填写Url字段。
资源
1)3DTilesSpecification
2)CesiumionDataUploadingGuide
下步:
阅读下一个教程。PlacingObjectsontheGlobe,学习更多在CesiumforUnreal关卡放置对象。