Releases: CesiumGS/cesium-unreal
Cesium for Unreal v1.8.1
v1.8.1 - 2021-12-02
This release includes support for Unreal Engine v4.26 and v4.27. Please select the appropriate ZIP for your version.
In this release, the cesium-native binaries are built using Xcode 11.3 on macOS instead of Xcode 12. Other platforms are unchanged from v1.8.0.
Cesium for Unreal v1.8.0
v1.8.0 - 2021-12-01
This release includes support for Unreal Engine v4.26 and v4.27. Please select the appropriate ZIP for your version.
Additions 🎉
Cesium3DTileset
now has options for enabling custom depth and stencil buffer.- Added
CesiumDebugColorizeTilesRasterOverlay
to visualize how a tileset is divided into tiles. - Added
Log Selection Stats
debug option to theCesium3DTileset
Actor. - Exposed raster overlay properties to Blueprints, so that overlays can be created and manipulated with Blueprints.
Fixes 🔧
- Cesium for Unreal now does a much better job of releasing memory when the Unreal Engine garbage collector is not active, such as in the Editor.
- Fixed a bug that could cause an incorrect field-of-view angle to be used for tile selection in the Editor.
- Fixed a bug that caused
GlobeAwareDefaultPawn
(and its derived classes, notablyDynamicPawn
) to completely ignore short flights.
In addition to the above, this release updates cesium-native from v0.9.0 to v0.10.0. See the changelog for a complete list of changes in cesium-native.
Cesium for Unreal v1.7.0
v1.7.0 - 2021-11-01
This release includes support for Unreal Engine v4.26 and v4.27. Please select the appropriate ZIP for your version.
Breaking Changes 📣
- Removed
CesiumGlobeAnchorParent
, which was deprecated in v1.3.0. TheCesiumGlobeAnchorParent
functionality can be recreated using an empty actor with aCesiumGlobeAnchorComponent
. - Removed the
FixTransformOnOriginRebase
property fromCesiumGeoreferenceComponent
, and the component now always acts as if it is enabled. This should now work correctly even for objects that are moved by physics or other Unreal Engine mechanisms. - The
SnapToEastSouthUp
function onCesiumGeoreference
no longer resets the Scale back to 1.0. It only modifies the rotation. - The following
CesiumGeoreferenceComponent
Blueprints and C++ functions no longer take aMaintainRelativeOrientation
parameter. Instead, this behavior is controlled by theAdjustOrientationForGlobeWhenMoving
property.MoveToLongitudeLatitudeHeight
InaccurateMoveToLongitudeLatitudeHeight
MoveToECEF
InaccurateMoveToECEF
- Renamed
CesiumGeoreferenceComponent
toCesiumGlobeAnchorComponent
. CesiumSunSky
has been converted from Blueprints to C++. Backward compatibility should be preserved in most cases, but some less common scenarios may break.GlobeAwareDefaultPawn
,DynamicPawn
, andCesiumSunSky
no longer have aGeoreference
property. Instead, they have aCesiumGlobeAnchor
component that has aGeoreference
property.- The
Georeference
property on most Cesium types can now be null if it has not been set explicitly in the Editor. To get the effective Georeference, including one that has been discovered in the level, use theResolvedGeoreference
property or call theResolveGeoreference
function. - Removed the option to locate the Georeference at the "Bounding Volume Origin". It was confusing and almost never useful.
- The
CheckForNewSubLevels
andJumpToCurrentLevel
functions inCesiumGeoreference
have been removed. New sub-levels now automatically appear without an explicit check, and the current sub-level can be changed using the standard Unreal Engine Levels panel. - Removed the
CurrentLevelIndex
property fromCesiumGeoreference
. The sub-level that is currently active in the Editor can be queried with theGetCurrentLevel
function of theWorld
. - Removed the
SunSky
property fromCesiumGeoreference
. TheCesiumSunSky
now holds a reference to theCesiumGeoreference
, rather than the other way around. - The following Blueprints and C++ functions on
CesiumGeoreference
have been renamed. CoreRedirects have been provided to handle the renames automatically for Blueprints.TransformLongitudeLatitudeHeightToUe
toTransformLongitudeLatitudeHeightToUnreal
InaccurateTransformLongitudeLatitudeHeightToUe
toInaccurateTransformLongitudeLatitudeHeightToUnreal
TransformUeToLongitudeLatitudeHeight
toTransformLongitudeLatitudeHeightToUnreal
InaccurateTransformUeToLongitudeLatitudeHeight
toInaccurateTransformUnrealToLongitudeLatitudeHeight
TransformEcefToUe
toTransformEcefToUnreal
InaccurateTransformEcefToUe
toInaccurateTransformEcefToUnreal
TransformUeToEcef
toTransformUnrealToEcef
InaccurateTransformUeToEcef
toInaccurateTransformUnrealToEcef
TransformRotatorUeToEnu
toTransformRotatorUnrealToEastNorthUp
InaccurateTransformRotatorUeToEnu
toInaccurateTransformRotatorUnrealToEastNorthUp
TransformRotatorEnuToUe
toTransformRotatorEastNorthUpToUnreal
InaccurateTransformRotatorEnuToUe
toInaccurateTransformRotatorEastNorthUpToUnreal
- The following C++ functions on
CesiumGeoreference
have been removed:GetGeoreferencedToEllipsoidCenteredTransform
andGetEllipsoidCenteredToGeoreferencedTransform
moved toGeoTransforms
, which is accessible via thegetGeoTransforms
function onCesiumGeoreference
.GetUnrealWorldToEllipsoidCenteredTransform
has been replaced withTransformUnrealToEcef
except that the latter takes standard Unreal world coordinates rather than absolute world coordinates. If you have absolute world coordinates, subtract the World'sOriginLocation
before calling the new function.GetEllipsoidCenteredToUnrealWorldTransform
has been replaced withTransformEcefToUnreal
except that the latter returns standard Unreal world coordinates rather than absolute world coordinates. If you want absolute world coordinates, add the World'sOriginLocation
to the return value.AddGeoreferencedObject
should be replaced with a subscription to the newOnGeoreferenceUpdated
event.
Additions 🎉
- Improved the workflow for managing georeferenced sub-levels.
CesiumSunSky
now automatically adjusts the atmosphere size based on the player Pawn's position to avoid tiled artifacts in the atmosphere when viewing the globe from far away.GlobeAwareDefaultPawn
and derived classes likeDynamicPawn
now have aCesiumGlobeAnchorComponent
attached to them. This allows more consistent movement on the globe, and allows the pawn's Longitude/Latitude/Height or ECEF coordinates to be specified directly in the Editor.CesiumSunSky
now has anEnableMobileRendering
flag that, when enabled, switches to a mobile-compatible atmosphere rendering technique.CesiumCartographicPolygon
'sGlobeAnchor
andPolygon
are now exposed in the Editor and to Blueprints.- Added
InaccurateGetLongitudeLatitudeHeight
andInaccurateGetECEF
functions toCesiumGlobeAnchorComponent
, allowing access to the current position of a globe-anchored Actor from Blueprints. - Added support for collision object types on 'ACesium3DTileset' actors.
Fixes 🔧
- Cesium objects in a sub-level will now successfully find and use the
CesiumGeoreference
andCesiumCreditSystem
object in the Persistent Level when these properties are left unset. For best results, we suggest removing all instances of these objects from sub-levels. - Fixed a bug that made the Time-of-Day widget forget the time when it was closed and re-opened.
- Undo/Redo now work more reliably for
CesiumGlobeAnchor
properties. - We now explicitly free the
PlatformData
and renderer resources associated withUTexture2D
instances created for raster overlays when the textures are no longer needed. By relying less on the Unreal Engine garbage collector, this helps keep memory usage lower. It also keeps memory from going up so quickly in the Editor, which by default does not run the garbage collector at all.
In addition to the above, this release updates cesium-native from v0.8.0 to v0.9.0. See the changelog for a complete list of changes in cesium-native.
Cesium for Unreal v1.6.3
v1.6.3 - 2021-10-01
This release includes support for Unreal Engine v4.26 and v4.27. Please select the appropriate ZIP for your version.
Fixes 🔧
- Fixed a bug that caused incorrect tangents to be generated based on uninitialized texture coordinates.
- Fixed a bug that could cause vertices to be duplicated and tangents calculated even when not needed.
- Fixed a bug that caused the Cesium ion access token to sometimes be blank when adding an asset from the "Cesium ion Assets" panel while the "Cesium" panel is not open.
In addition to the above, this release updates cesium-native from v0.7.2 to v0.8.0. See the changelog for a complete list of changes in cesium-native.
Cesium for Unreal v1.6.2
v1.6.2 - 2021-09-14
This release includes support for Unreal Engine v4.26 and v4.27. Please select the appropriate ZIP for your version.
Compared to Cesium for Unreal v1.6.1, it only updates cesium-native from v0.7.1 to v0.7.2. See the changelog for a complete list of changes in cesium-native.
Cesium for Unreal v1.6.1
v1.6.1 - 2021-09-14
This release includes support Unreal Engine v4.26 and v4.27. Please select the appropriate ZIP for your version.
Fixes 🔧
- Fixed incorrect behavior when two sublevels overlap each other. Now the closest sublevel is chosen in that case.
- Fixed crash when
GlobeAwareDefaultPawn::FlyToLocation
was called when the pawn was not possessed. - Fixed a bug that caused clipping to work incorrectly for tiles that are partially water.
- Limited the length of names assigned to the ActorComponents created for 3D Tiles, to avoid a crash caused by an FName being too long with extremely long tileset URLs.
- Fixed a bug that caused 3D Tiles tile selection to take into account Editor viewports even when in Play-in-Editor mode.
- Fixed a bug in
DynamicPawn
that caused a divide-by-zero message to be printed to the Output Log. - Fixed a mismatch on Windows between Unreal Engine's compiler options and cesium-native's compiler options that could sometimes lead to crashes and other broken behavior.
In addition to the above, this release updates cesium-native from v0.7.0 to v0.7.1. See the changelog for a complete list of changes in cesium-native.
Cesium for Unreal v1.6.0
v1.6.0 - 2021-09-01
Please note that the binaries below work with Unreal Engine v4.26.x only. We expect a version for Unreal Engine v4.27.0 to be available on the Epic Marketplace soon.
Breaking Changes 📣
- Removed
ACesium3DTileset::OpacityMaskMaterial
. The regularMaterial
property is used instead. - Renamed
UCesiumMetadataFeatureTableBlueprintLibrary::GetPropertiesForFeatureID
toUCesiumMetadataFeatureTableBlueprintLibrary::GetMetadataValuesForFeatureID
. This is a breaking change for C++ code but Blueprints should be unaffected because of a CoreRedirect. - Renamed
UCesiumMetadataFeatureTableBlueprintLibrary::GetPropertiesAsStringsForFeatureID
toUCesiumMetadataFeatureTableBlueprintLibrary::GetMetadataValuesAsStringForFeatureID
. This is a breaking change for C++ code but it was not previously exposed to Blueprints.
Additions 🎉
- Added the ability to define a "Cesium Cartographic Polygon" and then use it to clip away part of a Cesium 3D Tileset.
- Multiple raster overlays per tileset are now supported.
- The default materials used to render Cesium 3D Tilesets are now built around Material Layers, making them easier to compose and customize.
- Added support for using
ASceneCapture2D
withACesium3DTileset
actors. - Added an editor option in
ACesium3DTileset
to optionally generate smooth normals for glTFs that originally did not have normals. - Added an editor option in
ACesium3DTileset
to disable the creation of physics meshes for its tiles. - Added a Refresh button on the Cesium ion Assets panel.
- Made
UCesiumMetadataFeatureTableBlueprintLibrary::GetMetadataValuesAsStringForFeatureID
,UCesiumMetadataFeatureTableBlueprintLibrary::GetProperties
, andUCesiumMetadataPrimitiveBlueprintLibrary::GetFirstVertexIDFromFaceID
callable from Blueprints. - Consolidated texture preparation code. Now raster overlay textures can generate mip-maps and the overlay texture preparation can happen partially on the load thread.
- The Cesium ion Assets panel now has two buttons for imagery assets, allowing the user to select whether the asset should replace the base overlay or be added on top.
Fixes 🔧
- Fixed indexed vertices being duplicated unnecessarily in certain situations in
UCesiumGltfComponent
.
In addition to the above, this release updates cesium-native from v0.6.0 to v0.7.0. See the changelog for a complete list of changes in cesium-native.
Cesium for Unreal v1.5.1
v1.5.1 - 2021-08-09
Fixes 🔧
- Fixed a bug that could cause mis-registration of feature metadata to the wrong features in Draco-compressed meshes.
- Fixed a bug that could cause a crash with VR/AR devices enabled but not in use.****
Cesium for Unreal v1.5.0
v1.5.0 - 2021-08-02
Additions 🎉
- Added support for reading per-feature metadata from glTFs with the
EXT_feature_metadata
extension or from 3D Tiles with a B3DM batch table and accessing it from Blueprints.
Fixes 🔧
- Fixed a bug introduced in v1.4.0 that made it impossible to add a "Blank 3D Tiles Tileset" using the Cesium panel without first signing in to Cesium ion.
- Fixed a bug that caused a crash when deleting a Cesium 3D Tileset Actor and then undoing that deletion.
In addition to the above, this release updates cesium-native from v0.5.0 to v0.6.0. See the changelog for a complete list of changes in cesium-native.
Cesium for Unreal v1.4.1
1.4.1 - 2021-07-13
Fixes 🔧
- Fixed linker warnings on macOS related to "different visibility settings."
- Fixed compile errors on Android in Unreal Engine versions prior to 4.26.2 caused by missing support for C++17.