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.
 
 
 

72 lines
3.0 KiB

// Copyright Voulz 2021-2025. All Rights Reserved.
#pragma once
#include "ArchVisMoviePipelineObjectIdUtils.h"
#include "Graph/Nodes/MovieGraphImagePassBaseNode.h"
#include "UObject/UObjectAnnotation.h"
#include "MovieGraphArchVisObjectIdNode.generated.h"
enum class EArchVisMoviePipelineObjectIdPassIdType : uint8;
/** A node which outputs layers compatible with the Cryptomatte standard. */
// todo: UE 5.6 does not allow the MRG Object ID to be overriden, hopefully fixed in 5.7. The default Object ID pass should work
UCLASS(BlueprintType, Deprecated)
class UDEPRECATED_MovieGraphArchVisObjectIdNode : public UMovieGraphImagePassBaseNode
{
GENERATED_BODY()
public:
UDEPRECATED_MovieGraphArchVisObjectIdNode() = default;
static FUObjectAnnotationSparse<ArchVisMoviePipeline::FObjectIdAccelerationData, true>& GetManifestAnnotation();
// UMovieGraphImagePassBaseNode Interface
virtual FEngineShowFlags GetShowFlags() const override;
virtual EViewModeIndex GetViewModeIndex() const override;
virtual bool GetAllowsShowFlagsCustomization() const override;
// ~UMovieGraphImagePassBaseNode Interface
// UMovieGraphNode Interface
#if WITH_EDITOR
virtual FText GetNodeTitle(const bool bGetDescriptive = false) const override;
virtual FSlateIcon GetIconAndTint(FLinearColor& OutColor) const override;
#endif
// ~UMovieGraphNode Interface
virtual void UpdateTelemetry(FMoviePipelineShotRenderTelemetry* InTelemetry) const override;
protected:
// UMovieGraphImagePassBaseNode Interface
virtual TUniquePtr<UE::MovieGraph::Rendering::FMovieGraphImagePassBase> CreateInstance() const override;
// ~UMovieGraphImagePassBaseNode Interface
// UMovieGraphRenderPassNode Interface
virtual FString GetRendererNameImpl() const override;
virtual void SetupImpl(const FMovieGraphRenderPassSetupData& InSetupData) override;
virtual void TeardownImpl() override;
// ~UMovieGraphRenderPassNode Interface
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Overrides, meta = (InlineEditConditionToggle))
uint8 bOverride_IdType : 1;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Overrides, meta = (InlineEditConditionToggle))
uint8 bOverride_bIncludeTranslucentObjects : 1;
/** How objects are grouped together within the Cryptomatte. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings", DisplayName = "ID Type", meta = (EditCondition="bOverride_IdType"))
EArchVisMoviePipelineObjectIdPassIdType IdType;
/** If true, translucent objects will be included in the ObjectId pass (but as an opaque layer due to limitations). False will omit translucent objects. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings", meta = (EditCondition="bOverride_bIncludeTranslucentObjects"))
bool bIncludeTranslucentObjects;
private:
/**
* The prior value of the project's bAllowSelectTranslucent setting. This node will temporarily change the value of this property to the value
* set in bIncludeTranslucentObjects while rendering.
*/
bool bPrevAllowSelectTranslucent;
};