Projekt for SPIE - Avatar for safety briefing / managment event
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

// 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