This commit is contained in:
2025-04-18 10:46:49 +08:00
parent 88536f22da
commit 2915f46389
17 changed files with 171 additions and 105 deletions

View File

@@ -18,7 +18,7 @@ class ADismembermentPreviewActor : public AActor
{
public:
ADismembermentPreviewActor(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
: AActor(ObjectInitializer)
{
// Create a skeletal mesh component
SkeletalMeshComponent = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("SkeletalMeshComponent"));
@@ -60,11 +60,12 @@ void SDismembermentPreviewViewport::Construct(const FArguments& InArgs)
if (ProfileIndex != INDEX_NONE)
{
Settings->Profiles[ProfileIndex].bRotateLightingRig = false;
PreviewScene->SetLightDirection(Settings->Profiles[ProfileIndex].LightingRigRotation);
PreviewScene->SetSkyBrightness(Settings->Profiles[ProfileIndex].EnvironmentCubeMapBrightness);
PreviewScene->SetLightColor(Settings->Profiles[ProfileIndex].LightColor);
PreviewScene->SetLightIntensity(Settings->Profiles[ProfileIndex].LightBrightness);
PreviewScene->SetEnvironmentCubeMap(Settings->Profiles[ProfileIndex].EnvironmentCubeMap);
PreviewScene->SetLightDirection(FRotator(Settings->Profiles[ProfileIndex].LightingRigRotation, 0, 0));
// The following methods may not exist in UE5.5.4, temporarily commented out
// PreviewScene->SetSkyBrightness(Settings->Profiles[ProfileIndex].EnvironmentCubeMapBrightness);
// PreviewScene->SetLightColor(Settings->Profiles[ProfileIndex].LightColor);
// PreviewScene->SetLightIntensity(Settings->Profiles[ProfileIndex].LightBrightness);
// PreviewScene->SetEnvironmentCubeMap(Settings->Profiles[ProfileIndex].EnvironmentCubeMap);
}
// Create the preview actor
@@ -79,7 +80,11 @@ SDismembermentPreviewViewport::~SDismembermentPreviewViewport()
// Clean up the preview scene
if (PreviewScene.IsValid())
{
PreviewScene->RemoveComponent(PreviewActor);
// Cannot remove Actor directly, need to remove the Actor's root component
if (PreviewActor && PreviewActor->GetRootComponent())
{
PreviewScene->RemoveComponent(PreviewActor->GetRootComponent());
}
PreviewScene.Reset();
}
@@ -193,10 +198,11 @@ TSharedRef<FEditorViewportClient> SDismembermentPreviewViewport::MakeEditorViewp
ViewportClient->EngineShowFlags.SetVertexColors(false);
ViewportClient->EngineShowFlags.SetLightComplexity(false);
ViewportClient->EngineShowFlags.SetShaderComplexity(false);
ViewportClient->EngineShowFlags.SetStaticMeshLODColoration(false);
// The following methods may not exist in UE5.5.4, temporarily commented out
// ViewportClient->EngineShowFlags.SetStaticMeshLODColoration(false);
ViewportClient->EngineShowFlags.SetLightMapDensity(false);
ViewportClient->EngineShowFlags.SetLightInfluences(false);
ViewportClient->EngineShowFlags.SetOptimizeVizibility(false);
// ViewportClient->EngineShowFlags.SetOptimizeVizibility(false);
ViewportClient->EngineShowFlags.SetTextRender(true);
ViewportClient->EngineShowFlags.SetTestImage(false);
ViewportClient->EngineShowFlags.SetVisualizeLightCulling(false);
@@ -208,7 +214,8 @@ TSharedRef<FEditorViewportClient> SDismembermentPreviewViewport::MakeEditorViewp
ViewportClient->EngineShowFlags.SetHitProxies(false);
ViewportClient->EngineShowFlags.SetGBufferHints(false);
ViewportClient->EngineShowFlags.SetVisualizeShadingModels(false);
ViewportClient->EngineShowFlags.SetVisualizeAdaptiveDOF(false);
// The following methods may not exist in UE5.5.4, temporarily commented out
// ViewportClient->EngineShowFlags.SetVisualizeAdaptiveDOF(false);
ViewportClient->EngineShowFlags.SetVisualizeSSR(false);
ViewportClient->EngineShowFlags.SetVisualizeSSS(false);
ViewportClient->EngineShowFlags.SetVolumetricLightmap(true);
@@ -219,8 +226,8 @@ TSharedRef<FEditorViewportClient> SDismembermentPreviewViewport::MakeEditorViewp
ViewportClient->EngineShowFlags.SetTonemapper(true);
ViewportClient->EngineShowFlags.SetLumenReflections(true);
ViewportClient->EngineShowFlags.SetLumenGlobalIllumination(true);
ViewportClient->EngineShowFlags.SetVirtualShadowMaps(true);
ViewportClient->EngineShowFlags.SetNanite(true);
// ViewportClient->EngineShowFlags.SetVirtualShadowMaps(true);
// ViewportClient->EngineShowFlags.SetNanite(true);
return ViewportClient.ToSharedRef();
}
@@ -295,8 +302,14 @@ SDismembermentPreviewViewportClient::SDismembermentPreviewViewportClient(FPrevie
{
// Set up the viewport client
SetRealtime(true);
// In UE5.5.4, these variables may no longer be members of FEditorViewportClient
// We only keep the necessary settings, others are commented out
bSetListenerPosition = false;
bShouldCheckHitProxy = true;
// The following settings may no longer be supported in UE5.5.4, temporarily commented out
/*
bShowGrid = false;
bDisableInput = false;
bAllowMatineePreview = false;
@@ -334,81 +347,29 @@ SDismembermentPreviewViewportClient::SDismembermentPreviewViewportClient(FPrevie
bDrawPreviewShadowsInGame = false;
bEnableDirectLightMap = true;
bEnableIndirectLightMap = true;
bEnableColorizeDistancefieldLightingMask = false;
bEnableColorizeDistanceFieldLightingMaskGrayscale = false;
bEnableColorizeDistanceFieldLightingMaskColor = false;
bEnableColorizeDistanceFieldOcclusion = false;
bEnableColorizeDistanceFieldOcclusionGrayscale = false;
bEnableColorizeDistanceFieldOcclusionColor = false;
bEnableColorizeDistanceFieldLightingMaskGrayscale = false;
bEnableColorizeDistanceFieldLightingMaskColor = false;
bEnableColorizeDistanceFieldOcclusionGrayscale = false;
bEnableColorizeDistanceFieldOcclusionColor = false;
bEnableColorizeDistanceFieldLightingMask = false;
bEnableColorizeDistanceFieldOcclusion = false;
bEnableColorizeDistanceFieldGradient = false;
bEnableColorizeDistanceFieldGradientGrayscale = false;
bEnableColorizeDistanceFieldGradientColor = false;
bEnableColorizeDistanceFieldGradientGrayscale = false;
bEnableColorizeDistanceFieldGradientColor = false;
bEnableColorizeDistanceFieldGradient = false;
bEnableColorizeDistanceField = false;
bEnableColorizeDistanceFieldGrayscale = false;
bEnableColorizeDistanceFieldColor = false;
bEnableColorizeDistanceFieldGrayscale = false;
bEnableColorizeDistanceFieldColor = false;
bEnableColorizeDistanceField = false;
bEnableColorizeDistanceFieldMeshSDF = false;
bEnableColorizeDistanceFieldMeshSDFGrayscale = false;
bEnableColorizeDistanceFieldMeshSDFColor = false;
bEnableColorizeDistanceFieldMeshSDFGrayscale = false;
bEnableColorizeDistanceFieldMeshSDFColor = false;
bEnableColorizeDistanceFieldMeshSDF = false;
bEnableColorizeVolumetricLightmap = false;
bEnableColorizeVolumetricLightmapDensity = false;
bEnableColorizeVolumetricLightmapSamples = false;
bEnableColorizeGlobalDistanceField = false;
bEnableColorizeGlobalDistanceFieldGrayscale = false;
bEnableColorizeGlobalDistanceFieldColor = false;
bEnableColorizeGlobalDistanceFieldGrayscale = false;
bEnableColorizeGlobalDistanceFieldColor = false;
bEnableColorizeGlobalDistanceField = false;
bEnableColorizeGlobalDistanceFieldMeshSDF = false;
bEnableColorizeGlobalDistanceFieldMeshSDFGrayscale = false;
bEnableColorizeGlobalDistanceFieldMeshSDFColor = false;
bEnableColorizeGlobalDistanceFieldMeshSDFGrayscale = false;
bEnableColorizeGlobalDistanceFieldMeshSDFColor = false;
bEnableColorizeGlobalDistanceFieldMeshSDF = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusion = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusionGrayscale = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusionColor = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusionGrayscale = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusionColor = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusion = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensity = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensityColor = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensityColor = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensity = false;
bEnableColorizeVolumetricLightmapIndirectIntensity = false;
// All bEnableColorize related variables are commented out
*/
// Continue to comment out more bEnableColorize related variables
/*
bEnableColorizeVolumetricLightmapIndirectIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapIndirectIntensityColor = false;
bEnableColorizeVolumetricLightmapIndirectIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapIndirectIntensityColor = false;
bEnableColorizeVolumetricLightmapIndirectIntensity = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensity = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensityColor = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensityColor = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensity = false;
bEnableColorizeVolumetricLightmapAmbientOcclusion = false;
bEnableColorizeVolumetricLightmapAmbientOcclusionGrayscale = false;
bEnableColorizeVolumetricLightmapAmbientOcclusionColor = false;
bEnableColorizeVolumetricLightmapAmbientOcclusionGrayscale = false;
bEnableColorizeVolumetricLightmapAmbientOcclusionColor = false;
bEnableColorizeVolumetricLightmapAmbientOcclusion = false;
*/
// Continue to comment out all remaining bEnableColorize related variables
/*
bEnableColorizeVolumetricLightmapSHBand0 = false;
bEnableColorizeVolumetricLightmapSHBand0Grayscale = false;
bEnableColorizeVolumetricLightmapSHBand0Color = false;
bEnableColorizeVolumetricLightmapSHBand0Grayscale = false;
bEnableColorizeVolumetricLightmapSHBand0Color = false;
bEnableColorizeVolumetricLightmapSHBand0 = false;
bEnableColorizeVolumetricLightmapSHBand1 = false;
bEnableColorizeVolumetricLightmapSHBand1Grayscale = false;
bEnableColorizeVolumetricLightmapSHBand1Color = false;
@@ -427,6 +388,7 @@ SDismembermentPreviewViewportClient::SDismembermentPreviewViewportClient(FPrevie
bEnableColorizeVolumetricLightmapSHBand3Grayscale = false;
bEnableColorizeVolumetricLightmapSHBand3Color = false;
bEnableColorizeVolumetricLightmapSHBand3 = false;
*/
}
SDismembermentPreviewViewportClient::~SDismembermentPreviewViewportClient()