Skip to content

Commit

Permalink
Merge branch 'main' of github.com:CesiumGS/cesium-unreal into unload-…
Browse files Browse the repository at this point in the history
…external-tilesets-test
  • Loading branch information
azrogers committed Jun 20, 2024
2 parents 91905da + 0767c14 commit 69fdee7
Show file tree
Hide file tree
Showing 48 changed files with 1,289 additions and 610 deletions.
9 changes: 8 additions & 1 deletion .github/actions/install-unreal-macos/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ inputs:
aws-secret-access-key:
required: true
type: string
unreal-program-name:
required: true
type: string
runs:
using: composite
steps:
Expand All @@ -19,9 +22,13 @@ runs:
AWS_SECRET_ACCESS_KEY: ${{ inputs.aws-secret-access-key }}
shell: bash
run: |
df -h
aws s3 cp ${{ inputs.unreal-engine-zip }} ./ue.zip --no-progress
- name: Unzip Unreal Engine
shell: bash
run: |
unzip -q ue.zip -d $HOME
df -h
unzip -q ue.zip "${{ inputs.unreal-program-name }}/Engine/*" -d $HOME -x "${{ inputs.unreal-program-name }}/Engine/Binaries/Mac/LiveLinkHub-Mac-Shipping.app/*" "${{ inputs.unreal-program-name }}/Engine/Binaries/Mac/Android/*" "${{ inputs.unreal-program-name }}/Engine/Binaries/Mac/UnrealGame.app/*" "${{ inputs.unreal-program-name }}/Engine/Binaries/Mac/UnrealGame-Mac-Shipping.app/*" "${{ inputs.unreal-program-name }}/Engine/Binaries/Mac/UnrealGame-Mac-DebugGame.app/*" "${{ inputs.unreal-program-name }}/Engine/Binaries/Mac/UnrealGame-Mac-DebugGame" "${{ inputs.unreal-program-name }}/Engine/Binaries/Mac/UnrealGame" "${{ inputs.unreal-program-name }}/Engine/Binaries/Mac/UnrealGame-Mac-Shipping" "${{ inputs.unreal-program-name }}/Engine/Binaries/Mac/*.dSYM"
df -h
rm ue.zip
df -h
67 changes: 38 additions & 29 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@ jobs:
run: |
export CESIUM_UNREAL_VERSION=$GITHUB_REF_NAME
export BUILD_CESIUM_UNREAL_PACKAGE_NAME="CesiumForUnreal-52-${CESIUM_UNREAL_VERSION}"
export BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME="CesiumForUnreal-52-SourceOnly-${CESIUM_UNREAL_VERSION}"
# Make these available to subsequent steps
echo "CESIUM_UNREAL_VERSION=$CESIUM_UNREAL_VERSION" >> $GITHUB_ENV
echo "BUILD_CESIUM_UNREAL_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_PACKAGE_NAME" >> $GITHUB_ENV
echo "BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME" >> $GITHUB_ENV
- name: Download iOS build
uses: actions/download-artifact@v4
with:
Expand All @@ -114,21 +116,22 @@ jobs:
with:
name: CesiumForUnreal-52-windows-${{ env.CESIUM_UNREAL_VERSION}}
path: combine
- name: Unreal Marketplace Workaround
run: |
# The UE Marketplace deletes our Intermediates directory and fails to produces new
# intermediates for the Linux platform. The Marketplace team has suggested we copy
# them to the LinuxIntermediate directory instead, as a workaround. Users still have
# to move these files to the correct place manually, though, in order for Linux builds
# to succeed.
mkdir -p combine/CesiumForUnreal/LinuxIntermediate/Build/Linux
cp -r combine/CesiumForUnreal/Intermediate/Build/Linux/* combine/CesiumForUnreal/LinuxIntermediate/Build/Linux
- name: Publish combined package artifact
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.BUILD_CESIUM_UNREAL_PACKAGE_NAME}}
path: combine
- name: Publish combined package artifact for the Unreal Marketplace
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME}}
path: |
combine
# These are built by Epic, and including them seems to confuse their process.
!combine/CesiumForUnreal/Binaries/**/*
!combine/CesiumForUnreal/Intermediate/**/*
TestPackage52:
needs: [Combine52]
uses: ./.github/workflows/testPackageOnWindows.yml
Expand Down Expand Up @@ -216,9 +219,11 @@ jobs:
run: |
export CESIUM_UNREAL_VERSION=$GITHUB_REF_NAME
export BUILD_CESIUM_UNREAL_PACKAGE_NAME="CesiumForUnreal-53-${CESIUM_UNREAL_VERSION}"
export BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME="CesiumForUnreal-53-SourceOnly-${CESIUM_UNREAL_VERSION}"
# Make these available to subsequent steps
echo "CESIUM_UNREAL_VERSION=$CESIUM_UNREAL_VERSION" >> $GITHUB_ENV
echo "BUILD_CESIUM_UNREAL_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_PACKAGE_NAME" >> $GITHUB_ENV
echo "BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME" >> $GITHUB_ENV
- name: Download iOS build
uses: actions/download-artifact@v4
with:
Expand All @@ -244,21 +249,22 @@ jobs:
with:
name: CesiumForUnreal-53-windows-${{ env.CESIUM_UNREAL_VERSION}}
path: combine
- name: Unreal Marketplace Workaround
run: |
# The UE Marketplace deletes our Intermediates directory and fails to produces new
# intermediates for the Linux platform. The Marketplace team has suggested we copy
# them to the LinuxIntermediate directory instead, as a workaround. Users still have
# to move these files to the correct place manually, though, in order for Linux builds
# to succeed.
mkdir -p combine/CesiumForUnreal/LinuxIntermediate/Build/Linux
cp -r combine/CesiumForUnreal/Intermediate/Build/Linux/* combine/CesiumForUnreal/LinuxIntermediate/Build/Linux
- name: Publish combined package artifact
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.BUILD_CESIUM_UNREAL_PACKAGE_NAME}}
path: combine
- name: Publish combined package artifact for the Unreal Marketplace
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME}}
path: |
combine
# These are built by Epic, and including them seems to confuse their process.
!combine/CesiumForUnreal/Binaries/**/*
!combine/CesiumForUnreal/Intermediate/**/*
TestPackage53:
needs: [Combine53]
uses: ./.github/workflows/testPackageOnWindows.yml
Expand Down Expand Up @@ -320,7 +326,7 @@ jobs:
uses: ./.github/workflows/buildMac.yml
secrets: inherit
with:
runner-label: macos-12
runner-label: macos-13
unreal-engine-version: "5.4.0"
unreal-engine-zip: "s3://cesium-unreal-engine/5.4.0/UE_54_macOS.zip"
unreal-program-name: "UE_5.4"
Expand All @@ -330,7 +336,7 @@ jobs:
uses: ./.github/workflows/buildiOS.yml
secrets: inherit
with:
runner-label: macos-12
runner-label: macos-13
unreal-engine-version: "5.4.0"
unreal-engine-zip: "s3://cesium-unreal-engine/5.4.0/UE_54_macOS.zip"
unreal-program-name: "UE_5.4"
Expand All @@ -346,9 +352,11 @@ jobs:
run: |
export CESIUM_UNREAL_VERSION=$GITHUB_REF_NAME
export BUILD_CESIUM_UNREAL_PACKAGE_NAME="CesiumForUnreal-54-${CESIUM_UNREAL_VERSION}"
export BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME="CesiumForUnreal-54-SourceOnly-${CESIUM_UNREAL_VERSION}"
# Make these available to subsequent steps
echo "CESIUM_UNREAL_VERSION=$CESIUM_UNREAL_VERSION" >> $GITHUB_ENV
echo "BUILD_CESIUM_UNREAL_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_PACKAGE_NAME" >> $GITHUB_ENV
echo "BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME=$BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME" >> $GITHUB_ENV
- name: Download iOS build
uses: actions/download-artifact@v4
with:
Expand All @@ -374,21 +382,22 @@ jobs:
with:
name: CesiumForUnreal-54-windows-${{ env.CESIUM_UNREAL_VERSION}}
path: combine
- name: Unreal Marketplace Workaround
run: |
# The UE Marketplace deletes our Intermediates directory and fails to produces new
# intermediates for the Linux platform. The Marketplace team has suggested we copy
# them to the LinuxIntermediate directory instead, as a workaround. Users still have
# to move these files to the correct place manually, though, in order for Linux builds
# to succeed.
mkdir -p combine/CesiumForUnreal/LinuxIntermediate/Build/Linux
cp -r combine/CesiumForUnreal/Intermediate/Build/Linux/* combine/CesiumForUnreal/LinuxIntermediate/Build/Linux
- name: Publish combined package artifact
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.BUILD_CESIUM_UNREAL_PACKAGE_NAME}}
path: combine
- name: Publish combined package artifact for the Unreal Marketplace
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.BUILD_CESIUM_UNREAL_SOURCE_ONLY_PACKAGE_NAME}}
path: |
combine
# These are built by Epic, and including them seems to confuse their process.
!combine/CesiumForUnreal/Binaries/**/*
!combine/CesiumForUnreal/Intermediate/**/*
TestPackage54:
needs: [Combine54]
uses: ./.github/workflows/testPackageOnWindows.yml
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/buildMac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ jobs:
unreal-engine-zip: ${{ inputs.unreal-engine-zip }}
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
unreal-program-name: ${{ inputs.unreal-program-name }}
- name: Set environment variables
run: |
export CESIUM_UNREAL_VERSION=$GITHUB_REF_NAME
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/buildiOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ jobs:
unreal-engine-zip: ${{ inputs.unreal-engine-zip }}
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
unreal-program-name: ${{ inputs.unreal-program-name }}
- name: Build cesium-native
run: |
mkdir -p extern/build-ios
Expand Down
28 changes: 27 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,39 @@

### ? - ?

##### Fixes :wrench:

- Removed unnecessary alpha check when selecting translucent base materials.
- Fixed a crash caused by `CesiumSunSky` when no viewport is activated in the Editor.

### v2.6.0 - 2024-06-03

##### Breaking Changes :mega:

- Renamed the following properties on `CesiumWebMapTileServiceRasterOverlay`:
- `Url` -> `BaseUrl`
- `West` -> `RectangleWest`
- `South` -> `RectangleSouth`
- `East` -> `RectangleEast`
- `North` -> `RectangleNorth`
- `UseWebMercatorProjection` has been deprecated on `CesiumWebMapTileServiceRasterOverlay`. Instead, use the `Projection` enum property to specify between `Geographic` or `WebMercator` projection.

##### Additions :tada:

- Improved DynamicPawn movement by interpolating to its intended speed. This provides smoother movement over areas with large height variation, e.g., when flying over buildings in a city.
- Added support for Instanced 3D Meshes (I3DM) and the glTF `EXT_mesh_gpu_instancing` extension.
- Improved DynamicPawn movement by interpolating to its intended speed. This provides smoother movement over areas with large height variation, e.g., when flying over buildings in a city.
- Added `TileWidth` and `TileHeight` properties to `CesiumWebMapTileServiceRasterOverlay`.

##### Fixes :wrench:

- Fixed an issue with pixel dithering artifacts that could appear on tilesets.
- Fixed an issue where DynamicPawn could get stuck after interrupting a flight from `UCesiumFlyToComponent`.
- Fixed a bug where `CesiumTileMapServiceRasterOverlay`, `CesiumWebMapServiceRasterOverlay`, and `CesiumWebMapTileServiceRasterOverlay` would attempt to load empty URLs.
- Fixed a bug that caused some textures shared between multiple glTF primitives to be missing entirely.
- Fixed a bug that caused tilesets to fail to load with the "Experimental Occlusion Culling Feature" enabled.
- Fixed a problem that could cause linker errors when packaging a game using both Cesium for Unreal and the Pixel Streaming plugin in Unreal Engine 5.4.

In addition to the above, this release updates [cesium-native](https://github.com/CesiumGS/cesium-native) from v0.35.0 to v0.36.0. See the [changelog](https://github.com/CesiumGS/cesium-native/blob/main/CHANGES.md) for a complete list of changes in cesium-native.

### v2.5.0 - 2024-05-01

Expand Down
4 changes: 2 additions & 2 deletions CesiumForUnreal.uplugin
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"FileVersion": 3,
"Version": 59,
"VersionName": "2.5.0",
"Version": 60,
"VersionName": "2.6.0",
"FriendlyName": "Cesium for Unreal",
"Description": "Unlock the 3D geospatial ecosystem in Unreal Engine with real-world 3D content and a high accuracy full-scale WGS84 globe.",
"Category": "Geospatial",
Expand Down
7 changes: 7 additions & 0 deletions Config/Engine.ini
Original file line number Diff line number Diff line change
Expand Up @@ -152,3 +152,10 @@ AspectRatioAxisConstraint=AspectRatio_MaintainXFOV
+EnumRedirects=(OldName="ECesiumMetadataPackedGpuType", NewName="ECesiumMetadataPackedGpuType_DEPRECATED", ValueChanges=(("None","Unknown_DEPRECATED"),("Uint8","Uint8_DEPRECATED"),("Float","Float_DEPRECATED")))

+FunctionRedirects=(OldName="CesiumFeatureIdTextureBlueprintLibrary.GetTextureCoordinateIndex", NewName="CesiumFeatureIdTextureBlueprintLibrary.GetUnrealUVChannel")

+PropertyRedirects=(OldName="CesiumWebMapTileServiceRasterOverlay.Url", NewName="CesiumWebMapTileServiceRasterOverlay.BaseUrl")
+PropertyRedirects=(OldName="CesiumWebMapTileServiceRasterOverlay.West", NewName="CesiumWebMapTileServiceRasterOverlay.RectangleWest")
+PropertyRedirects=(OldName="CesiumWebMapTileServiceRasterOverlay.South", NewName="CesiumWebMapTileServiceRasterOverlay.RectangleSouth")
+PropertyRedirects=(OldName="CesiumWebMapTileServiceRasterOverlay.East", NewName="CesiumWebMapTileServiceRasterOverlay.RectangleEast")
+PropertyRedirects=(OldName="CesiumWebMapTileServiceRasterOverlay.North", NewName="CesiumWebMapTileServiceRasterOverlay.RectangleNorth")
+PropertyRedirects=(OldName="CesiumWebMapTileServiceRasterOverlay.UseWebMercatorProjection", NewName="CesiumWebMapTileServiceRasterOverlay.UseWebMercatorProjection_DEPRECATED")
13 changes: 1 addition & 12 deletions Config/FilterPlugin.ini
Original file line number Diff line number Diff line change
@@ -1,20 +1,9 @@
[FilterPlugin]
/Config/FilterPlugin.ini
/Config/Engine.ini
/Config/Editor.ini
/LICENSE
/README.md
/ThirdParty.json
/CHANGES.md
/Shaders/*
/Intermediate/Build/Linux/*
/Binaries/Linux/*
/LinuxIntermediate/Build/Linux/UnrealEditor/Inc/CesiumEditor/UHT/*
/LinuxIntermediate/Build/Linux/UnrealEditor/Inc/CesiumRuntime/UHT/*
/LinuxIntermediate/Build/Linux/UnrealGame/Development/CesiumRuntime/*
/LinuxIntermediate/Build/Linux/UnrealGame/Inc/CesiumRuntime/UHT/*
/LinuxIntermediate/Build/Linux/UnrealGame/Shipping/CesiumRuntime/*
/LinuxIntermediate/Build/Linux/x64/UnrealGame/Development/CesiumRuntime/*
/LinuxIntermediate/Build/Linux/x64/UnrealGame/Shipping/CesiumRuntime/*
/LinuxIntermediate/Build/Linux/B4D820EA/UnrealGame/Development/CesiumRuntime/*
/LinuxIntermediate/Build/Linux/B4D820EA/UnrealGame/Inc/CesiumRuntime/UHT/*
/LinuxIntermediate/Build/Linux/B4D820EA/UnrealGame/Shipping/CesiumRuntime/*
Binary file modified Content/Materials/Layers/ML_DitherFade.uasset
Binary file not shown.
Binary file modified Content/Materials/M_CesiumBaseMaterial.uasset
Binary file not shown.
4 changes: 2 additions & 2 deletions Source/CesiumRuntime/Private/Cesium3DTileset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -862,7 +862,7 @@ class UnrealResourcePreparer
rasterTile,
static_cast<CesiumTextureUtility::ReferenceCountedUnrealTexture*>(
pMainThreadRendererResources)
->pUnrealTexture,
->getUnrealTexture(),
translation,
scale,
overlayTextureCoordinateID);
Expand All @@ -888,7 +888,7 @@ class UnrealResourcePreparer
rasterTile,
static_cast<CesiumTextureUtility::ReferenceCountedUnrealTexture*>(
pMainThreadRendererResources)
->pUnrealTexture);
->getUnrealTexture());
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Source/CesiumRuntime/Private/CesiumCreditSystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ void ACesiumCreditSystem::removeCreditsFromViewports() {
#endif

if (IsValid(CreditsWidget)) {
CreditsWidget->RemoveFromViewport();
CreditsWidget->RemoveFromParent();
}
}

Expand Down
14 changes: 9 additions & 5 deletions Source/CesiumRuntime/Private/CesiumFeatureIdSet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ FCesiumFeatureIdSet::FCesiumFeatureIdSet(
_featureIDSetType(ECesiumFeatureIdSetType::None),
_featureCount(FeatureID.featureCount),
_nullFeatureID(FeatureID.nullFeatureId.value_or(-1)),
_propertyTableIndex(FeatureID.propertyTable.value_or(-1)),
_propertyTableIndex(FeatureID.propertyTable),
_label(FString(FeatureID.label.value_or("").c_str())) {
FString propertyTableName;

Expand Down Expand Up @@ -151,16 +151,20 @@ int64 UCesiumFeatureIdSetBlueprintLibrary::GetFeatureIDFromHit(
// Find the first vertex of the face.
const UCesiumGltfPrimitiveComponent* pGltfComponent =
Cast<UCesiumGltfPrimitiveComponent>(Hit.Component);
if (!IsValid(pGltfComponent) || !pGltfComponent->pMeshPrimitive) {
if (!IsValid(pGltfComponent)) {
return -1;
}

const CesiumPrimitiveData& primData = pGltfComponent->getPrimitiveData();
if (!primData.pMeshPrimitive) {
return -1;
}
auto VertexIndices = std::visit(
CesiumGltf::IndicesForFaceFromAccessor{
Hit.FaceIndex,
pGltfComponent->PositionAccessor.size(),
pGltfComponent->pMeshPrimitive->mode},
pGltfComponent->IndexAccessor);
primData.PositionAccessor.size(),
primData.pMeshPrimitive->mode},
primData.IndexAccessor);

int64 VertexIndex = VertexIndices[0];

Expand Down
11 changes: 5 additions & 6 deletions Source/CesiumRuntime/Private/CesiumFeatureIdTexture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,17 +77,16 @@ int64 UCesiumFeatureIdTextureBlueprintLibrary::GetGltfTextureCoordinateSetIndex(
int64 UCesiumFeatureIdTextureBlueprintLibrary::GetUnrealUVChannel(
const UPrimitiveComponent* PrimitiveComponent,
UPARAM(ref) const FCesiumFeatureIdTexture& FeatureIDTexture) {
const UCesiumGltfPrimitiveComponent* pPrimitive =
Cast<UCesiumGltfPrimitiveComponent>(PrimitiveComponent);
if (!pPrimitive ||
const auto* pCesiumPrimitive = Cast<ICesiumPrimitive>(PrimitiveComponent);
if (!pCesiumPrimitive ||
FeatureIDTexture._status != ECesiumFeatureIdTextureStatus::Valid) {
return -1;
}

auto textureCoordinateIndexIt = pPrimitive->GltfToUnrealTexCoordMap.find(
const CesiumPrimitiveData& primData = pCesiumPrimitive->getPrimitiveData();
auto textureCoordinateIndexIt = primData.GltfToUnrealTexCoordMap.find(
UCesiumFeatureIdTextureBlueprintLibrary::GetGltfTextureCoordinateSetIndex(
FeatureIDTexture));
if (textureCoordinateIndexIt == pPrimitive->GltfToUnrealTexCoordMap.end()) {
if (textureCoordinateIndexIt == primData.GltfToUnrealTexCoordMap.end()) {
return -1;
}

Expand Down
14 changes: 6 additions & 8 deletions Source/CesiumRuntime/Private/CesiumFeaturesMetadataComponent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -381,14 +381,13 @@ void UCesiumFeaturesMetadataComponent::AutoFill() {
pGltf->GetChildrenComponents(false, childComponents);

for (const USceneComponent* pChildComponent : childComponents) {
const UCesiumGltfPrimitiveComponent* pGltfPrimitive =
Cast<UCesiumGltfPrimitiveComponent>(pChildComponent);
if (!pGltfPrimitive) {
const auto* pCesiumPrimitive = Cast<ICesiumPrimitive>(pChildComponent);
if (!pCesiumPrimitive) {
continue;
}

const FCesiumPrimitiveFeatures& primitiveFeatures =
pGltfPrimitive->Features;
const CesiumPrimitiveData& primData =
pCesiumPrimitive->getPrimitiveData();
const FCesiumPrimitiveFeatures& primitiveFeatures = primData.Features;
const TArray<FCesiumPropertyTable>& propertyTables =
UCesiumModelMetadataBlueprintLibrary::GetPropertyTables(
modelMetadata);
Expand All @@ -397,8 +396,7 @@ void UCesiumFeaturesMetadataComponent::AutoFill() {
primitiveFeatures,
propertyTables);

const FCesiumPrimitiveMetadata& primitiveMetadata =
pGltfPrimitive->Metadata;
const FCesiumPrimitiveMetadata& primitiveMetadata = primData.Metadata;
const TArray<FCesiumPropertyTexture>& propertyTextures =
UCesiumModelMetadataBlueprintLibrary::GetPropertyTextures(
modelMetadata);
Expand Down
Loading

0 comments on commit 69fdee7

Please sign in to comment.