diff --git a/CHANGES.md b/CHANGES.md
index b9578066..a474ce2f 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,5 +1,11 @@
# Change Log
+## Not Released Yet
+
+##### Additions :tada:
+
+- Added a "From Ellipsoid" option to `Cesium3DTileset` to generate a tileset by tesselating the surface of the ellipsoid, producing a simple globe tileset without terrain features.
+
## v1.13.1 - 2024-11-01
##### Fixes :wrench:
@@ -116,7 +122,7 @@ In addition to the above, this release updates [cesium-native](https://github.co
- Added `CesiumMetadataValue`, which can hold a metadata value from `EXT_structural_metadata` while abstracting away its type.
- Added a `distance` property to `CesiumOriginShift`, which specifies the maximum allowed distance from the current origin before it is shifted.
- Added support for the `KHR_texture_transform` glTF extension - including rotation - in `baseColorTexture`, `metallicRoughnessTexture`, `emissiveTexture`, `normalTexture`, and `occlusionTexture`. The transformation is now applied on the GPU via nodes in the Material, rather than on the CPU by directly modifying texture coordinates.
-- Added `materialKey` to `CesiumRasterOverlay`, which matches the overlay to its corresponding parameters in the tileset's material. This allows for explicit ordering of raster overlays and overlay-specific effects.
+- Added `materialKey` to `CesiumRasterOverlay`, which matches the overlay to its corresponding parameters in the tileset's material. This allows for explicit ordering of raster overlays and overlay-specific effects.
- `CesiumCameraController` can now accept custom input actions that override the default inputs.
##### Fixes :wrench:
diff --git a/Runtime/Cesium3DTileset.cs b/Runtime/Cesium3DTileset.cs
index f1e53241..925248b6 100644
--- a/Runtime/Cesium3DTileset.cs
+++ b/Runtime/Cesium3DTileset.cs
@@ -21,7 +21,12 @@ public enum CesiumDataSource
///
/// The dataset is from a regular web URL.
///
- FromUrl
+ FromUrl,
+
+ ///
+ /// The dataset is generated from the georeference ellipsoid.
+ ///
+ FromEllipsoid
}
///
diff --git a/native~/Runtime/src/Cesium3DTilesetImpl.cpp b/native~/Runtime/src/Cesium3DTilesetImpl.cpp
index fde18b58..1e5ff12b 100644
--- a/native~/Runtime/src/Cesium3DTilesetImpl.cpp
+++ b/native~/Runtime/src/Cesium3DTilesetImpl.cpp
@@ -7,6 +7,7 @@
#include "UnityTileExcluderAdaptor.h"
#include "UnityTilesetExternals.h"
+#include
#include
#include
#include
@@ -694,6 +695,12 @@ void Cesium3DTilesetImpl::LoadTileset(
// Resolve the API URL if it's not already in progress.
resolveCesiumIonApiUrl(tileset.ionServer());
}
+ } else if (
+ tileset.tilesetSource() ==
+ CesiumForUnity::CesiumDataSource::FromEllipsoid) {
+ this->_pTileset = EllipsoidTilesetLoader::createTileset(
+ createTilesetExternals(tileset),
+ options);
} else {
this->_pTileset = std::make_unique(
createTilesetExternals(tileset),
diff --git a/native~/extern/cesium-native b/native~/extern/cesium-native
index b164fc91..544b2b3c 160000
--- a/native~/extern/cesium-native
+++ b/native~/extern/cesium-native
@@ -1 +1 @@
-Subproject commit b164fc915ffd9080e0d3f7c3f72076b1e65090ed
+Subproject commit 544b2b3c108bec58b29f897da0a1e30600ae1e3a