UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FTranslucentVelocityMeshProcessor Class Reference

#include <VelocityRendering.h>

+ Inheritance diagram for FTranslucentVelocityMeshProcessor:

Public Member Functions

 FTranslucentVelocityMeshProcessor (const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FSceneView *InViewIfDynamicMeshCommand, const FMeshPassProcessorRenderState &InPassDrawRenderState, FMeshPassDrawListContext *InDrawListContext, EMeshPass::Type Meshpass)
 
- Public Member Functions inherited from FVelocityMeshProcessor
 FVelocityMeshProcessor (EMeshPass::Type MeshPassType, const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FSceneView *InViewIfDynamicMeshCommand, const FMeshPassProcessorRenderState &InPassDrawRenderState, FMeshPassDrawListContext *InDrawListContext)
 
- Public Member Functions inherited from FMeshPassProcessor
 FMeshPassProcessor (const FScene *InScene, ERHIFeatureLevel::Type InFeatureLevel, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
RENDERER_API FMeshPassProcessor (EMeshPass::Type InMeshPassType, const FScene *InScene, ERHIFeatureLevel::Type InFeatureLevel, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
RENDERER_API FMeshPassProcessor (const TCHAR *InMeshPassName, const FScene *InScene, ERHIFeatureLevel::Type InFeatureLevel, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
virtual ~FMeshPassProcessor ()
 
void SetDrawListContext (FMeshPassDrawListContext *InDrawListContext)
 
template<typename PassShadersType , typename ShaderElementDataType >
void BuildMeshDrawCommands (const FMeshBatch &RESTRICT MeshBatch, uint64 BatchElementMask, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy, const FMaterialRenderProxy &RESTRICT MaterialRenderProxy, const FMaterial &RESTRICT MaterialResource, const FMeshPassProcessorRenderState &RESTRICT DrawRenderState, const PassShadersType &PassShaders, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode, FMeshDrawCommandSortKey SortKey, EMeshPassFeatures MeshPassFeatures, const ShaderElementDataType &ShaderElementData)
 
template<typename PassShadersType >
void AddGraphicsPipelineStateInitializer (const FPSOPrecacheVertexFactoryData &VertexFactoryData, const FMaterial &RESTRICT MaterialResource, const FMeshPassProcessorRenderState &RESTRICT DrawRenderState, const FGraphicsPipelineRenderTargetsInfo &RESTRICT RenderTargetsInfo, const PassShadersType &PassShaders, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode, EPrimitiveType PrimitiveType, EMeshPassFeatures MeshPassFeatures, bool bRequired, TArray< FPSOPrecacheData > &PSOInitializers)
 
- Public Member Functions inherited from IPSOCollector
 IPSOCollector (int32 InPSOCollectorIndex)
 
virtual ~IPSOCollector ()
 
void CollectPSOInitializers (const FSceneTexturesConfig &SceneTexturesConfig, const FMaterial &Material, const FVertexFactoryType *VertexFactoryType, const FPSOPrecacheParams &PreCacheParams, TArray< FPSOPrecacheData > &PSOInitializers)
 

Static Public Member Functions

static bool PrimitiveCanHaveVelocity (EShaderPlatform ShaderPlatform, const FPrimitiveSceneProxy *PrimitiveSceneProxy)
 
static bool PrimitiveHasVelocityForFrame (const FPrimitiveSceneProxy *PrimitiveSceneProxy)
 
- Static Public Member Functions inherited from TConcurrentLinearObject< ObjectType, BlockAllocationTag >
static voidoperator new (size_t Size)
 
static voidoperator new (size_t Size, void *Object)
 
static voidoperator new[] (size_t Size)
 
static voidoperator new (size_t Size, std::align_val_t Align)
 
static voidoperator new[] (size_t Size, std::align_val_t Align)
 
static UE_FORCEINLINE_HINT void operator delete (void *Ptr)
 
static UE_FORCEINLINE_HINT void operator delete[] (void *Ptr)
 
- Static Public Member Functions inherited from FVelocityMeshProcessor
static bool PrimitiveHasVelocityForView (const FViewInfo &View, const FPrimitiveSceneProxy *PrimitiveSceneProxy)
 
- Static Public Member Functions inherited from FMeshPassProcessor
static FORCEINLINE_DEBUGGABLE ERasterizerCullMode InverseCullMode (ERasterizerCullMode CullMode)
 
static RENDERER_API FMeshDrawingPolicyOverrideSettings ComputeMeshOverrideSettings (const FPSOPrecacheParams &PrecachePSOParams)
 
static RENDERER_API FMeshDrawingPolicyOverrideSettings ComputeMeshOverrideSettings (const FMeshBatch &Mesh)
 
static RENDERER_API ERasterizerFillMode ComputeMeshFillMode (const FMaterial &InMaterialResource, const FMeshDrawingPolicyOverrideSettings &InOverrideSettings)
 
static RENDERER_API ERasterizerCullMode ComputeMeshCullMode (const FMaterial &InMaterialResource, const FMeshDrawingPolicyOverrideSettings &InOverrideSettings)
 
template<typename PassShadersType >
static void AddGraphicsPipelineStateInitializer (const FPSOPrecacheVertexFactoryData &VertexFactoryData, const FMaterial &RESTRICT MaterialResource, const FMeshPassProcessorRenderState &RESTRICT DrawRenderState, const FGraphicsPipelineRenderTargetsInfo &RESTRICT RenderTargetsInfo, const PassShadersType &PassShaders, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode, EPrimitiveType PrimitiveType, EMeshPassFeatures MeshPassFeatures, ESubpassHint SubpassHint, uint8 SubpassIndex, bool bRequired, int32 PSOCollectorIndex, TArray< FPSOPrecacheData > &PSOInitializers)
 

Additional Inherited Members

- Public Attributes inherited from FVelocityMeshProcessor
FMeshPassProcessorRenderState PassDrawRenderState
 
- Public Attributes inherited from FMeshPassProcessor
EMeshPass::Type MeshPassType
 
const FScene *RESTRICT Scene
 
ERHIFeatureLevel::Type FeatureLevel
 
const FSceneViewViewIfDynamicMeshCommand
 
FMeshPassDrawListContextDrawListContext
 
- Public Attributes inherited from IPSOCollector
int32 PSOCollectorIndex = INDEX_NONE
 
- Protected Member Functions inherited from FVelocityMeshProcessor
bool Process (const FMeshBatch &MeshBatch, uint64 BatchElementMask, int32 StaticMeshId, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy, const FMaterialRenderProxy &RESTRICT MaterialRenderProxy, const FMaterial &RESTRICT MaterialResource, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode)
 
bool CollectPSOInitializersInternal (const FSceneTexturesConfig &SceneTexturesConfig, const FPSOPrecacheVertexFactoryData &VertexFactoryData, const FMaterial &RESTRICT MaterialResource, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode, TArray< FPSOPrecacheData > &PSOInitializers)
 
- Protected Member Functions inherited from FMeshPassProcessor
RENDERER_API FMeshDrawCommandPrimitiveIdInfo GetDrawCommandPrimitiveId (const FPrimitiveSceneInfo *RESTRICT PrimitiveSceneInfo, const FMeshBatchElement &BatchElement) const
 
RENDERER_API bool ShouldSkipMeshDrawCommand (const FMeshBatch &RESTRICT MeshBatch, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy) const
 
RENDERER_API bool PipelineVariableRateShadingEnabled () const
 
RENDERER_API bool HardwareVariableRateShadingSupportedByScene () const
 
- Protected Attributes inherited from FVelocityMeshProcessor
EDepthDrawingMode EarlyZPassMode = DDM_None
 
EMeshPass::Type MeshPassType = EMeshPass::Type::Num
 

Detailed Description

Velocity pass processor for rendering translucent object velocity and depth. This pass is rendered AFTER the translucent pass so that depth can safely be written.

Constructor & Destructor Documentation

◆ FTranslucentVelocityMeshProcessor()

FTranslucentVelocityMeshProcessor::FTranslucentVelocityMeshProcessor ( const FScene Scene,
ERHIFeatureLevel::Type  FeatureLevel,
const FSceneView InViewIfDynamicMeshCommand,
const FMeshPassProcessorRenderState InPassDrawRenderState,
FMeshPassDrawListContext InDrawListContext,
EMeshPass::Type  Meshpass 
)

Member Function Documentation

◆ PrimitiveCanHaveVelocity()

bool FTranslucentVelocityMeshProcessor::PrimitiveCanHaveVelocity ( EShaderPlatform  ShaderPlatform,
const FPrimitiveSceneProxy PrimitiveSceneProxy 
)
static

Returns true if the object is capable of having velocity for any frame.

Velocity for translucency is always relevant because the pass also writes depth. Therefore, the primitive can't be filtered based on motion, or it will break post effects like depth of field which rely on depth information.

◆ PrimitiveHasVelocityForFrame()

bool FTranslucentVelocityMeshProcessor::PrimitiveHasVelocityForFrame ( const FPrimitiveSceneProxy PrimitiveSceneProxy)
static

Returns true if the primitive has velocity for the current frame.


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