|
| | 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< FOpaqueBasePassUniformParameters > | CreateOpaqueBasePassUniformBuffer (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) |
| |
| FMeshPassProcessor * | CreateBasePassProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext) |
| |
| FMeshPassProcessor * | CreateTranslucencyStandardPassProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext) |
| |
| FMeshPassProcessor * | CreateTranslucencyStandardModulatePassProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext) |
| |
| FMeshPassProcessor * | CreateTranslucencyAfterDOFProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext) |
| |
| FMeshPassProcessor * | CreateTranslucencyAfterDOFModulateProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext) |
| |
| FMeshPassProcessor * | CreateTranslucencyAfterMotionBlurProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext) |
| |
| FMeshPassProcessor * | CreateTranslucencyHoldoutPassProcessor (ERHIFeatureLevel::Type FeatureLevel, const FScene *Scene, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext) |
| |
| FMeshPassProcessor * | CreateTranslucencyAllPassProcessor (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) |
| |