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
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;
|
|
};
|