/cesium-unreal

Bringing the 3D geospatial ecosystem to Unreal Engine

Primary LanguageC++Apache License 2.0Apache-2.0

Cesium for Unreal Logo

Cesium for Unreal brings the 3D geospatial ecosystem to Unreal Engine. By combining a high-accuracy full-scale WGS84 globe, open APIs and open standards for spatial indexing such as 3D Tiles, and cloud-based real-world content from Cesium ion with Unreal Engine, this project enables a new era of 3D geospatial software.

Cesium for Unreal Homepage

🚀 Get Started

Download Cesium for Unreal from Unreal Engine Marketplace

Have questions? Ask them on the community forum.

👏 Featured Demos

   

🏡 Cesium for Unreal and the 3D Geospatial Ecosystem

Cesium for Unreal can stream real-world 3D content such as high-resolution photogrammetry, terrain, imagery, and 3D buildings from Cesium ion and other sources, available as optional commercial subscriptions. The plugin includes Cesium ion integration for instant access to global high-resolution 3D content ready for runtime streaming. Cesium ion users can also leverage cloud-based 3D tiling pipelines to create end-to-end workflows to transform massive heterogenous content into semantically-rich 3D Tiles, ready for streaming to Unreal Engine.

Cesium for Unreal supports cloud and private network content and services based on open standards and APIs. You are free to use any combination of supported content sources, standards, APIs with Cesium for Unreal.

Cesium for Unreal Ecosystem Architecture

Using Cesium ion helps support Cesium for Unreal development. ❤️

⛓️ Unreal Engine Integration

Cesium for Unreal is tightly integrated with Unreal Engine making it possible to visualize and interact with real-world content in editor and at runtime. The plugin also has support for Unreal Engine physics, collisions, character interaction, and landscaping tools. Leverage decades worth of cutting-edge advancements in Unreal Engine and geospatial to create cohesive, interactive, and realistic simulations and applications with Cesium for Unreal.

📗 License

Apache 2.0. Cesium for Unreal is free for both commercial and non-commercial use.

💻 Developing with Unreal Engine

🛠️ Compiling Cesium for Unreal

The following steps detail how to build the plugin and use it as part of your projects. You can also compile Cesium for Unreal as part of the cesium-unreal-samples.

Cesium for Unreal depends on Cesium's high-precision geospatial C++ library - Cesium Native, which is included as a submodule.

  1. Clone the repository using git clone --recursive git@github.com:CesiumGS/cesium-unreal.git.

  2. From the cesium-unreal/extern directory, run the following commands to build cesium-native.

    • CMake configuration and build on Windows platform:
    cmake -B build -S . -G "Visual Studio 15 2017 Win64" # Optionally use "Visual Studio 16 2019"
    cmake --build build --config Release --target install # Can optionally compile with --config RelWithDebInfo or MinSizeRel.
    cmake --build build --config Debug --target install # Optional, recommended for debugging
    • CMake configuration and build on Linux platform:
    export UNREAL_ENGINE_DIR=<path_to_unreal_engine>
    export UNREAL_ENGINE_COMPILER_DIR=$UNREAL_ENGINE_DIR/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu
    export UNREAL_ENGINE_LIBCXX_DIR=$UNREAL_ENGINE_DIR/Engine/Source/ThirdParty/Linux/LibCxx
    
    # Release build
    cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="unreal-linux-toolchain.cmake" -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release
    cmake --build build --target install
    
    # Debug build
    cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="unreal-linux-toolchain.cmake" -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Debug
    cmake --build build --target install
  3. Point your Unreal Engine Project to the CesiumForUnreal.uplugin file to load the plugin into Unreal Engine.

📦 Accessing Packaged Plugin

The easiest way to access Cesium for Unreal is by downloading it from the Unreal Engine Marketplace.

If you would like to access development versions of the plugin, Cesium for Unreal has Travis CI integration that prepares packages with each CI build. To access these packages, click the ✔️ icon on the GitHub branch or commit and click the Details next to plugin-package. You can extract the downloaded plugin package into your Unreal project's Plugins directory.