Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions Source/CesiumRuntime/Private/Cesium3DTileset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include "UnrealPrepareRendererResources.h"
#include "VecMath.h"

THIRD_PARTY_INCLUDES_START
#include <Cesium3DTiles/ExtensionContent3dTilesContentVoxels.h>
#include <Cesium3DTilesSelection/EllipsoidTilesetLoader.h>
#include <Cesium3DTilesSelection/GltfModifier.h>
Expand All @@ -53,8 +54,7 @@
#include <Cesium3DTilesSelection/TilesetSharedAssetSystem.h>
#include <CesiumAsync/SharedAssetDepot.h>
#include <CesiumGeospatial/GlobeTransforms.h>
#include <CesiumGltf/ImageAsset.h>
#include <CesiumGltf/Ktx2TranscodeTargets.h>
#include <CesiumImage/Ktx2TranscodeTargets.h>
#include <CesiumIonClient/Connection.h>

#include <glm/gtc/matrix_inverse.hpp>
Expand All @@ -66,6 +66,7 @@

#include <Cesium3DTilesSelection/DebugTileStateDatabase.h>
#endif
THIRD_PARTY_INCLUDES_END

FCesium3DTilesetLoadFailure OnCesium3DTilesetLoadFailure{};

Expand Down Expand Up @@ -1099,7 +1100,7 @@ void ACesium3DTileset::LoadTileset() {

options.contentOptions.enableWaterMask = this->EnableWaterMask;

CesiumGltf::SupportedGpuCompressedPixelFormats supportedFormats;
CesiumImage::SupportedGpuCompressedPixelFormats supportedFormats;
supportedFormats.ETC1_RGB = GPixelFormats[EPixelFormat::PF_ETC1].Supported;
supportedFormats.ETC2_RGBA =
GPixelFormats[EPixelFormat::PF_ETC2_RGBA].Supported;
Expand All @@ -1118,7 +1119,7 @@ void ACesium3DTileset::LoadTileset() {
GPixelFormats[EPixelFormat::PF_ETC2_RG11_EAC].Supported;

options.contentOptions.ktx2TranscodeTargets =
CesiumGltf::Ktx2TranscodeTargets(supportedFormats, false);
CesiumImage::Ktx2TranscodeTargets(supportedFormats, false);

options.contentOptions.applyTextureTransform = false;

Expand Down
28 changes: 16 additions & 12 deletions Source/CesiumRuntime/Private/CesiumEncodedMetadataUtility.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,14 @@
#include "PixelFormat.h"
#include "TextureResource.h"
#include "UnrealMetadataConversions.h"

THIRD_PARTY_INCLUDES_START
#include <CesiumGltf/FeatureIdTextureView.h>
#include <CesiumGltf/PropertyTexturePropertyView.h>
#include <CesiumGltf/PropertyTextureView.h>
#include <CesiumImage/ImageAsset.h>
#include <CesiumUtility/Tracing.h>
THIRD_PARTY_INCLUDES_END
#include <unordered_map>

using namespace CesiumTextureUtility;
Expand Down Expand Up @@ -205,11 +209,11 @@ EncodedMetadataFeatureTable encodeMetadataFeatureTableAnyThreadPart(
? floorSqrtFeatureCount
: (floorSqrtFeatureCount + 1);

CesiumUtility::IntrusivePointer<CesiumGltf::ImageAsset> pImage =
new CesiumGltf::ImageAsset();
CesiumUtility::IntrusivePointer<CesiumImage::ImageAsset> pImage =
new CesiumImage::ImageAsset();
pImage->bytesPerChannel = encodedFormat.bytesPerChannel;
pImage->channels = encodedFormat.channels;
pImage->compressedPixelFormat = CesiumGltf::GpuCompressedPixelFormat::NONE;
pImage->compressedPixelFormat = CesiumImage::GpuCompressedPixelFormat::NONE;
pImage->height = pImage->width = ceilSqrtFeatureCount;
pImage->pixelData.resize(size_t(
pImage->width * pImage->height * pImage->channels *
Expand Down Expand Up @@ -293,7 +297,7 @@ EncodedMetadataFeatureTable encodeMetadataFeatureTableAnyThreadPart(
}

EncodedFeatureTexture encodeFeatureTextureAnyThreadPart(
TMap<const CesiumGltf::ImageAsset*, TWeakPtr<LoadedTextureResult>>&
TMap<const CesiumImage::ImageAsset*, TWeakPtr<LoadedTextureResult>>&
featureTexturePropertyMap,
const FFeatureTextureDescription& featureTextureDescription,
const FString& featureTextureName,
Expand Down Expand Up @@ -322,7 +326,7 @@ EncodedFeatureTexture encodeFeatureTextureAnyThreadPart(
const FCesiumPropertyTextureProperty& featureTextureProperty =
propertyIt.Value;

const CesiumGltf::ImageAsset* pImage = featureTextureProperty.getImage();
const CesiumImage::ImageAsset* pImage = featureTextureProperty.getImage();

if (!pImage) {
UE_LOG(
Expand Down Expand Up @@ -411,8 +415,8 @@ EncodedFeatureTexture encodeFeatureTextureAnyThreadPart(
if (pMappedUnrealImageIt) {
encodedFeatureTextureProperty.pTexture = pMappedUnrealImageIt->Pin();
} else {
CesiumUtility::IntrusivePointer<CesiumGltf::ImageAsset> pImageCopy =
new CesiumGltf::ImageAsset(*pImage);
CesiumUtility::IntrusivePointer<CesiumImage::ImageAsset> pImageCopy =
new CesiumImage::ImageAsset(*pImage);
encodedFeatureTextureProperty.pTexture =
MakeShared<LoadedTextureResult>(std::move(*loadTextureAnyThreadPart(
*pImageCopy,
Expand Down Expand Up @@ -462,7 +466,7 @@ EncodedMetadataPrimitive encodeMetadataPrimitiveAnyThreadPart(
}
}

TMap<const CesiumGltf::ImageAsset*, TWeakPtr<LoadedTextureResult>>
TMap<const CesiumImage::ImageAsset*, TWeakPtr<LoadedTextureResult>>
featureIdTextureMap;
featureIdTextureMap.Reserve(featureIdTextures.Num());

Expand Down Expand Up @@ -490,7 +494,7 @@ EncodedMetadataPrimitive encodeMetadataPrimitiveAnyThreadPart(
if (pFeatureIdTexture) {
const CesiumGltf::FeatureIdTextureView& featureIdTextureView =
pFeatureIdTexture->getFeatureIdTextureView();
const CesiumGltf::ImageAsset* pFeatureIdImage =
const CesiumImage::ImageAsset* pFeatureIdImage =
featureIdTextureView.getImage();

if (!pFeatureIdImage) {
Expand All @@ -517,8 +521,8 @@ EncodedMetadataPrimitive encodeMetadataPrimitiveAnyThreadPart(
if (pMappedUnrealImageIt) {
encodedFeatureIdTexture.pTexture = pMappedUnrealImageIt->Pin();
} else {
CesiumUtility::IntrusivePointer<CesiumGltf::ImageAsset> pImageCopy =
new CesiumGltf::ImageAsset(*pFeatureIdImage);
CesiumUtility::IntrusivePointer<CesiumImage::ImageAsset> pImageCopy =
new CesiumImage::ImageAsset(*pFeatureIdImage);
encodedFeatureIdTexture.pTexture = MakeShared<LoadedTextureResult>(
std::move(*loadTextureAnyThreadPart(
*pImageCopy,
Expand Down Expand Up @@ -599,7 +603,7 @@ EncodedMetadata encodeMetadataAnyThreadPart(
const TMap<FString, FCesiumPropertyTexture>& featureTextures =
UCesiumModelMetadataBlueprintLibrary::GetFeatureTextures(metadata);
result.encodedFeatureTextures.Reserve(featureTextures.Num());
TMap<const CesiumGltf::ImageAsset*, TWeakPtr<LoadedTextureResult>>
TMap<const CesiumImage::ImageAsset*, TWeakPtr<LoadedTextureResult>>
featureTexturePropertyMap;
featureTexturePropertyMap.Reserve(featureTextures.Num());
for (const auto& featureTextureIt : featureTextures) {
Expand Down
6 changes: 5 additions & 1 deletion Source/CesiumRuntime/Private/CesiumEncodedMetadataUtility.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ struct FFeatureTextureDescription;
struct FMetadataDescription;
struct FCesiumPrimitiveFeaturesDescription;

namespace CesiumImage {
struct ImageAsset;
}

/**
* DEPRECATED. Use EncodedFeaturesMetadata instead.
*/
Expand Down Expand Up @@ -106,7 +110,7 @@ EncodedMetadataFeatureTable encodeMetadataFeatureTableAnyThreadPart(

EncodedFeatureTexture encodeFeatureTextureAnyThreadPart(
TMap<
const CesiumGltf::ImageAsset*,
const CesiumImage::ImageAsset*,
TWeakPtr<CesiumTextureUtility::LoadedTextureResult>>&
featureTexturePropertyMap,
const FFeatureTextureDescription& featureTextureDescription,
Expand Down
3 changes: 3 additions & 0 deletions Source/CesiumRuntime/Private/CesiumGltfTextures.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@
#include "CesiumTextureResource.h"
#include "CesiumTextureUtility.h"
#include "ExtensionImageAssetUnreal.h"

THIRD_PARTY_INCLUDES_START
#include <CesiumGltf/AccessorView.h>
#include <CesiumGltf/Model.h>
#include <CesiumGltf/VertexAttributeSemantics.h>
#include <CesiumGltfReader/GltfReader.h>
THIRD_PARTY_INCLUDES_END

using namespace CesiumAsync;

Expand Down
10 changes: 7 additions & 3 deletions Source/CesiumRuntime/Private/CesiumPropertyTextureProperty.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
#include "CesiumGltfPrimitiveComponent.h"
#include "UnrealMetadataConversions.h"

THIRD_PARTY_INCLUDES_START
#include <CesiumGltf/KhrTextureTransform.h>
#include <CesiumGltf/MetadataConversions.h>
THIRD_PARTY_INCLUDES_END
#include <cstdint>
#include <limits>

Expand Down Expand Up @@ -332,12 +335,13 @@ const CesiumGltf::Sampler* FCesiumPropertyTextureProperty::getSampler() const {
});
}

const CesiumGltf::ImageAsset* FCesiumPropertyTextureProperty::getImage() const {
return propertyTexturePropertyCallback<const CesiumGltf::ImageAsset*>(
const CesiumImage::ImageAsset*
FCesiumPropertyTextureProperty::getImage() const {
return propertyTexturePropertyCallback<const CesiumImage::ImageAsset*>(
this->_property,
this->_valueType,
this->_normalized,
[](const auto& view) -> const CesiumGltf::ImageAsset* {
[](const auto& view) -> const CesiumImage::ImageAsset* {
return view.getImage();
});
}
Expand Down
29 changes: 17 additions & 12 deletions Source/CesiumRuntime/Private/CesiumTextureResource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@
#include "CesiumTextureUtility.h"
#include "Misc/CoreStats.h"
#include "RenderUtils.h"
#include <CesiumGltfReader/GltfReader.h>

THIRD_PARTY_INCLUDES_START
#include <CesiumImage/ImageAsset.h>
#include <CesiumImage/ImageDecoder.h>
THIRD_PARTY_INCLUDES_END

namespace {

Expand Down Expand Up @@ -79,7 +83,7 @@ class FCesiumUseExistingTextureResource : public FCesiumTextureResource {
class FCesiumCreateNewTextureResource : public FCesiumTextureResource {
public:
FCesiumCreateNewTextureResource(
CesiumGltf::ImageAsset& image,
CesiumImage::ImageAsset& image,
TextureGroup textureGroup,
uint32 width,
uint32 height,
Expand All @@ -95,7 +99,7 @@ class FCesiumCreateNewTextureResource : public FCesiumTextureResource {
virtual FTextureRHIRef InitializeTextureRHI() override;

private:
std::vector<CesiumGltf::ImageAssetMipPosition> _mipPositions;
std::vector<CesiumImage::ImageAssetMipPosition> _mipPositions;
std::vector<std::byte> _pixelData;
};

Expand Down Expand Up @@ -166,15 +170,16 @@ void CopyMip(
int32_t width,
int32_t height,
const std::vector<std::byte>& srcPixelData,
const std::vector<CesiumGltf::ImageAssetMipPosition>& srcMipPositions,
const std::vector<CesiumImage::ImageAssetMipPosition>& srcMipPositions,
uint32 mipIndex) {
size_t byteOffset = 0;
size_t byteSize = 0;
if (srcMipPositions.empty()) {
byteOffset = 0;
byteSize = srcPixelData.size();
} else {
const CesiumGltf::ImageAssetMipPosition& mipPos = srcMipPositions[mipIndex];
const CesiumImage::ImageAssetMipPosition& mipPos =
srcMipPositions[mipIndex];
byteOffset = mipPos.byteOffset;
byteSize = mipPos.byteSize;
}
Expand Down Expand Up @@ -254,7 +259,7 @@ FTextureRHIRef createAsyncTextureAndWait(
* @return The RHI texture reference.
*/
FTextureRHIRef CreateRHITexture2D_Async(
const CesiumGltf::ImageAsset& image,
const CesiumImage::ImageAsset& image,
EPixelFormat format,
bool sRGB) {
check(GRHISupportsAsyncTextureCreation);
Expand All @@ -280,7 +285,7 @@ FTextureRHIRef CreateRHITexture2D_Async(

void* mipsData[16];
for (size_t i = 0; i < mipCount; ++i) {
const CesiumGltf::ImageAssetMipPosition& mipPos = image.mipPositions[i];
const CesiumImage::ImageAssetMipPosition& mipPos = image.mipPositions[i];
mipsData[i] = (void*)(&image.pixelData[mipPos.byteOffset]);
}

Expand Down Expand Up @@ -312,7 +317,7 @@ void FCesiumTextureResourceDeleter::operator()(FCesiumTextureResource* p) {
}

/*static*/ FCesiumTextureResourceUniquePtr FCesiumTextureResource::CreateNew(
CesiumGltf::ImageAsset& imageCesium,
CesiumImage::ImageAsset& imageCesium,
TextureGroup textureGroup,
const std::optional<EPixelFormat>& overridePixelFormat,
TextureFilter filter,
Expand All @@ -326,7 +331,7 @@ void FCesiumTextureResourceDeleter::operator()(FCesiumTextureResource* p) {

if (needsMipMaps) {
std::optional<std::string> errorMessage =
CesiumGltfReader::ImageDecoder::generateMipMaps(imageCesium);
CesiumImage::ImageDecoder::generateMipMaps(imageCesium);
if (errorMessage) {
UE_LOG(
LogCesium,
Expand Down Expand Up @@ -387,7 +392,7 @@ void FCesiumTextureResourceDeleter::operator()(FCesiumTextureResource* p) {
std::vector<std::byte> pixelData;
imageCesium.pixelData.swap(pixelData);

std::vector<CesiumGltf::ImageAssetMipPosition> mipPositions;
std::vector<CesiumImage::ImageAssetMipPosition> mipPositions;
imageCesium.mipPositions.swap(mipPositions);

return pResult;
Expand Down Expand Up @@ -690,7 +695,7 @@ FTextureRHIRef FCesiumUseExistingTextureResource::InitializeTextureRHI() {
}

FCesiumCreateNewTextureResource::FCesiumCreateNewTextureResource(
CesiumGltf::ImageAsset& image,
CesiumImage::ImageAsset& image,
TextureGroup textureGroup,
uint32 width,
uint32 height,
Expand Down Expand Up @@ -785,7 +790,7 @@ FTextureRHIRef FCesiumCreateNewTextureResource::InitializeTextureRHI() {
std::vector<std::byte> pixelData;
this->_pixelData.swap(pixelData);

std::vector<CesiumGltf::ImageAssetMipPosition> mipPositions;
std::vector<CesiumImage::ImageAssetMipPosition> mipPositions;
this->_mipPositions.swap(mipPositions);

return rhiTexture;
Expand Down
10 changes: 8 additions & 2 deletions Source/CesiumRuntime/Private/CesiumTextureResource.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,14 @@
#include "CesiumCommon.h"
#include "Engine/Texture.h"
#include "TextureResource.h"

THIRD_PARTY_INCLUDES_START
#include <CesiumAsync/SharedAssetDepot.h>
#include <CesiumGltf/ImageAsset.h>
THIRD_PARTY_INCLUDES_END

namespace CesiumImage {
struct ImageAsset;
}

class FCesiumTextureResource;

Expand Down Expand Up @@ -48,7 +54,7 @@ class FCesiumTextureResource : public FTextureResource {
* created.
*/
static FCesiumTextureResourceUniquePtr CreateNew(
CesiumGltf::ImageAsset& imageCesium,
CesiumImage::ImageAsset& imageCesium,
TextureGroup textureGroup,
const std::optional<EPixelFormat>& overridePixelFormat,
TextureFilter filter,
Expand Down
Loading
Loading