KaaPexei 发表于 2023-1-31 12:56

UE4/5 编译Cesium

各种介绍和解释的话就不多说了,直接按照步骤开始工作
1、创建一个UE5的空白工程,如果是已有的工程可以跳过这一步, 选择C+++,不包含初学者内容,创建成功之后直接关闭工程1、创建一个UE5的空白工程, 选择C+++,不包含初学者内容,创建成功之后直接关闭工程



新建空白项目

2、打开工程(*.uproject)所在目录,新建Plugins文件夹


3、进入到Plugins文件夹中右键打开Git命令窗口Git Bash


4、输入命令 拉取Cesium仓库代码,仓库的名称是cesium-unreal,窗口克隆完成之后改为CesiumForUnreal
git clone --recursive https://github.com/CesiumGS/cesium-unreal.git5、查看extern/cesium-native下的子模块有没有下载成功(里面有没有内容),如果没成功,继续在Git Bash执行一下命令
git submodule update --init --recursive 过程中因为其他问题导致代码克隆失败可以执行以下命令重新拉取代码 git pull --recurse-submodules

6、打开CMake按照下图配置好source code路径,和build路径。然后依次点击Configure,Generate,OpenProject


7、在打开的VS中右键点击ALL_BUILD编译第三方库


如果出现port.h这个头文件报错,右键s2geometry工程,选择属性,修改工程字符集为Unicode字符集,记得Debug和Release都要修改



编译成功之后,分别Debug和Release都需要在编译一次INSTALL,他会将头文件和库都拷贝到固定目录



8、接下来打开我们刚刚新建的工程,修改Cesium源码 修改CesiumForUnreal.uplugin中的版本号为(使用UE5)5.0



UE5分支现在已经发布,不需要再修改源代码了
修改Source/CesiumRuntime/Private/CesiumGltfComponent.cpp文件
注释掉48行//#include "ChaosDerivedDataUtil.h" 头文件修改952行FStaticMeshLODResources::FStaticMeshSectionArray& Sections为FStaticMeshSectionArray& Sections注释掉995行//LODResources.bHasAdjacencyInfo = false;修改Source/CesiumRuntime/Private/CesiumGltfPrimitiveComponent.cpp文件
修改121和122行pMesh->BodySetup为pMesh->GetBodySetup()修改Source/CesiumRuntime/Private/CesiumLifetime.cpp文件
修改85行pMesh->RenderData.Reset();为delete pMesh->GetRenderData(); 这个地方以前是智能指针调用Reset将mesh的renderData置为空,然后会被自动释放,现在改为手动释放,有过有更优和安全的方式也可以自行修改9、修改完之后直接编译就可以通过了,然后用带编辑器的方式启动

页: [1]
查看完整版本: UE4/5 编译Cesium