Skip to content

Commit c642c9a

Browse files
committed
Merge from main
2 parents 9542362 + ed38004 commit c642c9a

20 files changed

+1029
-910
lines changed

CHANGES.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
# Change Log {#changes}
22

3-
### ? - ?
3+
### v2.16.1 - 2025-06-02
4+
5+
##### Additions :tada:
6+
7+
- Added support for `TRIANGLE_FAN` primitives in tile meshes.
48

59
##### Fixes :wrench:
610

711
- Worked around an Unreal Engine limitation that prevented collisions and line traces from working correctly for tilesets with a very small scale factor.
8-
- Add a missing include for `GEngine` when packaging from source, introduced in *v2.16.0*.
9-
- Fixed a bug in UCesiumFeaturesMetadataComponent where multiple references to same feature ID set would cause improper encoding of its feature IDs.
12+
- Add a missing include for `GEngine` when packaging from source, introduced in `v2.16.0`.
13+
- Fixed a bug in `UCesiumFeaturesMetadataComponent` where multiple references to same feature ID set would cause improper encoding of its feature IDs.
14+
- Fixed a crash that would occur when duplicating an `ACesiumGeoreference`.
15+
- Fixed a bug that caused tilesets to render incorrectly when Dynamic Material Instances were used for their material settings.
16+
- Removed an unnecessary copy operation that happened while constructing tile meshes.
17+
18+
In addition to the above, this release updates [cesium-native](https://github.com/CesiumGS/cesium-native) from v0.47.0 to v0.48.0. See the [changelog](https://github.com/CesiumGS/cesium-native/blob/main/CHANGES.md) for a complete list of changes in cesium-native.
1019

1120
### v2.16.0 - 2025-05-01
1221

CesiumForUnreal.uplugin

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"FileVersion": 3,
3-
"Version": 75,
4-
"VersionName": "2.16.0",
3+
"Version": 76,
4+
"VersionName": "2.16.1",
55
"FriendlyName": "Cesium for Unreal",
66
"Description": "Unlock the 3D geospatial ecosystem in Unreal Engine with real-world 3D content and a high accuracy full-scale WGS84 globe.",
77
"Category": "Geospatial",

Documentation/performance-profiling-with-unreal-insights.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Unreal Insights can display the scope of timing events as well as activity acros
77

88
# Set up a repeatable test
99

10-
In this example, we will use our Cesium performance tests. Follow the steps outlined [here](https://github.com/CesiumGS/cesium-unreal/blob/profiling-documentation/Documentation/performance-profiling-setup-test.md).
10+
In this example, we will use our Cesium performance tests. Follow the steps outlined [here](performance-profiling-setup-test.md).
1111

1212
# Prepare for capture
1313

Source/CesiumRuntime/Private/Cesium3DTileset.cpp

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -232,17 +232,20 @@ ACesiumGeoreference* ACesium3DTileset::ResolveGeoreference() {
232232
ACesiumGeoreference::GetDefaultGeoreferenceForActor(this);
233233
}
234234

235-
UCesium3DTilesetRoot* pRoot = Cast<UCesium3DTilesetRoot>(this->RootComponent);
236-
if (pRoot) {
237-
this->ResolvedGeoreference->OnGeoreferenceUpdated.AddUniqueDynamic(
238-
pRoot,
239-
&UCesium3DTilesetRoot::HandleGeoreferenceUpdated);
240-
this->ResolvedGeoreference->OnEllipsoidChanged.AddUniqueDynamic(
241-
this,
242-
&ACesium3DTileset::HandleOnGeoreferenceEllipsoidChanged);
243-
244-
// Update existing tile positions, if any.
245-
pRoot->HandleGeoreferenceUpdated();
235+
if (this->ResolvedGeoreference) {
236+
UCesium3DTilesetRoot* pRoot =
237+
Cast<UCesium3DTilesetRoot>(this->RootComponent);
238+
if (pRoot) {
239+
this->ResolvedGeoreference->OnGeoreferenceUpdated.AddUniqueDynamic(
240+
pRoot,
241+
&UCesium3DTilesetRoot::HandleGeoreferenceUpdated);
242+
this->ResolvedGeoreference->OnEllipsoidChanged.AddUniqueDynamic(
243+
this,
244+
&ACesium3DTileset::HandleOnGeoreferenceEllipsoidChanged);
245+
246+
// Update existing tile positions, if any.
247+
pRoot->HandleGeoreferenceUpdated();
248+
}
246249
}
247250

248251
return this->ResolvedGeoreference;
@@ -1562,7 +1565,7 @@ ACesium3DTileset::CreateViewStateFromViewParameters(
15621565
glm::dvec3 tilesetCameraUp = glm::normalize(
15631566
glm::dvec3(unrealWorldToTileset * glm::dvec4(up.X, up.Y, up.Z, 0.0)));
15641567

1565-
return Cesium3DTilesSelection::ViewState::create(
1568+
return Cesium3DTilesSelection::ViewState(
15661569
tilesetCameraLocation,
15671570
tilesetCameraFront,
15681571
tilesetCameraUp,

Source/CesiumRuntime/Private/Cesium3DTilesetRoot.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,12 @@ void UCesium3DTilesetRoot::_updateAbsoluteLocation() {
6262

6363
void UCesium3DTilesetRoot::_updateTilesetToUnrealRelativeWorldTransform() {
6464
ACesium3DTileset* pTileset = this->GetOwner<ACesium3DTileset>();
65+
ACesiumGeoreference* pGeoreference = pTileset->ResolveGeoreference();
6566

66-
this->_tilesetToUnrealRelativeWorld = VecMath::createMatrix4D(
67-
pTileset->ResolveGeoreference()
68-
->ComputeEarthCenteredEarthFixedToUnrealTransformation());
67+
if (pGeoreference) {
68+
this->_tilesetToUnrealRelativeWorld = VecMath::createMatrix4D(
69+
pGeoreference->ComputeEarthCenteredEarthFixedToUnrealTransformation());
6970

70-
pTileset->UpdateTransformFromCesium();
71+
pTileset->UpdateTransformFromCesium();
72+
}
7173
}

0 commit comments

Comments
 (0)