66template <
bool bUsePositionOnlyStream>
171template <
bool bPositionOnly>
195 const bool bDitheredLODFadingOutMaskPass,
197 const bool bShadowProjection =
false,
198 const bool bSecondStageDepthPass =
false);
207 template<
bool bPositionOnly>
220 void CollectDefaultMaterialPSOInitializers(
226 template<
bool bPositionOnly>
227 void CollectPSOInitializersInternal(
233 bool bDitheredLODTransition,
239 const bool bRespectUseAsOccluderFlag;
241 const bool bEarlyZPassMovable;
242 const bool bDitheredLODFadingOutMaskPass;
243 const bool bShadowProjection;
244 const bool bSecondStageDepthPass;
279 const
bool bRespectUseAsOccluderFlag;
281 const
bool bEarlyZPassMovable;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
bool GetDepthPassShaders(const FMaterial &Material, const FVertexFactoryType *VertexFactoryType, ERHIFeatureLevel::Type FeatureLevel, bool bMaterialUsesPixelDepthOffset, TShaderRef< TDepthOnlyVS< bPositionOnly > > &VertexShader, TShaderRef< FDepthOnlyPS > &PixelShader, FShaderPipelineRef &ShaderPipeline)
Definition DepthRendering.cpp:163
EDepthDrawingMode
Definition DepthRendering.h:21
@ DDM_MaskedOnly
Definition DepthRendering.h:31
@ DDM_AllOpaque
Definition DepthRendering.h:29
@ DDM_None
Definition DepthRendering.h:23
@ DDM_NonMaskedOnly
Definition DepthRendering.h:25
@ DDM_AllOpaqueNoVelocity
Definition DepthRendering.h:33
@ DDM_AllOccluders
Definition DepthRendering.h:27
void AddDitheredStencilFillPass(FRDGBuilder &GraphBuilder, TConstArrayView< FViewInfo > Views, FRDGTextureRef DepthTexture, const FDepthPassInfo &DepthPass)
Definition DepthRendering.cpp:299
FDepthPassInfo GetDepthPassInfo(const FScene *Scene)
Definition DepthRendering.cpp:92
void AddDitheredStencilClearPass(FRDGBuilder &GraphBuilder, FRDGTextureRef DepthTexture, EShaderPlatform ShaderPlatform, bool bClearAllStencilBits)
Definition DepthRendering.cpp:387
FMeshDrawCommandSortKey CalculateDepthPassMeshStaticSortKey(const bool bIsMasked, const FMeshMaterialShader *VertexShader, const FMeshMaterialShader *PixelShader)
Definition DepthRendering.cpp:758
const TCHAR * GetDepthDrawingModeString(EDepthDrawingMode Mode)
Definition DepthRendering.cpp:130
void SetupDepthPassState(FMeshPassProcessorRenderState &DrawRenderState)
Definition DepthRendering.cpp:516
EBlendMode
Definition EngineTypes.h:245
ENGINE_API bool IsTranslucentBlendMode(EBlendMode BlendMode)
ERasterizerCullMode
Definition RHIDefinitions.h:369
ERasterizerFillMode
Definition RHIDefinitions.h:358
EPrimitiveType
Definition RHIDefinitions.h:822
ERDGPassFlags
Definition RenderGraphDefinitions.h:128
bool AllowDebugViewmodes()
Definition ShaderCore.cpp:578
#define DECLARE_SHADER_TYPE(ShaderClass, ShaderMetaTypeShortcut,...)
Definition Shader.h:1688
Definition DepthRendering.h:123
static void ModifyCompilationEnvironment(const FMaterialShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition DepthRendering.h:144
FDepthOnlyPS()
Definition DepthRendering.h:156
FDepthOnlyPS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition DepthRendering.h:139
void GetShaderBindings(const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, const FMeshMaterialShaderElementData &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings) const
Definition DepthRendering.h:158
static bool ShouldCompilePermutation(const FMeshMaterialShaderPermutationParameters &Parameters)
Definition DepthRendering.h:126
Definition DepthRendering.h:182
virtual void CollectPSOInitializers(const FSceneTexturesConfig &SceneTexturesConfig, const FMaterial &Material, const FPSOPrecacheVertexFactoryData &VertexFactoryData, const FPSOPrecacheParams &PreCacheParams, TArray< FPSOPrecacheData > &PSOInitializers) override final
Definition DepthRendering.cpp:1111
virtual void AddMeshBatch(const FMeshBatch &RESTRICT MeshBatch, uint64 BatchElementMask, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy, int32 StaticMeshId=-1) override final
Definition DepthRendering.cpp:1036
Definition MaterialRenderProxy.h:102
Definition MaterialShared.h:2058
Definition MeshPassProcessor.h:1482
Definition MeshDrawShaderBindings.h:104
Definition MeshMaterialShader.h:22
Definition MeshMaterialShader.h:68
RENDERER_API void GetShaderBindings(const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, const FMeshMaterialShaderElementData &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings) const
Definition ShaderBaseClasses.cpp:457
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 RenderGraphBuilder.h:49
Definition RenderGraphResources.h:571
Definition DepthRendering.h:250
virtual void AddMeshBatch(const FMeshBatch &RESTRICT MeshBatch, uint64 BatchElementMask, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy, int32 StaticMeshId=-1) override final
FRayTracingDitheredLODMeshProcessor(const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, const FMeshPassProcessorRenderState &InPassDrawRenderState, const bool InbRespectUseAsOccluderFlag, const EDepthDrawingMode InEarlyZPassMode, const bool InbEarlyZPassMovable, FMeshPassDrawListContext *InDrawListContext)
Definition SceneView.h:1425
Definition ScenePrivate.h:2875
static void ModifyCompilationEnvironment(const FShaderPermutationParameters &, FShaderCompilerEnvironment &)
Definition Shader.h:854
Definition StaticMeshBatch.h:16
Definition VertexFactory.h:314
bool SupportsPositionOnly() const
Definition VertexFactory.h:409
bool SupportsNaniteRendering() const
Definition VertexFactory.h:412
Definition SceneRendering.h:1132
Definition ConcurrentLinearAllocator.h:571
Definition DepthRendering.h:68
void GetShaderBindings(const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, const FMeshMaterialShaderElementData &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings) const
Definition DepthRendering.h:106
TDepthOnlyVS()
Definition DepthRendering.h:72
static void ModifyCompilationEnvironment(const FMaterialShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition DepthRendering.h:101
TDepthOnlyVS(const FMeshMaterialShaderType::CompiledShaderInitializerType &Initializer)
Definition DepthRendering.h:74
static bool ShouldCompilePermutation(const FMeshMaterialShaderPermutationParameters &Parameters)
Definition DepthRendering.h:80
Type
Definition MeshPassProcessor.h:38
Type
Definition RHIFeatureLevel.h:20
Definition DepthRendering.h:39
bool IsRasterStencilDitherEnabled() const
Definition DepthRendering.h:45
bool IsComputeStencilDitherEnabled() const
Definition DepthRendering.h:40
EDepthDrawingMode EarlyZPassMode
Definition DepthRendering.h:50
bool bEarlyZPassMovable
Definition DepthRendering.h:51
bool bDitheredLODTransitionsUseStencil
Definition DepthRendering.h:52
ERDGPassFlags StencilDitherPassFlags
Definition DepthRendering.h:53
uint64 bHasPixelDepthOffsetConnected
Definition MaterialShared.h:1117
uint64 bWritesEveryPixel
Definition MaterialShared.h:1102
uint64 bIsSpecialEngineMaterial
Definition MaterialShared.h:1095
FMaterialShadingModelField ShadingModels
Definition MaterialShared.h:1065
uint64 bMaterialMayModifyMeshPosition
Definition MaterialShared.h:1118
uint64 bIsTranslucencyWritingCustomDepth
Definition MaterialShared.h:1136
Definition MaterialShader.h:45
FMaterialShaderParameters MaterialParameters
Definition MaterialShader.h:46
bool HasShadingModel(EMaterialShadingModel InShadingModel) const
Definition EngineTypes.h:756
Definition MeshBatch.h:371
Definition MeshMaterialShader.h:33
const FVertexFactoryType * VertexFactoryType
Definition MeshMaterialShader.h:35
Definition MeshMaterialShaderType.h:29
Definition MeshPassProcessor.h:2118
Definition PSOPrecache.h:30
Definition PSOPrecache.h:150
Definition SceneTexturesConfig.h:114
Definition ShaderCore.h:544
const EShaderPlatform Platform
Definition ShaderPermutation.h:29