UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MaterialCacheMeshProcessor.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "MeshPassProcessor.h"
7#include "NaniteSceneProxy.h"
8
12
18
24
25class FMaterialCacheMeshProcessor : public FSceneRenderingAllocatorObject<FMaterialCacheMeshProcessor>, public FMeshPassProcessor
26{
27public:
29
31 virtual void AddMeshBatch(const FMeshBatch& RESTRICT MeshBatch, uint64 BatchElementMask, const FPrimitiveSceneProxy* RESTRICT PrimitiveSceneProxy, int32 StaticMeshId = -1) override final;
32 virtual void CollectPSOInitializers(const FSceneTexturesConfig& SceneTexturesConfig, const FMaterial& Material, const FPSOPrecacheVertexFactoryData& VertexFactoryData, const FPSOPrecacheParams& PreCacheParams, TArray<FPSOPrecacheData>& PSOInitializers) override final;
33
34private:
35 bool TryAddMeshBatch(const FMeshBatch& RESTRICT MeshBatch, uint64 BatchElementMask, const FPrimitiveSceneProxy* RESTRICT PrimitiveSceneProxy, int32 StaticMeshId, const FMaterialRenderProxy* MaterialRenderProxy, const FMaterial* Material);
36
38 const FMaterialRenderProxy* OverrideLayerMaterialProxy = nullptr;
39
41 FGuid TagGuid;
42
43 FMeshPassProcessorRenderState PassDrawRenderState;
44};
45
60
61#if WITH_EDITOR
64#endif // WITH_EDITOR
65
69 const FPrimitiveSceneProxy* Proxy,
70 const FMaterialRenderProxy* MaterialRenderProxy,
72 const FGuid& TagGuid,
74);
75
77template<typename T>
79 const FScene& Scene,
80 const FPrimitiveSceneProxy* SceneProxy,
83 const FGuid& TagGuid,
84 FRHICommandListBase& RHICmdList,
86);
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define RESTRICT
Definition Platform.h:706
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
bool CreateMaterialCacheComputeLayerShadingCommand(const FScene &Scene, const FPrimitiveSceneProxy *SceneProxy, const FMaterialRenderProxy *Material, bool bAllowDefaultFallback, const FGuid &TagGuid, FRHICommandListBase &RHICmdList, FMaterialCacheLayerShadingCSCommand &OutShadingCommand)
Definition MaterialCacheMeshProcessor.cpp:99
bool CreateMaterialCacheStaticLayerDrawCommand(FScene &Scene, const FPrimitiveSceneProxy *Proxy, const FMaterialRenderProxy *MaterialRenderProxy, const FStaticMeshBatch &MeshBatch, const FGuid &TagGuid, FMaterialCacheMeshDrawCommand &OutMeshCommand)
Definition MaterialCacheMeshProcessor.cpp:465
EFVisibleMeshDrawCommandFlags
Definition MeshPassProcessor.h:1526
ERasterizerCullMode
Definition RHIDefinitions.h:369
ERasterizerFillMode
Definition RHIDefinitions.h:358
EShaderPlatform
Definition RHIShaderPlatform.h:11
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition MeshPassProcessor.h:1873
Definition MeshPassProcessor.h:337
Definition MaterialCacheMeshProcessor.h:47
virtual FMeshDrawCommand & AddCommand(FMeshDrawCommand &Initializer, uint32 NumElements) override
Definition MaterialCacheMeshProcessor.cpp:431
FMaterialCacheMeshDrawCommand Command
Definition MaterialCacheMeshProcessor.h:58
virtual void FinalizeCommand(const FMeshBatch &MeshBatch, int32 BatchElementIndex, const FMeshDrawCommandPrimitiveIdInfo &IdInfo, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode, FMeshDrawCommandSortKey SortKey, EFVisibleMeshDrawCommandFlags Flags, const FGraphicsMinimalPipelineStateInitializer &PipelineState, const FMeshProcessorShaders *ShadersForDebugging, FMeshDrawCommand &MeshDrawCommand) override
Definition MaterialCacheMeshProcessor.cpp:437
Definition MaterialCacheMeshProcessor.h:26
virtual void AddMeshBatch(const FMeshBatch &RESTRICT MeshBatch, uint64 BatchElementMask, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy, int32 StaticMeshId=-1) override final
Definition MaterialCacheMeshProcessor.cpp:357
virtual void CollectPSOInitializers(const FSceneTexturesConfig &SceneTexturesConfig, const FMaterial &Material, const FPSOPrecacheVertexFactoryData &VertexFactoryData, const FPSOPrecacheParams &PreCacheParams, TArray< FPSOPrecacheData > &PSOInitializers) override final
Definition MaterialCacheMeshProcessor.cpp:379
Definition MaterialRenderProxy.h:102
Definition MaterialShared.h:2058
Definition MeshPassProcessor.h:1482
Definition MeshPassProcessor.h:1223
Definition MeshPassProcessor.h:908
Definition MeshPassProcessor.h:1670
Definition MeshPassProcessor.h:2199
const FScene *RESTRICT Scene
Definition MeshPassProcessor.h:2203
ERHIFeatureLevel::Type FeatureLevel
Definition MeshPassProcessor.h:2204
Definition PrimitiveSceneProxy.h:296
Definition RHICommandList.h:455
Definition SceneView.h:1425
Definition ScenePrivate.h:2875
Definition StaticMeshBatch.h:16
Definition Array.h:670
Definition ConcurrentLinearAllocator.h:571
Definition Shader.h:1021
Type
Definition RHIFeatureLevel.h:20
Definition Guid.h:109
Definition MaterialCacheMeshProcessor.h:14
TShaderRef< FMaterialShader > ComputeShader
Definition MaterialCacheMeshProcessor.h:16
FMeshDrawShaderBindings ShaderBindings
Definition MaterialCacheMeshProcessor.h:15
Definition MaterialCacheMeshProcessor.h:20
FCachedMeshDrawCommandInfo CommandInfo
Definition MaterialCacheMeshProcessor.h:22
FMeshDrawCommand Command
Definition MaterialCacheMeshProcessor.h:21
Definition MaterialCachePrimitiveData.h:35
Definition MeshBatch.h:371
Definition MeshPassProcessor.h:1573
Definition MeshPassProcessor.h:2118
Definition MeshPassProcessor.h:719
Definition NaniteShared.h:802
Definition PSOPrecache.h:30
Definition PSOPrecache.h:150
Definition SceneTexturesConfig.h:114