UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FPostProcessMaterialInputs Struct Reference

#include <PostProcessMaterialInputs.h>

Public Member Functions

 FPostProcessMaterialInputs ()
 
void SetInput (FRDGBuilder &GraphBuilder, EPostProcessMaterialInput Input, FScreenPassTexture Texture)
 
void SetInput (EPostProcessMaterialInput Input, FScreenPassTextureSlice Texture)
 
void SetUserSceneTextureInput (EPostProcessMaterialInput Input, FScreenPassTextureSlice Texture)
 
FScreenPassTextureSlice GetInput (EPostProcessMaterialInput Input) const
 
FScreenPassTextureSlice GetSceneColorOutput (EBlendableLocation BlendableLocation) const
 
void SetPathTracingInput (EPathTracingPostProcessMaterialInput Input, FScreenPassTexture Texture)
 
FScreenPassTexture GetPathTracingInput (EPathTracingPostProcessMaterialInput Input) const
 
void Validate () const
 
void ValidateInputExists (EPostProcessMaterialInput Input) const
 
RENDERER_API FScreenPassTexture ReturnUntouchedSceneColorForPostProcessing (FRDGBuilder &GraphBuilder) const
 

Public Attributes

FScreenPassRenderTarget OverrideOutput
 
TStaticArray< FScreenPassTextureSlice, kPostProcessMaterialInputCountMaxTextures
 
TStaticArray< FScreenPassTextureSlice, kPostProcessMaterialInputCountMaxUserSceneTextures
 
TStaticArray< bool, kPostProcessMaterialInputCountMaxbUserSceneTexturesSet
 
TStaticArray< FScreenPassTexture, kPathTracingPostProcessMaterialInputCountMaxPathTracingTextures
 
EPixelFormat OutputFormat = PF_Unknown
 
bool bManualStencilTest = false
 
FRDGTextureRef CustomDepthTexture = nullptr
 
FSceneTextureShaderParameters SceneTextures
 
const FSceneWithoutWaterTexturesSceneWithoutWaterTextures = nullptr
 
bool bAllowSceneColorInputAsOutput = true
 
bool bMetalMSAAHDRDecode = false
 
bool bUserSceneTextureOutput = false
 
bool bUserSceneTextureFirstRender = false
 
uint32 UserSceneTextureSceneColorInput = INDEX_NONE
 

Constructor & Destructor Documentation

◆ FPostProcessMaterialInputs()

FPostProcessMaterialInputs::FPostProcessMaterialInputs ( )
inline

Member Function Documentation

◆ GetInput()

FScreenPassTextureSlice FPostProcessMaterialInputs::GetInput ( EPostProcessMaterialInput  Input) const
inline

◆ GetPathTracingInput()

FScreenPassTexture FPostProcessMaterialInputs::GetPathTracingInput ( EPathTracingPostProcessMaterialInput  Input) const
inline

◆ GetSceneColorOutput()

FScreenPassTextureSlice FPostProcessMaterialInputs::GetSceneColorOutput ( EBlendableLocation  BlendableLocation) const
inline

◆ ReturnUntouchedSceneColorForPostProcessing()

FScreenPassTexture FPostProcessMaterialInputs::ReturnUntouchedSceneColorForPostProcessing ( FRDGBuilder GraphBuilder) const

Returns the input scene color as a 2D texture output. This WILL perform a GPU copy if the override output is active or the input scene color was a 2D texture array slice.

◆ SetInput() [1/2]

void FPostProcessMaterialInputs::SetInput ( EPostProcessMaterialInput  Input,
FScreenPassTextureSlice  Texture 
)
inline

◆ SetInput() [2/2]

void FPostProcessMaterialInputs::SetInput ( FRDGBuilder GraphBuilder,
EPostProcessMaterialInput  Input,
FScreenPassTexture  Texture 
)
inline

◆ SetPathTracingInput()

void FPostProcessMaterialInputs::SetPathTracingInput ( EPathTracingPostProcessMaterialInput  Input,
FScreenPassTexture  Texture 
)
inline

◆ SetUserSceneTextureInput()

void FPostProcessMaterialInputs::SetUserSceneTextureInput ( EPostProcessMaterialInput  Input,
FScreenPassTextureSlice  Texture 
)
inline

◆ Validate()

void FPostProcessMaterialInputs::Validate ( ) const
inline

◆ ValidateInputExists()

void FPostProcessMaterialInputs::ValidateInputExists ( EPostProcessMaterialInput  Input) const
inline

Member Data Documentation

◆ bAllowSceneColorInputAsOutput

bool FPostProcessMaterialInputs::bAllowSceneColorInputAsOutput = true

Allows (but doesn't guarantee) an optimization where, if possible, the scene color input is reused as the output. This can elide a copy in certain circumstances; for example, when the scene color input isn't actually used by the post process material and no special depth-stencil / blend composition is required. Set this to false when you need to guarantee creation of a dedicated output texture.

◆ bManualStencilTest

bool FPostProcessMaterialInputs::bManualStencilTest = false

Whether or not the stencil test must be done in the pixel shader rather than rasterizer state.

◆ bMetalMSAAHDRDecode

bool FPostProcessMaterialInputs::bMetalMSAAHDRDecode = false

◆ bUserSceneTextureFirstRender

bool FPostProcessMaterialInputs::bUserSceneTextureFirstRender = false

◆ bUserSceneTextureOutput

bool FPostProcessMaterialInputs::bUserSceneTextureOutput = false

◆ bUserSceneTexturesSet

TStaticArray<bool, kPostProcessMaterialInputCountMax> FPostProcessMaterialInputs::bUserSceneTexturesSet

◆ CustomDepthTexture

FRDGTextureRef FPostProcessMaterialInputs::CustomDepthTexture = nullptr

Custom depth/stencil used for stencil operations.

◆ OutputFormat

EPixelFormat FPostProcessMaterialInputs::OutputFormat = PF_Unknown

The output texture format to use if a new texture is created. Uses the input format if left unknown.

◆ OverrideOutput

FScreenPassRenderTarget FPostProcessMaterialInputs::OverrideOutput

◆ PathTracingTextures

TStaticArray<FScreenPassTexture, kPathTracingPostProcessMaterialInputCountMax> FPostProcessMaterialInputs::PathTracingTextures

Array of input textures bound to the material from path tracing. All inputs are optional

◆ SceneTextures

FSceneTextureShaderParameters FPostProcessMaterialInputs::SceneTextures

The uniform buffer containing all scene textures.

◆ SceneWithoutWaterTextures

const FSceneWithoutWaterTextures* FPostProcessMaterialInputs::SceneWithoutWaterTextures = nullptr

Depth and color textures of the scene without single layer water. May be nullptr if not available.

◆ Textures

Array of input textures bound to the material. The first element represents the output from the previous post process and is required. All other inputs are optional.

◆ UserSceneTextures

TStaticArray<FScreenPassTextureSlice, kPostProcessMaterialInputCountMax> FPostProcessMaterialInputs::UserSceneTextures

UserSceneTexture inputs, which take precedence over Textures above if set. The reason for separating these from "Textures" above is because "Textures" is also where the output SceneColor is fetched from, when OverrideOutput isn't set (see "GetSceneColorOutput" function). The separate bools are needed to track which inputs are UserSceneTextures, as opposed to checking IsValid(), because the entry can be invalid when an input being missing – dummy black is substituted for those downstream.

◆ UserSceneTextureSceneColorInput

uint32 FPostProcessMaterialInputs::UserSceneTextureSceneColorInput = INDEX_NONE

The documentation for this struct was generated from the following files: