You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
194 lines
7.2 KiB
194 lines
7.2 KiB
// Copyright Voulz 2021-2025. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "MoviePipeline.h"
|
|
#include "MoviePipelineDeferredPasses.h"
|
|
#include "ArchVisMoviePipelineDeferredPass.generated.h"
|
|
|
|
|
|
#define CURRENT_LOG_CATEGORY LogArchVisTools
|
|
|
|
/**
|
|
*
|
|
*/
|
|
UCLASS(BlueprintType)
|
|
class ARCHVISTOOLS_API UArchVisMoviePipelineDeferredPass : public UMoviePipelineDeferredPassBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
UArchVisMoviePipelineDeferredPass() : UMoviePipelineDeferredPassBase()
|
|
{
|
|
PassIdentifier = FMoviePipelinePassIdentifier("FinalImage[ArchVis]");
|
|
}
|
|
#if WITH_EDITOR
|
|
virtual FText GetDisplayText() const override
|
|
{
|
|
return INVTEXT("[ArchVis] Deferred Rendering");
|
|
}
|
|
#endif
|
|
virtual UE::MoviePipeline::FImagePassCameraViewData GetCameraInfo(FMoviePipelineRenderPassMetrics& InOutSampleState, IViewCalcPayload* OptPayload = nullptr) const override
|
|
{
|
|
return UArchVisMoviePipelineDeferredPass::GetArchVisCameraInfo(Super::GetCameraInfo(InOutSampleState, OptPayload), InOutSampleState, GetPipeline(), GetNumCamerasToRender());
|
|
}
|
|
protected:
|
|
virtual void AddViewExtensions(FSceneViewFamilyContext& InContext, FMoviePipelineRenderPassMetrics& InOutSampleState) override
|
|
{
|
|
RemoveArchVisViewExtension(InContext, GetWorld()->Scene);
|
|
Super::AddViewExtensions(InContext, InOutSampleState);
|
|
}
|
|
|
|
public:
|
|
static UE::MoviePipeline::FImagePassCameraViewData GetArchVisCameraInfo(UE::MoviePipeline::FImagePassCameraViewData CameraInfo, FMoviePipelineRenderPassMetrics& InOutSampleState, UMoviePipeline* Pipeline, int32 NumCamerasToRender);
|
|
static void RemoveArchVisViewExtension(FSceneViewFamilyContext& InContext, FSceneInterface* Scene);
|
|
};
|
|
|
|
|
|
UCLASS(BlueprintType)
|
|
class ARCHVISTOOLS_API UArchVisMoviePipelineDeferredPass_Unlit : public UMoviePipelineDeferredPass_Unlit
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
UArchVisMoviePipelineDeferredPass_Unlit() : UMoviePipelineDeferredPass_Unlit()
|
|
{
|
|
PassIdentifier = FMoviePipelinePassIdentifier("Unlit[ArchVis]");
|
|
}
|
|
#if WITH_EDITOR
|
|
virtual FText GetDisplayText() const override
|
|
{
|
|
return INVTEXT("[ArchVis] Deferred Rendering (Unlit)");
|
|
}
|
|
#endif
|
|
virtual UE::MoviePipeline::FImagePassCameraViewData GetCameraInfo(FMoviePipelineRenderPassMetrics& InOutSampleState, IViewCalcPayload* OptPayload = nullptr) const override
|
|
{
|
|
return UArchVisMoviePipelineDeferredPass::GetArchVisCameraInfo(Super::GetCameraInfo(InOutSampleState, OptPayload), InOutSampleState, GetPipeline(), GetNumCamerasToRender());
|
|
}
|
|
protected:
|
|
virtual void AddViewExtensions(FSceneViewFamilyContext& InContext, FMoviePipelineRenderPassMetrics& InOutSampleState) override
|
|
{
|
|
UArchVisMoviePipelineDeferredPass::RemoveArchVisViewExtension(InContext, GetWorld()->Scene);
|
|
Super::AddViewExtensions(InContext, InOutSampleState);
|
|
}
|
|
};
|
|
|
|
|
|
UCLASS(BlueprintType)
|
|
class ARCHVISTOOLS_API UArchVisMoviePipelineDeferredPass_DetailLighting : public UMoviePipelineDeferredPass_DetailLighting
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
UArchVisMoviePipelineDeferredPass_DetailLighting() : UMoviePipelineDeferredPass_DetailLighting()
|
|
{
|
|
PassIdentifier = FMoviePipelinePassIdentifier("DetailLightingOnly[ArchVis]");
|
|
}
|
|
#if WITH_EDITOR
|
|
virtual FText GetDisplayText() const override
|
|
{
|
|
return INVTEXT("[ArchVis] Deferred Rendering (Detail Lighting)");
|
|
}
|
|
#endif
|
|
virtual UE::MoviePipeline::FImagePassCameraViewData GetCameraInfo(FMoviePipelineRenderPassMetrics& InOutSampleState, IViewCalcPayload* OptPayload = nullptr) const override
|
|
{
|
|
return UArchVisMoviePipelineDeferredPass::GetArchVisCameraInfo(Super::GetCameraInfo(InOutSampleState, OptPayload), InOutSampleState, GetPipeline(), GetNumCamerasToRender());
|
|
}
|
|
protected:
|
|
virtual void AddViewExtensions(FSceneViewFamilyContext& InContext, FMoviePipelineRenderPassMetrics& InOutSampleState) override
|
|
{
|
|
UArchVisMoviePipelineDeferredPass::RemoveArchVisViewExtension(InContext, GetWorld()->Scene);
|
|
Super::AddViewExtensions(InContext, InOutSampleState);
|
|
}
|
|
};
|
|
|
|
|
|
UCLASS(BlueprintType)
|
|
class ARCHVISTOOLS_API UArchVisMoviePipelineDeferredPass_LightingOnly : public UMoviePipelineDeferredPass_LightingOnly
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
UArchVisMoviePipelineDeferredPass_LightingOnly() : UMoviePipelineDeferredPass_LightingOnly()
|
|
{
|
|
PassIdentifier = FMoviePipelinePassIdentifier("LightingOnly[ArchVis]");
|
|
}
|
|
#if WITH_EDITOR
|
|
virtual FText GetDisplayText() const override
|
|
{
|
|
return INVTEXT("[ArchVis] Deferred Rendering (Lighting Only)");
|
|
}
|
|
#endif
|
|
virtual UE::MoviePipeline::FImagePassCameraViewData GetCameraInfo(FMoviePipelineRenderPassMetrics& InOutSampleState, IViewCalcPayload* OptPayload = nullptr) const override
|
|
{
|
|
return UArchVisMoviePipelineDeferredPass::GetArchVisCameraInfo(Super::GetCameraInfo(InOutSampleState, OptPayload), InOutSampleState, GetPipeline(), GetNumCamerasToRender());
|
|
}
|
|
protected:
|
|
virtual void AddViewExtensions(FSceneViewFamilyContext& InContext, FMoviePipelineRenderPassMetrics& InOutSampleState) override
|
|
{
|
|
UArchVisMoviePipelineDeferredPass::RemoveArchVisViewExtension(InContext, GetWorld()->Scene);
|
|
Super::AddViewExtensions(InContext, InOutSampleState);
|
|
}
|
|
};
|
|
|
|
|
|
UCLASS(BlueprintType)
|
|
class ARCHVISTOOLS_API UArchVisMoviePipelineDeferredPass_ReflectionsOnly : public UMoviePipelineDeferredPass_ReflectionsOnly
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
UArchVisMoviePipelineDeferredPass_ReflectionsOnly() : UMoviePipelineDeferredPass_ReflectionsOnly()
|
|
{
|
|
PassIdentifier = FMoviePipelinePassIdentifier("ReflectionsOnly[ArchVis]");
|
|
}
|
|
#if WITH_EDITOR
|
|
virtual FText GetDisplayText() const override
|
|
{
|
|
return INVTEXT("[ArchVis] Deferred Rendering (Reflections Only)");
|
|
}
|
|
#endif
|
|
virtual UE::MoviePipeline::FImagePassCameraViewData GetCameraInfo(FMoviePipelineRenderPassMetrics& InOutSampleState, IViewCalcPayload* OptPayload = nullptr) const override
|
|
{
|
|
return UArchVisMoviePipelineDeferredPass::GetArchVisCameraInfo(Super::GetCameraInfo(InOutSampleState, OptPayload), InOutSampleState, GetPipeline(), GetNumCamerasToRender());
|
|
}
|
|
protected:
|
|
virtual void AddViewExtensions(FSceneViewFamilyContext& InContext, FMoviePipelineRenderPassMetrics& InOutSampleState) override
|
|
{
|
|
UArchVisMoviePipelineDeferredPass::RemoveArchVisViewExtension(InContext, GetWorld()->Scene);
|
|
Super::AddViewExtensions(InContext, InOutSampleState);
|
|
}
|
|
};
|
|
|
|
|
|
UCLASS(BlueprintType)
|
|
class ARCHVISTOOLS_API UArchVisMoviePipelineDeferredPass_PathTracer : public UMoviePipelineDeferredPass_PathTracer
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
UArchVisMoviePipelineDeferredPass_PathTracer() : UMoviePipelineDeferredPass_PathTracer()
|
|
{
|
|
PassIdentifier = FMoviePipelinePassIdentifier("PathTracer[ArchVis]");
|
|
}
|
|
#if WITH_EDITOR
|
|
virtual FText GetDisplayText() const override
|
|
{
|
|
return INVTEXT("[ArchVis] Path Tracer");
|
|
}
|
|
#endif
|
|
virtual UE::MoviePipeline::FImagePassCameraViewData GetCameraInfo(FMoviePipelineRenderPassMetrics& InOutSampleState, IViewCalcPayload* OptPayload = nullptr) const override
|
|
{
|
|
return UArchVisMoviePipelineDeferredPass::GetArchVisCameraInfo(Super::GetCameraInfo(InOutSampleState, OptPayload), InOutSampleState, GetPipeline(), GetNumCamerasToRender());
|
|
}
|
|
protected:
|
|
virtual void AddViewExtensions(FSceneViewFamilyContext& InContext, FMoviePipelineRenderPassMetrics& InOutSampleState) override
|
|
{
|
|
UArchVisMoviePipelineDeferredPass::RemoveArchVisViewExtension(InContext, GetWorld()->Scene);
|
|
Super::AddViewExtensions(InContext, InOutSampleState);
|
|
}
|
|
};
|
|
|
|
|
|
#undef CURRENT_LOG_CATEGORY
|
|
|