UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BasePassRendering.cpp File Reference

Macros

#define IMPLEMENT_BASEPASS_VERTEXSHADER_TYPE(LightMapPolicyType, LightMapPolicyName)
 
#define IMPLEMENT_BASEPASS_PIXELSHADER_TYPE(LightMapPolicyType, LightMapPolicyName, bEnableSkyLight, SkyLightName, GBufferLayout, LayoutName)
 
#define IMPLEMENT_BASEPASS_COMPUTESHADER_TYPE(LightMapPolicyType, LightMapPolicyName, bEnableSkyLight, SkyLightName, bVoxel, VoxelName)
 
#define IMPLEMENT_BASEPASS_WORKGRAPHSHADER_TYPE(LightMapPolicyType, LightMapPolicyName, bEnableSkyLight, SkyLightName, bVoxel, VoxelName)
 
#define IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE(LightMapPolicyType, LightMapPolicyName)
 

Functions

 IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT (FSharedBasePassUniformParameters, "BasePass")
 
 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT (FOpaqueBasePassUniformParameters, "OpaqueBasePass", SceneTextures)
 
 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT (FTranslucentBasePassUniformParameters, "TranslucentBasePass", SceneTextures)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (FSelfShadowedTranslucencyPolicy, FSelfShadowedTranslucencyPolicy)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (FSelfShadowedCachedPointIndirectLightingPolicy, FSelfShadowedCachedPointIndirectLightingPolicy)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (FSelfShadowedVolumetricLightmapPolicy, FSelfShadowedVolumetricLightmapPolicy)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (TUniformLightMapPolicy< LMP_NO_LIGHTMAP >, FNoLightMapPolicy)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (TUniformLightMapPolicy< LMP_PRECOMPUTED_IRRADIANCE_VOLUME_INDIRECT_LIGHTING >, FPrecomputedVolumetricLightmapLightingPolicy)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (TUniformLightMapPolicy< LMP_CACHED_VOLUME_INDIRECT_LIGHTING >, FCachedVolumeIndirectLightingPolicy)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (TUniformLightMapPolicy< LMP_CACHED_POINT_INDIRECT_LIGHTING >, FCachedPointIndirectLightingPolicy)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (TUniformLightMapPolicy< LMP_LQ_LIGHTMAP >, TLightMapPolicyLQ)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (TUniformLightMapPolicy< LMP_HQ_LIGHTMAP >, TLightMapPolicyHQ)
 
 IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (TUniformLightMapPolicy< LMP_DISTANCE_FIELD_SHADOWS_AND_HQ_LIGHTMAP >, TDistanceFieldShadowsAndLightMapPolicyHQ)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (, F128BitRTBasePassPS, TEXT("/Engine/Private/BasePassPixelShader.usf"), TEXT("MainPS"), SF_Pixel)
 
 DEFINE_GPU_DRAWCALL_STAT (Basepass)
 
 DECLARE_CYCLE_STAT (TEXT("DeferredShadingSceneRenderer ClearGBufferAtMaxZ"), STAT_FDeferredShadingSceneRenderer_ClearGBufferAtMaxZ, STATGROUP_SceneRendering)
 
 DECLARE_CYCLE_STAT (TEXT("DeferredShadingSceneRenderer ViewExtensionPostRenderBasePass"), STAT_FDeferredShadingSceneRenderer_ViewExtensionPostRenderBasePass, STATGROUP_SceneRendering)
 
 DEFINE_GPU_STAT (NaniteBasePass)
 
template<uint32 StencilRef>
void SetTranslucentPassDepthStencilState (FMeshPassProcessorRenderState &DrawRenderState, bool bDisableDepthTest)
 
void SetTranslucentRenderState (FMeshPassProcessorRenderState &DrawRenderState, const FMaterial &Material, const EShaderPlatform Platform, ETranslucencyPass::Type InTranslucencyPassType)
 
FMeshDrawCommandSortKey CalculateTranslucentMeshStaticSortKey (const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy, uint16 MeshIdInPrimitive)
 
FMeshDrawCommandSortKey CalculateBasePassMeshStaticSortKey (EDepthDrawingMode EarlyZPassMode, const bool bIsMasked, const FMeshMaterialShader *VertexShader, const FMeshMaterialShader *PixelShader)
 
template<bool bDepthTest, ECompareFunction CompareFunction, uint32 StencilWriteMask>
void SetDepthStencilStateForBasePass_Internal (FMeshPassProcessorRenderState &InDrawRenderState)
 
template<bool bDepthTest, ECompareFunction CompareFunction>
void SetDepthStencilStateForBasePass_Internal (FMeshPassProcessorRenderState &InDrawRenderState, ERHIFeatureLevel::Type FeatureLevel)
 
void SetDepthStencilStateForBasePass (FMeshPassProcessorRenderState &DrawRenderState, ERHIFeatureLevel::Type FeatureLevel, bool bDitheredLODTransition, const FMaterial &MaterialResource, bool bEnableReceiveDecalOutput, bool bForceEnableStencilDitherState)
 
void SetupBasePassState (FExclusiveDepthStencil::Type BasePassDepthStencilAccess, const bool bShaderComplexity, FMeshPassProcessorRenderState &DrawRenderState)
 
template<ELightMapPolicyType Policy, EGBufferLayout GBufferLayout>
void AddUniformBasePassPixelShader (bool bEnableSkyLight, bool bUse128bitRT, bool bIsDebug, FMaterialShaderTypes &OutShaderTypes, bool bIsForOITPass=false)
 
template<ELightMapPolicyType Policy>
bool GetUniformBasePassShaders (const FMaterial &Material, const FVertexFactoryType *VertexFactoryType, ERHIFeatureLevel::Type FeatureLevel, bool bEnableSkyLight, bool bUse128bitRT, bool bIsDebug, EGBufferLayout GBufferLayout, TShaderRef< TBasePassVertexShaderPolicyParamType< FUniformLightMapPolicy > > *VertexShader, TShaderRef< TBasePassPixelShaderPolicyParamType< FUniformLightMapPolicy > > *PixelShader, bool bIsForOITPass=false)
 
template<>
bool GetBasePassShaders< FUniformLightMapPolicy > (const FMaterial &Material, const FVertexFactoryType *VertexFactoryType, FUniformLightMapPolicy LightMapPolicy, ERHIFeatureLevel::Type FeatureLevel, bool bEnableSkyLight, bool bUse128bitRT, bool bIsDebug, EGBufferLayout GBufferLayout, TShaderRef< TBasePassVertexShaderPolicyParamType< FUniformLightMapPolicy > > *VertexShader, TShaderRef< TBasePassPixelShaderPolicyParamType< FUniformLightMapPolicy > > *PixelShader, bool bIsForOITPass)
 
template<ELightMapPolicyType Policy>
void AddUniformBasePassComputeShader (bool bEnableSkyLight, bool bVoxel, bool bIsDebug, EShaderFrequency ShaderFrequency, FMaterialShaderTypes &OutShaderTypes)
 
template<ELightMapPolicyType Policy>
bool GetUniformBasePassShader (const FMaterial &Material, const FVertexFactoryType *VertexFactoryType, ERHIFeatureLevel::Type FeatureLevel, bool bEnableSkyLight, bool bVoxel, bool bIsDebug, EShaderFrequency ShaderFrequency, TShaderRef< TBasePassComputeShaderPolicyParamType< FUniformLightMapPolicy > > *ComputeShader)
 
template<>
bool GetBasePassShader< FUniformLightMapPolicy > (const FMaterial &Material, const FVertexFactoryType *VertexFactoryType, FUniformLightMapPolicy LightMapPolicy, ERHIFeatureLevel::Type FeatureLevel, bool bEnableSkyLight, bool bVoxel, bool bIsDebug, EShaderFrequency ShaderFrequency, TShaderRef< TBasePassComputeShaderPolicyParamType< FUniformLightMapPolicy > > *ComputeShader)
 
void SetupDummyForwardLightUniformParameters (FRDGBuilder &GraphBuilder, FForwardLightUniformParameters &ForwardLightUniformParameters, EShaderPlatform ShaderPlatform)
 
void SetupSharedBasePassParameters (FRDGBuilder &GraphBuilder, const FViewInfo &View, const int32 ViewIndex, bool bLumenGIEnabled, FSharedBasePassUniformParameters &SharedParameters, bool bForRealtimeSkyCapture)
 
TRDGUniformBufferRef< FOpaqueBasePassUniformParametersCreateOpaqueBasePassUniformBuffer (FRDGBuilder &GraphBuilder, const FViewInfo &View, const int32 ViewIndex, const FForwardBasePassTextures &ForwardBasePassTextures, const FDBufferTextures &DBufferTextures, bool bLumenGIEnabled, bool bForRealtimeSkyCapture)
 
bool IsGBufferLayoutSupportedForMaterial (EGBufferLayout Layout, const FMeshMaterialShaderPermutationParameters &Parameters)
 
void ModifyBasePassCSPSCompilationEnvironment (const FMeshMaterialShaderPermutationParameters &Parameters, EGBufferLayout GBufferLayout, bool bEnableSkyLight, FShaderCompilerEnvironment &OutEnvironment)
 
FMeshPassProcessorCreateBasePassProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
FMeshPassProcessorCreateTranslucencyStandardPassProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
FMeshPassProcessorCreateTranslucencyStandardModulatePassProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
FMeshPassProcessorCreateTranslucencyAfterDOFProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
FMeshPassProcessorCreateTranslucencyAfterDOFModulateProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
FMeshPassProcessorCreateTranslucencyAfterMotionBlurProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
FMeshPassProcessorCreateTranslucencyHoldoutPassProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
FMeshPassProcessorCreateTranslucencyAllPassProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
 REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR (BasePass, CreateBasePassProcessor, EShadingPath::Deferred, EMeshPass::BasePass, EMeshPassFlags::CachedMeshCommands|EMeshPassFlags::MainView)
 
 REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR (TranslucencyStandardPass, CreateTranslucencyStandardPassProcessor, EShadingPath::Deferred, EMeshPass::TranslucencyStandard, EMeshPassFlags::MainView)
 
 REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR (TranslucencyStandardModulatePass, CreateTranslucencyStandardModulatePassProcessor, EShadingPath::Deferred, EMeshPass::TranslucencyStandardModulate, EMeshPassFlags::MainView)
 
 REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR (TranslucencyAfterDOFPass, CreateTranslucencyAfterDOFProcessor, EShadingPath::Deferred, EMeshPass::TranslucencyAfterDOF, EMeshPassFlags::MainView)
 
 REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR (TranslucencyAfterDOFModulatePass, CreateTranslucencyAfterDOFModulateProcessor, EShadingPath::Deferred, EMeshPass::TranslucencyAfterDOFModulate, EMeshPassFlags::MainView)
 
 REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR (TranslucencyAfterMotionBlurPass, CreateTranslucencyAfterMotionBlurProcessor, EShadingPath::Deferred, EMeshPass::TranslucencyAfterMotionBlur, EMeshPassFlags::MainView)
 
 REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR (TranslucencyHoldoutPass, CreateTranslucencyHoldoutPassProcessor, EShadingPath::Deferred, EMeshPass::TranslucencyHoldout, EMeshPassFlags::MainView)
 
 REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR (TranslucencyAllPass, CreateTranslucencyAllPassProcessor, EShadingPath::Deferred, EMeshPass::TranslucencyAll, EMeshPassFlags::MainView)
 

Macro Definition Documentation

◆ IMPLEMENT_BASEPASS_COMPUTESHADER_TYPE

#define IMPLEMENT_BASEPASS_COMPUTESHADER_TYPE (   LightMapPolicyType,
  LightMapPolicyName,
  bEnableSkyLight,
  SkyLightName,
  bVoxel,
  VoxelName 
)
Value:
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ SF_Compute
Definition RHIDefinitions.h:208
Definition BasePassRendering.h:467

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE

#define IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE (   LightMapPolicyType,
  LightMapPolicyName 
)
Value:
IMPLEMENT_BASEPASS_COMPUTESHADER_TYPE(LightMapPolicyType,LightMapPolicyName,false,,true,Voxel) \
IMPLEMENT_BASEPASS_WORKGRAPHSHADER_TYPE(LightMapPolicyType,LightMapPolicyName,false,,true,Voxel) \
#define IMPLEMENT_BASEPASS_VERTEXSHADER_TYPE(LightMapPolicyType, LightMapPolicyName)
Definition BasePassRendering.cpp:135
@ GBL_Default
Definition GBufferInfo.h:108
@ GBL_ForceVelocity
Definition GBufferInfo.h:109

◆ IMPLEMENT_BASEPASS_PIXELSHADER_TYPE

#define IMPLEMENT_BASEPASS_PIXELSHADER_TYPE (   LightMapPolicyType,
  LightMapPolicyName,
  bEnableSkyLight,
  SkyLightName,
  GBufferLayout,
  LayoutName 
)
Value:
IMPLEMENT_MATERIAL_SHADER_TYPE(template<>,TBasePassPS##LightMapPolicyName##SkyLightName##LayoutName,TEXT("/Engine/Private/BasePassPixelShader.usf"),TEXT("MainPS"),SF_Pixel);
@ SF_Pixel
Definition RHIDefinitions.h:206
Definition BasePassRendering.h:635

◆ IMPLEMENT_BASEPASS_VERTEXSHADER_TYPE

#define IMPLEMENT_BASEPASS_VERTEXSHADER_TYPE (   LightMapPolicyType,
  LightMapPolicyName 
)
Value:
IMPLEMENT_MATERIAL_SHADER_TYPE(template<>,TBasePassVS##LightMapPolicyName,TEXT("/Engine/Private/BasePassVertexShader.usf"),TEXT("Main"),SF_Vertex);
@ SF_Vertex
Definition RHIDefinitions.h:203
Definition BasePassRendering.h:291

◆ IMPLEMENT_BASEPASS_WORKGRAPHSHADER_TYPE

#define IMPLEMENT_BASEPASS_WORKGRAPHSHADER_TYPE (   LightMapPolicyType,
  LightMapPolicyName,
  bEnableSkyLight,
  SkyLightName,
  bVoxel,
  VoxelName 
)

Function Documentation

◆ AddUniformBasePassComputeShader()

template<ELightMapPolicyType Policy>
void AddUniformBasePassComputeShader ( bool  bEnableSkyLight,
bool  bVoxel,
bool  bIsDebug,
EShaderFrequency  ShaderFrequency,
FMaterialShaderTypes OutShaderTypes 
)

◆ AddUniformBasePassPixelShader()

template<ELightMapPolicyType Policy, EGBufferLayout GBufferLayout>
void AddUniformBasePassPixelShader ( bool  bEnableSkyLight,
bool  bUse128bitRT,
bool  bIsDebug,
FMaterialShaderTypes OutShaderTypes,
bool  bIsForOITPass = false 
)

◆ CalculateBasePassMeshStaticSortKey()

FMeshDrawCommandSortKey CalculateBasePassMeshStaticSortKey ( EDepthDrawingMode  EarlyZPassMode,
const bool  bIsMasked,
const FMeshMaterialShader VertexShader,
const FMeshMaterialShader PixelShader 
)

◆ CalculateTranslucentMeshStaticSortKey()

FMeshDrawCommandSortKey CalculateTranslucentMeshStaticSortKey ( const FPrimitiveSceneProxy *RESTRICT  PrimitiveSceneProxy,
uint16  MeshIdInPrimitive 
)

◆ CreateBasePassProcessor()

FMeshPassProcessor * CreateBasePassProcessor ( ERHIFeatureLevel::Type  FeatureLevel,
const FScene Scene,
const FSceneView InViewIfDynamicMeshCommand,
FMeshPassDrawListContext InDrawListContext 
)

◆ CreateOpaqueBasePassUniformBuffer()

TRDGUniformBufferRef< FOpaqueBasePassUniformParameters > CreateOpaqueBasePassUniformBuffer ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const int32  ViewIndex,
const FForwardBasePassTextures ForwardBasePassTextures,
const FDBufferTextures DBufferTextures,
bool  bLumenGIEnabled,
bool  bForRealtimeSkyCapture 
)

◆ CreateTranslucencyAfterDOFModulateProcessor()

FMeshPassProcessor * CreateTranslucencyAfterDOFModulateProcessor ( ERHIFeatureLevel::Type  FeatureLevel,
const FScene Scene,
const FSceneView InViewIfDynamicMeshCommand,
FMeshPassDrawListContext InDrawListContext 
)

◆ CreateTranslucencyAfterDOFProcessor()

FMeshPassProcessor * CreateTranslucencyAfterDOFProcessor ( ERHIFeatureLevel::Type  FeatureLevel,
const FScene Scene,
const FSceneView InViewIfDynamicMeshCommand,
FMeshPassDrawListContext InDrawListContext 
)

◆ CreateTranslucencyAfterMotionBlurProcessor()

FMeshPassProcessor * CreateTranslucencyAfterMotionBlurProcessor ( ERHIFeatureLevel::Type  FeatureLevel,
const FScene Scene,
const FSceneView InViewIfDynamicMeshCommand,
FMeshPassDrawListContext InDrawListContext 
)

◆ CreateTranslucencyAllPassProcessor()

FMeshPassProcessor * CreateTranslucencyAllPassProcessor ( ERHIFeatureLevel::Type  FeatureLevel,
const FScene Scene,
const FSceneView InViewIfDynamicMeshCommand,
FMeshPassDrawListContext InDrawListContext 
)

◆ CreateTranslucencyHoldoutPassProcessor()

FMeshPassProcessor * CreateTranslucencyHoldoutPassProcessor ( ERHIFeatureLevel::Type  FeatureLevel,
const FScene Scene,
const FSceneView InViewIfDynamicMeshCommand,
FMeshPassDrawListContext InDrawListContext 
)

◆ CreateTranslucencyStandardModulatePassProcessor()

FMeshPassProcessor * CreateTranslucencyStandardModulatePassProcessor ( ERHIFeatureLevel::Type  FeatureLevel,
const FScene Scene,
const FSceneView InViewIfDynamicMeshCommand,
FMeshPassDrawListContext InDrawListContext 
)

◆ CreateTranslucencyStandardPassProcessor()

FMeshPassProcessor * CreateTranslucencyStandardPassProcessor ( ERHIFeatureLevel::Type  FeatureLevel,
const FScene Scene,
const FSceneView InViewIfDynamicMeshCommand,
FMeshPassDrawListContext InDrawListContext 
)

◆ DECLARE_CYCLE_STAT() [1/2]

DECLARE_CYCLE_STAT ( TEXT("DeferredShadingSceneRenderer ClearGBufferAtMaxZ" ,
STAT_FDeferredShadingSceneRenderer_ClearGBufferAtMaxZ  ,
STATGROUP_SceneRendering   
)

◆ DECLARE_CYCLE_STAT() [2/2]

◆ DEFINE_GPU_DRAWCALL_STAT()

DEFINE_GPU_DRAWCALL_STAT ( Basepass  )

◆ DEFINE_GPU_STAT()

DEFINE_GPU_STAT ( NaniteBasePass  )

◆ GetBasePassShader< FUniformLightMapPolicy >()

template<>
bool GetBasePassShader< FUniformLightMapPolicy > ( const FMaterial Material,
const FVertexFactoryType VertexFactoryType,
FUniformLightMapPolicy  LightMapPolicy,
ERHIFeatureLevel::Type  FeatureLevel,
bool  bEnableSkyLight,
bool  bVoxel,
bool  bIsDebug,
EShaderFrequency  ShaderFrequency,
TShaderRef< TBasePassComputeShaderPolicyParamType< FUniformLightMapPolicy > > *  ComputeShader 
)

◆ GetBasePassShaders< FUniformLightMapPolicy >()

template<>
bool GetBasePassShaders< FUniformLightMapPolicy > ( const FMaterial Material,
const FVertexFactoryType VertexFactoryType,
FUniformLightMapPolicy  LightMapPolicy,
ERHIFeatureLevel::Type  FeatureLevel,
bool  bEnableSkyLight,
bool  bUse128bitRT,
bool  bIsDebug,
EGBufferLayout  GBufferLayout,
TShaderRef< TBasePassVertexShaderPolicyParamType< FUniformLightMapPolicy > > *  VertexShader,
TShaderRef< TBasePassPixelShaderPolicyParamType< FUniformLightMapPolicy > > *  PixelShader,
bool  bIsForOITPass 
)

◆ GetUniformBasePassShader()

template<ELightMapPolicyType Policy>
bool GetUniformBasePassShader ( const FMaterial Material,
const FVertexFactoryType VertexFactoryType,
ERHIFeatureLevel::Type  FeatureLevel,
bool  bEnableSkyLight,
bool  bVoxel,
bool  bIsDebug,
EShaderFrequency  ShaderFrequency,
TShaderRef< TBasePassComputeShaderPolicyParamType< FUniformLightMapPolicy > > *  ComputeShader 
)

◆ GetUniformBasePassShaders()

template<ELightMapPolicyType Policy>
bool GetUniformBasePassShaders ( const FMaterial Material,
const FVertexFactoryType VertexFactoryType,
ERHIFeatureLevel::Type  FeatureLevel,
bool  bEnableSkyLight,
bool  bUse128bitRT,
bool  bIsDebug,
EGBufferLayout  GBufferLayout,
TShaderRef< TBasePassVertexShaderPolicyParamType< FUniformLightMapPolicy > > *  VertexShader,
TShaderRef< TBasePassPixelShaderPolicyParamType< FUniformLightMapPolicy > > *  PixelShader,
bool  bIsForOITPass = false 
)

Get shader templates allowing to redirect between compatible shaders.

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [1/10]

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [2/10]

IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE ( FSelfShadowedTranslucencyPolicy  ,
FSelfShadowedTranslucencyPolicy   
)

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [3/10]

IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE ( FSelfShadowedVolumetricLightmapPolicy  ,
FSelfShadowedVolumetricLightmapPolicy   
)

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [4/10]

IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE ( TUniformLightMapPolicy< LMP_CACHED_POINT_INDIRECT_LIGHTING ,
FCachedPointIndirectLightingPolicy   
)

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [5/10]

IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE ( TUniformLightMapPolicy< LMP_CACHED_VOLUME_INDIRECT_LIGHTING ,
FCachedVolumeIndirectLightingPolicy   
)

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [6/10]

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [7/10]

IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE ( TUniformLightMapPolicy< LMP_HQ_LIGHTMAP ,
TLightMapPolicyHQ   
)

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [8/10]

IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE ( TUniformLightMapPolicy< LMP_LQ_LIGHTMAP ,
TLightMapPolicyLQ   
)

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [9/10]

IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE ( TUniformLightMapPolicy< LMP_NO_LIGHTMAP ,
FNoLightMapPolicy   
)

◆ IMPLEMENT_BASEPASS_LIGHTMAPPED_SHADER_TYPE() [10/10]

◆ IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT()

IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT ( FSharedBasePassUniformParameters  ,
"BasePass"   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE()

IMPLEMENT_MATERIAL_SHADER_TYPE ( F128BitRTBasePassPS  ,
TEXT("/Engine/Private/BasePassPixelShader.usf" ,
TEXT("MainPS")  ,
SF_Pixel   
)

◆ IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT() [1/2]

IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT ( FOpaqueBasePassUniformParameters  ,
"OpaqueBasePass"  ,
SceneTextures   
)

◆ IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT() [2/2]

IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT ( FTranslucentBasePassUniformParameters  ,
"TranslucentBasePass"  ,
SceneTextures   
)

◆ IsGBufferLayoutSupportedForMaterial()

bool IsGBufferLayoutSupportedForMaterial ( EGBufferLayout  Layout,
const FMeshMaterialShaderPermutationParameters Parameters 
)

◆ ModifyBasePassCSPSCompilationEnvironment()

void ModifyBasePassCSPSCompilationEnvironment ( const FMeshMaterialShaderPermutationParameters Parameters,
EGBufferLayout  GBufferLayout,
bool  bEnableSkyLight,
FShaderCompilerEnvironment OutEnvironment 
)

◆ REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR() [1/8]

REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR ( BasePass  ,
CreateBasePassProcessor  ,
EShadingPath::Deferred  ,
EMeshPass::BasePass  ,
EMeshPassFlags::CachedMeshCommands|EMeshPassFlags::MainView   
)

◆ REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR() [2/8]

◆ REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR() [3/8]

◆ REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR() [4/8]

◆ REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR() [5/8]

◆ REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR() [6/8]

◆ REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR() [7/8]

◆ REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR() [8/8]

◆ SetDepthStencilStateForBasePass()

void SetDepthStencilStateForBasePass ( FMeshPassProcessorRenderState DrawRenderState,
ERHIFeatureLevel::Type  FeatureLevel,
bool  bDitheredLODTransition,
const FMaterial MaterialResource,
bool  bEnableReceiveDecalOutput,
bool  bForceEnableStencilDitherState 
)

◆ SetDepthStencilStateForBasePass_Internal() [1/2]

template<bool bDepthTest, ECompareFunction CompareFunction, uint32 StencilWriteMask>
void SetDepthStencilStateForBasePass_Internal ( FMeshPassProcessorRenderState InDrawRenderState)

◆ SetDepthStencilStateForBasePass_Internal() [2/2]

template<bool bDepthTest, ECompareFunction CompareFunction>
void SetDepthStencilStateForBasePass_Internal ( FMeshPassProcessorRenderState InDrawRenderState,
ERHIFeatureLevel::Type  FeatureLevel 
)

◆ SetTranslucentPassDepthStencilState()

template<uint32 StencilRef>
void SetTranslucentPassDepthStencilState ( FMeshPassProcessorRenderState DrawRenderState,
bool  bDisableDepthTest 
)

◆ SetTranslucentRenderState()

void SetTranslucentRenderState ( FMeshPassProcessorRenderState DrawRenderState,
const FMaterial Material,
const EShaderPlatform  Platform,
ETranslucencyPass::Type  InTranslucencyPassType 
)

◆ SetupBasePassState()

void SetupBasePassState ( FExclusiveDepthStencil::Type  BasePassDepthStencilAccess,
const bool  bShaderComplexity,
FMeshPassProcessorRenderState DrawRenderState 
)

◆ SetupDummyForwardLightUniformParameters()

void SetupDummyForwardLightUniformParameters ( FRDGBuilder GraphBuilder,
FForwardLightUniformParameters ForwardLightUniformParameters,
EShaderPlatform  ShaderPlatform 
)
extern

◆ SetupSharedBasePassParameters()

void SetupSharedBasePassParameters ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const int32  ViewIndex,
bool  bLumenGIEnabled,
FSharedBasePassUniformParameters SharedParameters,
bool  bForRealtimeSkyCapture 
)