7#include "Containers/Array.h"
24 class IShadowInvalidatingInstances;
154 return RendererSetupTask;
159 return bNeedMegaLightsProjection;
164 return LocalLights.Num() > 0;
169 return NaniteVisibilityQuery !=
nullptr;
184 float ClipToViewSizeScale = 0.0f;
185 float ClipToViewSizeBias = 0.0f;
189 struct FNaniteRenderPass
193 uint32 TotalPrimaryViews = 0;
203 int32 MapIndex)
const;
205 void UpdateLocalLightProjectionShaderDataMatrices(
210 void CreateNaniteRenderPasses(
215 static void CreateNaniteViewsForPass(
222 void AllocateVirtualShadowMapIds();
224 struct FLightCommonFrameSetup
226 uint32 bHasVirtualShadowMap : 1;
227 uint32 bIsDirectional : 1;
235 struct FLocalLightShadowFrameSetup
246 struct FDirectionalLightShadowFrameSetup
287 bool bShouldUseVirtualShadowMapOnePassProjection =
false;
290 bool bUseConservativeDistantLightThreshold =
false;
291 int32 DistantLightMode = 0;
294 bool bNeedVSMOnePassProjection =
false;
295 bool bNeedMegaLightsProjection =
false;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EVirtualShadowMapProjectionInputType
Definition VirtualShadowMapProjection.h:31
Definition DeferredShadingRenderer.h:317
Definition LightSceneInfo.h:208
int32 FPersistentId
Definition LightSceneInfo.h:220
Definition ShadowRendering.h:279
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:571
Definition SceneCullingRenderer.h:80
Definition SceneView.h:1425
Definition ScenePrivate.h:2875
Definition ShadowSceneRenderer.h:47
void BeginMarkVirtualShadowMapPages(FRDGBuilder &GraphBuilder, const FSingleLayerWaterPrePassResult *SingleLayerWaterPrePassResult, const FFrontLayerTranslucencyData &FrontLayerTranslucencyData, const Froxel::FRenderer &FroxelRenderer)
Definition ShadowSceneRenderer.cpp:895
bool HasVirtualShadowMap(FLightSceneInfo::FPersistentId LightId) const
Definition ShadowSceneRenderer.h:88
void PostSetupDebugRender()
Definition ShadowSceneRenderer.cpp:845
FRDGBufferRef HairTransmittanceMaskBits
Definition ShadowSceneRenderer.h:145
bool HasVirtualClipMap(FLightSceneInfo::FPersistentId LightId) const
Definition ShadowSceneRenderer.h:93
FRDGTextureRef VirtualShadowMapMaskBits
Definition ShadowSceneRenderer.h:143
virtual void PreInitViews(FRDGBuilder &GraphBuilder) override
Definition ShadowSceneRenderer.cpp:178
void ApplyVirtualShadowMapProjectionForLight(FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures, const FLightSceneInfo *LightSceneInfo, const EVirtualShadowMapProjectionInputType InputType, FRDGTextureRef OutputScreenShadowMaskTexture)
Definition ShadowSceneRenderer.cpp:1043
void RenderVirtualShadowMapProjection(FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures, FLightSceneInfo::FPersistentId LightId, const FViewInfo &View, int32 ViewIndex, const FIntRect ScissorRect, EVirtualShadowMapProjectionInputType InputType, bool bModulateRGB, FTiledVSMProjection *TiledVSMProjection, FRDGTextureRef OutputShadowMaskTexture)
Definition ShadowSceneRenderer.cpp:993
FVirtualShadowMapArray & GetVirtualShadowMapArray()
Definition ShadowSceneRenderer.h:174
const FVirtualShadowMapArray & GetVirtualShadowMapArray() const
Definition ShadowSceneRenderer.h:175
bool UsePackedShadowMaskBits() const
Definition ShadowSceneRenderer.h:147
static float ComputeNaniteShadowsLODScaleFactor()
Definition ShadowSceneRenderer.cpp:159
bool AreAnyLocalLightsPresent() const
Definition ShadowSceneRenderer.h:162
void RenderVirtualShadowMaps(FRDGBuilder &GraphBuilder, bool bNaniteEnabled)
Definition ShadowSceneRenderer.cpp:921
TSharedPtr< FVirtualShadowMapPerLightCacheEntry > AddLocalLightShadow(const FWholeSceneProjectedShadowInitializer &Initializer, FProjectedShadowInfo *ProjectedShadowInfo, FLightSceneInfo *LightSceneInfo, float MaxScreenRadius)
Definition ShadowSceneRenderer.cpp:357
void RenderVirtualShadowMapProjectionMaskBits(FRDGBuilder &GraphBuilder, FMinimalSceneTextures &SceneTextures)
Definition ShadowSceneRenderer.cpp:939
UE::Renderer::Private::IShadowInvalidatingInstances * GetInvalidatingInstancesInterface(const FSceneView *SceneView)
Definition ShadowSceneRenderer.cpp:279
void DispatchVirtualShadowMapViewAndCullingSetup(FRDGBuilder &GraphBuilder, TConstArrayView< FProjectedShadowInfo * > VirtualShadowMapShadows)
Definition ShadowSceneRenderer.cpp:826
DECLARE_SCENE_EXTENSION_RENDERER(FShadowSceneRenderer, FShadowScene)
void PostInitDynamicShadowsSetup()
Definition ShadowSceneRenderer.cpp:711
UE::Tasks::FTask GetRendererSetupTask() const
Definition ShadowSceneRenderer.h:152
FRDGTextureRef VirtualShadowMapMaskBitsHairStrands
Definition ShadowSceneRenderer.h:144
void AddDirectionalLightShadow(FLightSceneInfo &LightSceneInfo, FViewInfo &View, float MaxNonFarCascadeDistance, TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &OutShadowInfosThatNeedCulling)
Definition ShadowSceneRenderer.cpp:537
TArray< int32, SceneRenderingAllocator > GatherClipmapIds(int32 ViewIndex) const
Definition ShadowSceneRenderer.cpp:1022
bool AreAnyLightsUsingMegaLightsVSM() const
Definition ShadowSceneRenderer.h:157
bool HasNaniteVisibilityQuery() const
Definition ShadowSceneRenderer.h:167
Definition ShadowScene.h:27
Definition SceneRendering.h:1132
Definition VirtualShadowMapArray.h:291
Definition VirtualShadowMapCacheManager.h:93
Definition SceneManagement.h:1047
Definition SceneExtensions.h:69
Definition NaniteShared.h:99
Definition SharedPointer.h:692
Definition StaticArray.h:26
Definition SceneRendererInterface.h:24
Definition ShadowSceneRenderer.h:31
Type
Definition ShadowSceneRenderer.h:33
@ Max
Definition ShadowSceneRenderer.h:39
@ Regular
Definition ShadowSceneRenderer.h:35
@ FirstPerson
Definition ShadowSceneRenderer.h:37
Definition SceneView.h:41
Definition LumenFrontLayerTranslucency.h:22
Definition SceneTextures.h:52
Definition VirtualShadowMapArray.h:48
Definition NaniteVisibility.cpp:54
Definition ShadowSceneRenderer.h:260
FProjectedShadowInfo * ProjectedShadowInfo
Definition ShadowSceneRenderer.h:263
TSharedPtr< FVirtualShadowMapClipmap > Clipmap
Definition ShadowSceneRenderer.h:261
Definition SingleLayerWaterRendering.h:22
Definition VirtualShadowMapProjection.h:22
Definition VirtualShadowMapArray.h:100