35class UStaticMeshComponent;
137 bool bHasDrawnBeforeLightingDecals =
false;
176template<
typename PermutationVectorType>
186 template<
typename DimensionType>
192 checkf(ByteOffset >= InitializedOffset,
TEXT(
"This member of the pipeline state has already been committed."));
205 InitializedOffset =
~SIZE_T(0);
211 return InitializedOffset ==
~SIZE_T(0);
215 template<
typename DimensionType>
220 checkf(ByteOffset < InitializedOffset,
TEXT(
"This dimension has not been initialized yet."));
229 checkf(
IsCommitted(),
TEXT(
"The pipeline state needs to be fully commited before being able to reference directly the pipeline state structure."));
237 checkf(
IsCommitted(),
TEXT(
"The pipeline state needs to be fully commited before being able to reference directly the pipeline state structure."));
243 template<
typename DimensionType>
251 SIZE_T InitializedOffset = 0;
284#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
446#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
457 struct FPerViewPipelineState
472 bool bComposePlanarReflections;
480 struct FFamilyPipelineState
516 virtual bool IsLumenEnabled(
const FViewInfo& View)
const override
521 virtual bool IsLumenGIEnabled(
const FViewInfo& View)
const override
526 virtual bool AnyViewHasGIMethodSupportingDFAO()
const override
530 for (
int32 ViewIndex = 0; ViewIndex <
Views.
Num(); ViewIndex++)
544 void CreatePerObjectProjectedShadow(
552 struct FInitViewTaskDatas
560 RayTracing::FGatherInstancesTaskData* RayTracingGatherInstances =
nullptr;
567 void PreVisibilityFrameSetup(
FRDGBuilder& GraphBuilder);
572 void ComputeLightVisibility();
594 void RenderDirectLightingForLumenScene(
601 void RenderRadiosityForLumenScene(
608 void ClearLumenSurfaceCacheAtlas(
613 void DilateCardPageOneTexel(
621 void UpdateLumenSurfaceCacheAtlas(
636 void ComputeLumenTranslucencyGIVolume(
640 LumenRadianceCache::FRadianceCacheInterpolationParameters& RadianceCacheParameters,
643 void CreateIndirectCapsuleShadows();
654 void RenderUnderWaterFog(
659 void RenderAtmosphere(
665 void SetupCommonDiffuseIndirectParameters(
672 void DispatchAsyncLumenIndirectLightingWork(
682 void RenderDiffuseIndirectAndAmbientOcclusion(
692 void RenderDeferredReflectionsAndSkyLighting(
698 void RenderDeferredReflectionsAndSkyLightingHair(
FRDGBuilder& GraphBuilder);
700#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
706 void RenderDFAOAsIndirectShadowing(
717 void RenderMegaLights(
732 LumenRadianceCache::FRadianceCacheInterpolationParameters& RadianceCacheParameters,
744 LumenRadianceCache::FRadianceCacheInterpolationParameters& RadianceCacheParameters,
759 bool RequiresStochasticLightingPass();
779 const LumenRadianceCache::FRadianceCacheInterpolationParameters& RadianceCacheParameters,
784 void RenderRayTracedTranslucencyView(
793 bool RenderRayTracedTranslucency(
799 void RenderLumenFrontLayerTranslucencyReflections(
812 bool IsLumenFrontLayerTranslucencyEnabled(
const FViewInfo& View)
const;
817 void LumenScenePDIVisualization();
833 bool AreLightsInLightGrid()
const;
837 void AddClusteredDeferredShadingPass(
852 void RenderTranslucencyLightingVolume(
857 void GatherTranslucencyVolumeMarkedVoxels(
FRDGBuilder& GraphBuilder);
860 void RenderStationaryLightOverlap(
866 static void RenderTranslucency(
880 static void RenderTranslucencyInner(
895 void UpscaleTranslucencyIfNeeded(
907 void RenderLightShaftBloom(
912 bool ShouldRenderDistortion()
const;
919 void CollectLightForTranslucencyLightingVolumeInjection(
929 void RenderDeferredShadowProjections(
936 void RenderForwardShadowProjections(
943 bool RenderLightFunction(
950 bool bUseHairStrands);
953 bool RenderPreviewShadowsIndicator(
959 bool bUseHairStrands);
962 bool RenderLightFunctionForMaterial(
971 bool bUseHairStrands);
973 void RenderLightsForHair(
981 void RenderLightForHair(
996 void RenderSimpleLightsStandardDeferred(
1015 bool HasDeferredPlanarReflections(
const FViewInfo& View)
const;
1018 void SetupImaginaryReflectionTextureParameters(
1023 void RenderRayTracingReflections(
1031 void RenderRayTracingDeferredReflections(
1041 void RenderRayTracingShadows(
1052 void CompositeRayTracingSkyLight(
1058 void RenderRayTracingAmbientOcclusion(
1065 template <
int TextureImportanceSampling>
1089 float ResolutionFraction);
1160 struct FNaniteBasePassVisibility
1165 } NaniteBasePassVisibility;
1177 bool bAreLightsInLightGrid;
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ELumenIndirectLightingSteps
Definition DeferredShadingRenderer.h:116
EReflectionsMethod
Definition DeferredShadingRenderer.h:307
EDiffuseIndirectMethod
Definition DeferredShadingRenderer.h:291
EAmbientOcclusionMethod
Definition DeferredShadingRenderer.h:299
constexpr void EnumRemoveFlags(Enum &Flags, Enum FlagsToRemove)
Definition EnumClassFlags.h:98
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
ELumenReflectionPass
Definition LumenSceneData.h:24
ERHIPipeline
Definition RHIPipeline.h:13
ERayTracingPrimaryRaysFlag
Definition RaytracingOptions.h:25
ERDGPassFlags
Definition RenderGraphDefinitions.h:128
ESingleLayerWaterPrepassLocation
Definition SingleLayerWaterRendering.h:49
ETranslucencyView
Definition TranslucencyPass.h:8
Definition DecalRenderingShared.h:95
Definition DeferredShadingRenderer.h:317
void RenderSingleLayerWater(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, const FSingleLayerWaterPrePassResult *SingleLayerWaterPrePassResult, bool bShouldRenderVolumetricCloud, FSceneWithoutWaterTextures &SceneWithoutWaterTextures, FLumenSceneFrameTemporaries &LumenFrameTemporaries, bool bIsCameraUnderWater)
Definition SingleLayerWaterRendering.cpp:1710
void DebugLightGrid(FRDGBuilder &GraphBuilder, FSceneTextures &SceneTextures, bool bNeedLightGrid)
static void RenderAnisotropyPass(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, FSceneTextures &SceneTextures, const FScene *Scene, bool bDoParallelPass)
Definition AnisotropyRendering.cpp:357
void CommitFinalPipelineState()
Definition DeferredShadingRenderer.cpp:1277
void ClearView(FRHICommandListImmediate &RHICmdList)
static void RenderBasePassInternal(FDeferredShadingSceneRenderer &Renderer, FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, const FRenderTargetBindingSlots &BasePassRenderTargets, FExclusiveDepthStencil::Type BasePassDepthStencilAccess, const FForwardBasePassTextures &ForwardBasePassTextures, const FDBufferTextures &DBufferTextures, bool bParallelBasePass, bool bRenderLightmapDensity, FInstanceCullingManager &InstanceCullingManager, bool bNaniteEnabled, struct FNaniteShadingCommands &NaniteBasePassShadingCommands, const TArrayView< Nanite::FRasterResults > &NaniteRasterResults)
Definition BasePassRendering.cpp:1449
void RenderSingleLayerWaterReflections(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, const FSceneWithoutWaterTextures &SceneWithoutWaterTextures, const FSingleLayerWaterPrePassResult *SingleLayerWaterPrePassResult, FLumenSceneFrameTemporaries &LumenFrameTemporaries)
Definition SingleLayerWaterRendering.cpp:1362
static void RenderBasePass(FDeferredShadingSceneRenderer &Renderer, FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, FSceneTextures &SceneTextures, const FDBufferTextures &DBufferTextures, FExclusiveDepthStencil::Type BasePassDepthStencilAccess, FRDGTextureRef ForwardShadowMaskTexture, FInstanceCullingManager &InstanceCullingManager, bool bNaniteEnabled, struct FNaniteShadingCommands &NaniteBasePassShadingCommands, const TArrayView< Nanite::FRasterResults > &NaniteRasterResults)
Definition BasePassRendering.cpp:1071
virtual bool ShouldRenderNanite() const override
Definition DeferredShadingRenderer.cpp:472
void RenderPrePassView(FRHICommandList &RHICmdList, const FViewInfo &View)
void RenderOcclusion(FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, bool bIsOcclusionTesting, const FBuildHZBAsyncComputeParams *BuildHZBAsyncComputeParams, Froxel::FRenderer &FroxelRenderer)
Definition SceneOcclusion.cpp:1445
void RenderSingleLayerWaterInner(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, const FSceneWithoutWaterTextures &SceneWithoutWaterTextures, const FSingleLayerWaterPrePassResult *SingleLayerWaterPrePassResult)
Definition SingleLayerWaterRendering.cpp:1777
FSingleLayerWaterPrePassResult * RenderSingleLayerWaterDepthPrepass(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, ESingleLayerWaterPrepassLocation Location, TConstArrayView< Nanite::FRasterResults > NaniteRasterResults)
Definition SingleLayerWaterRendering.cpp:1022
FLumenCardRenderer LumenCardRenderer
Definition DeferredShadingRenderer.h:320
virtual bool ShouldRenderPrePass() const override
Definition DeferredShadingRenderer.cpp:464
void RenderVisualizeTexturePool(FRHICommandListImmediate &RHICmdList)
virtual void RenderHitProxies(FRDGBuilder &GraphBuilder, const FSceneRenderUpdateInputs *SceneUpdateInputs) override
Definition SceneHitProxyRendering.cpp:620
bool RenderHzb(FRDGBuilder &GraphBuilder, FRDGTextureRef SceneDepthTexture, const FBuildHZBAsyncComputeParams *AsyncComputeParams, Froxel::FRenderer &FroxelRenderer)
Definition DeferredShadingRenderer.cpp:477
virtual bool ShouldRenderVelocities() const override
Definition VelocityRendering.cpp:387
void CommitIndirectLightingState()
Definition IndirectLightRendering.cpp:484
bool RenderPrePassViewParallel(const FViewInfo &View, FRHICommandListImmediate &ParentCmdList, TFunctionRef< void()> AfterTasksAreStarted, bool bDoPrePre)
Definition DistanceFieldAmbientOcclusion.h:34
Type
Definition RHIResources.h:412
Definition SceneCore.h:147
Definition DeferredShadingRenderer.h:274
DECLARE_MULTICAST_DELEGATE_FourParams(FRenderDiffuseIndirectLight, const FScene &, const FViewInfo &, FRDGBuilder &, FGlobalIlluminationPluginResources &)
static RENDERER_API FRenderDiffuseIndirectVisualizations & RenderDiffuseIndirectVisualizations()
Definition DeferredShadingRenderer.cpp:403
DECLARE_MULTICAST_DELEGATE_OneParam(FAnyRayTracingPassEnabled, bool &)
DECLARE_MULTICAST_DELEGATE_FourParams(FRenderDiffuseIndirectVisualizations, const FScene &, const FViewInfo &, FRDGBuilder &, FGlobalIlluminationPluginResources &)
DECLARE_MULTICAST_DELEGATE_TwoParams(FPrepareRayTracing, const FViewInfo &, TArray< FRHIRayTracingShader * > &)
static RENDERER_API FAnyRayTracingPassEnabled & AnyRayTracingPassEnabled()
Definition DeferredShadingRenderer.cpp:384
static RENDERER_API FRenderDiffuseIndirectLight & RenderDiffuseIndirectLight()
Definition DeferredShadingRenderer.cpp:396
static RENDERER_API FPrepareRayTracing & PrepareRayTracing()
Definition DeferredShadingRenderer.cpp:390
Definition DeferredShadingRenderer.h:260
FRDGTextureRef LightingChannelsTexture
Definition DeferredShadingRenderer.h:267
FRDGTextureRef GBufferB
Definition DeferredShadingRenderer.h:263
FRDGTextureRef SceneColor
Definition DeferredShadingRenderer.h:266
FRDGTextureRef GBufferA
Definition DeferredShadingRenderer.h:262
FRDGTextureRef GBufferC
Definition DeferredShadingRenderer.h:264
FRDGTextureRef SceneDepthZ
Definition DeferredShadingRenderer.h:265
Definition GlobalShader.h:173
Definition RHIResources.h:4572
Definition HitProxies.h:218
Definition InstanceCullingManager.h:45
Definition SceneCore.h:23
Definition LightSceneInfo.h:208
Definition DeferredShadingRenderer.h:88
TArray< FCardPageRenderData, SceneRenderingAllocator > CardPagesToRender
Definition DeferredShadingRenderer.h:90
TArray< int32, SceneRenderingAllocator > MeshDrawPrimitiveIds
Definition DeferredShadingRenderer.h:94
FMeshCommandOneFrameArray MeshDrawCommands
Definition DeferredShadingRenderer.h:93
void Reset()
Definition DeferredShadingRenderer.h:105
FResampledCardCaptureAtlas ResampledCardCaptureAtlas
Definition DeferredShadingRenderer.h:96
int32 NumCardTexelsToCapture
Definition DeferredShadingRenderer.h:92
bool bHasAnyCardCopy
Definition DeferredShadingRenderer.h:103
bool bPropagateGlobalLightingChange
Definition DeferredShadingRenderer.h:99
Definition LumenSceneLighting.h:26
Definition MaterialRenderProxy.h:102
Definition NaniteVisibility.h:82
Definition RenderGraphResources.h:1426
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphUtils.h:1272
Definition RenderGraphResources.h:839
Definition RenderGraphResources.h:905
Definition RenderGraphResources.h:571
Definition RHICommandList.h:3819
Definition RHIResources.h:2153
Definition RHIResources.h:3294
Definition RenderResource.h:37
TArray< FViewInfo > Views
Definition SceneRendering.h:2053
FScene * Scene
Definition SceneRendering.h:2026
Definition SceneRendering.h:2080
FViewFamilyInfo ViewFamily
Definition SceneRendering.h:2089
Definition SceneView.h:2212
Definition ScenePrivate.h:2875
Definition SceneRendering.h:1132
int32 SceneRendererPrimaryViewId
Definition SceneRendering.h:1604
EMode
Definition ScreenSpaceDenoise.h:66
EShadowRequirements
Definition ScreenSpaceDenoise.h:168
Definition SceneVisibility.h:33
Definition Renderer.Build.cs:6
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void SetNumZeroed(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2340
void Reset(SizeType NewSize=0)
Definition Array.h:2246
Definition AssetRegistryState.h:50
Definition DeferredShadingRenderer.h:178
void Commit()
Definition DeferredShadingRenderer.h:201
TPipelineState()
Definition DeferredShadingRenderer.h:180
const DimensionType & operator[](DimensionType PermutationVectorType::*Dimension) const
Definition DeferredShadingRenderer.h:216
const PermutationVectorType & operator*() const
Definition DeferredShadingRenderer.h:234
const PermutationVectorType * operator->() const
Definition DeferredShadingRenderer.h:226
bool IsCommitted() const
Definition DeferredShadingRenderer.h:209
void Set(DimensionType PermutationVectorType::*Dimension, const DimensionType &DimensionValue)
Definition DeferredShadingRenderer.h:187
Definition RefCounting.h:454
Definition SharedPointer.h:692
Definition ContainerAllocationPolicies.h:894
Type
Definition TranslucentPassResource.h:13
Definition DeferredShadingRenderer.h:73
Definition DeferredShadingRenderer.h:40
Definition DeferredShadingRenderer.h:46
Definition DeferredShadingRenderer.cpp:316
Definition SceneManagement.h:73
Definition DeferredShadingRenderer.h:128
FSSDSignalTextures IndirectLightingTextures
Definition DeferredShadingRenderer.h:129
FLumenMeshSDFGridParameters MeshSDFGridParameters
Definition DeferredShadingRenderer.h:130
FLumenScreenSpaceBentNormalParameters ScreenBentNormalParameters
Definition DeferredShadingRenderer.h:132
LumenRadianceCache::FRadianceCacheInterpolationParameters RadianceCacheParameters
Definition DeferredShadingRenderer.h:131
Definition DeferredShadingRenderer.h:126
TArray< FViewOutputs, TInlineAllocator< 1 > > ViewOutputs
Definition DeferredShadingRenderer.h:135
void Resize(int32 NewNum)
Definition DeferredShadingRenderer.h:139
void DonePreLights()
Definition DeferredShadingRenderer.h:155
void DoneAsync(bool bAsyncReflections)
Definition DeferredShadingRenderer.h:144
void DoneComposite()
Definition DeferredShadingRenderer.h:167
Definition SceneTextureReductions.h:16
Definition LumenSceneCardCapture.h:17
Definition DBufferTextures.h:35
Definition ShadowSetup.cpp:1366
Definition BasePassRendering.h:71
Definition LumenFrontLayerTranslucency.h:22
Definition HairStrandsTransmittance.h:19
Definition ScenePrivate.h:2290
Definition LumenSceneDirectLighting.cpp:1889
Definition LumenFrontLayerTranslucency.h:45
Definition LumenSceneData.h:895
Definition MegaLights.cpp:1816
Definition SceneTextures.h:52
Definition NaniteShared.h:936
Definition NaniteVisibility.cpp:54
Definition PathTracingResources.h:8
Definition SceneRendering.h:975
Definition RenderGraphUtils.h:288
Definition ShaderParameterMacros.h:770
Definition LumenSceneCardCapture.h:26
Definition SceneTexturesConfig.h:114
Definition SceneTextures.h:110
Definition SingleLayerWaterRendering.h:32
Definition CanvasTypes.h:854
Definition TranslucentRendering.h:18
Definition SingleLayerWaterRendering.h:22
Definition LightSceneInfo.h:146
Definition TranslucentLighting.h:16
Definition TranslucentPassResource.h:76
Definition TranslucentLighting.h:61
Definition SceneRendering.h:749
Definition ScreenSpaceDenoise.h:184
Definition LumenRadiosity.h:10
Definition NaniteCullRaster.h:86