UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneRendering.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 SceneRendering.h: Scene rendering definitions.
5=============================================================================*/
6
7#pragma once
8
10#include "CoreMinimal.h"
13#include "Stats/Stats.h"
14#include "RHI.h"
15#include "RenderResource.h"
16#include "UniformBuffer.h"
17#include "GlobalDistanceField.h"
19#include "SceneView.h"
20#include "RendererInterface.h"
21#include "BatchedElements.h"
22#include "MeshBatch.h"
23#include "ScenePrivateBase.h"
24#include "SceneVisibility.h"
25#include "PrimitiveSceneInfo.h"
27#include "LightShaftRendering.h"
29#include "Templates/UniquePtr.h"
30#include "MeshDrawCommands.h"
31#include "MeshPassProcessor.h"
40#include "Substrate/Substrate.h"
41#include "TemporalUpscaler.h"
42#include "GPUScene.h"
43#include "RenderCore.h"
44#include "SceneTextures.h"
45#include "TranslucencyPass.h"
46#include "SceneTexturesConfig.h"
47#include "SceneUniformBuffer.h"
48#include "TextureFallbacks.h"
49#include "SceneInterface.h"
50#include "Async/Mutex.h"
52#include "Nanite/NaniteShared.h"
53#include "LightFunctionAtlas.h"
54#include "SceneExtensions.h"
56#include "DepthRendering.h"
57
58#if RHI_RAYTRACING
60#endif // RHI_RAYTRACING
61
62// Forward declarations.
63class FScene;
64class FSceneViewState;
65class FViewInfo;
74class FLumenSceneData;
83enum class EVelocityPass : uint32;
84enum class ERayTracingSceneLayer : uint8;
88struct FSceneTextures;
98struct FDBufferTextures;
103namespace Nanite
104{
105 struct FInstanceDraw;
106}
107
109{
110 bool IsValid() const { return Index != INDEX_NONE; }
112};
113
115
120
122
125
147
150{
151public:
153 void AddSubjectPrimitive(const FPrimitiveSceneInfo* PrimitiveSceneInfo, int32 PrimitiveId)
154 {
155 checkSlow(PrimitiveSceneInfo->GetIndex() == PrimitiveId);
156 const int32 PrimitiveIndex = PrimitiveSceneInfo->GetIndex();
157 if (!ShadowSubjectPrimitivesEncountered[PrimitiveId])
158 {
159 ShadowSubjectPrimitives.Add(PrimitiveSceneInfo);
160 ShadowSubjectPrimitivesEncountered[PrimitiveId] = true;
161 }
162 }
163
169
173 {
174 ShadowSubjectPrimitivesEncountered.Init(false, PrimitiveCount);
175 }
176
177protected:
181};
182
208
243
244// Stores the primitive count of each translucency pass (redundant, could be computed after sorting but this way we touch less memory)
246{
247private:
249 bool UseSceneColorCopyPerPass[ETranslucencyPass::TPT_MAX];
250
251public:
252 // constructor
254 {
255 for(uint32 i = 0; i < ETranslucencyPass::TPT_MAX; ++i)
256 {
257 Count[i] = 0;
258 UseSceneColorCopyPerPass[i] = false;
259 }
260 }
261
262 // interface similar to TArray but here we only store the count of Prims per pass
264 {
265 for(uint32 i = 0; i < ETranslucencyPass::TPT_MAX; ++i)
266 {
267 Count[i] += InSrc.Count[i];
268 UseSceneColorCopyPerPass[i] |= InSrc.UseSceneColorCopyPerPass[i];
269 }
270 }
271
272 // interface similar to TArray but here we only store the count of Prims per pass
274 {
275 ++Count[InPass];
276 UseSceneColorCopyPerPass[InPass] |= bUseSceneColorCopy;
277 }
278
280 {
281 return Count[InPass];
282 }
283
285 {
286 int32 NumTotal = 0;
288 {
289 NumTotal += Count[PassIndex];
290 }
291 return NumTotal;
292 }
293
295 {
296 return UseSceneColorCopyPerPass[InPass];
297 }
298};
299
306
307// An occlusion query pool with frame based lifetime management
309{
310public:
312
314
315 // Recycle queries that are (OcclusionFrameCounter - NumBufferedFrames) old or older
317
318private:
319 struct FFrameOcclusionQueries
320 {
322 int32 FirstFreeIndex;
323 uint32 OcclusionFrameCounter;
324
325 FFrameOcclusionQueries()
326 : FirstFreeIndex(0)
327 , OcclusionFrameCounter(0)
328 {}
329 };
330
331 FFrameOcclusionQueries FrameQueries[FOcclusionQueryHelpers::MaxBufferedOcclusionFrames * 2];
332 uint32 CurrentFrameIndex = 0;
333 uint32 OcclusionFrameCounter = -1;
334 uint32 NumBufferedFrames = 0;
335};
336
341{
342public:
343
346
349
352
354 bool HasBatches(void) const { return (NumBatchedPrimitives > 0); }
355
357 void Flush(FRHICommandList& RHICmdList);
358
363 FRHIRenderQuery* BatchPrimitive(const FVector& BoundsOrigin, const FVector& BoundsBoxExtent, FGlobalDynamicVertexBuffer& DynamicVertexBuffer);
365 {
366 return BatchOcclusionQueries.Num();
367 }
368
369private:
370
371 struct FOcclusionBatch
372 {
375 };
376
379
381 FOcclusionBatch* CurrentBatchOcclusionQuery;
382
384 const uint32 MaxBatchedPrimitives;
385
387 uint32 NumBatchedPrimitives;
388
390 FFrameBasedOcclusionQueryPool* OcclusionQueryPool;
391
393 uint32 NumInstances;
394};
395
397{
398public:
401
402 // FRenderResource interface
403 virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
404 virtual void ReleaseRHI() override;
405
406 uint32 GetNum() const { return Primitives.Num(); }
407
408 uint32 AddBounds( const FVector& BoundsOrigin, const FVector& BoundsExtent );
409 void Submit(FRDGBuilder& GraphBuilder, const FViewInfo& View);
410
411 void MapResults(FRHICommandListImmediate& RHICmdList);
412 void UnmapResults(FRHICommandListImmediate& RHICmdList);
413 bool IsVisible( uint32 Index ) const;
414
415 bool IsValidFrame(uint32 FrameNumber) const;
416
417 void SetValidFrameNumber(uint32 FrameNumber);
418
419 uint64 GetGPUSizeBytes(bool bLogSizes) const;
420
421private:
422 enum { SizeX = 256 };
423 enum { SizeY = 256 };
424 enum { FrameNumberMask = 0x7fffffff };
425 enum { InvalidFrameNumber = 0xffffffff };
426
428
429 const uint8* ResultsBuffer;
430 int32 ResultsBufferRowPitch;
432
433 bool IsInvalidFrame() const;
434
435 // set ValidFrameNumber to a number that cannot be set by SetValidFrameNumber so IsValidFrame will return false for any frame number
436 void SetInvalidFrameNumber();
437
438 uint32 ValidFrameNumber;
439};
440
442
444class UE_DEPRECATED(5.5, "Use GraphBuilder.AddDispatchPass instead") FParallelCommandListBindings
445{
446public:
447 template <typename ParameterStructType>
449 : StaticUniformBuffers(GetStaticUniformBuffers(ParameterStruct))
450 , bHasRenderPassInfo(HasRenderPassInfo(ParameterStruct))
451 {
453 {
454 RenderPassInfo = GetRenderPassInfo(ParameterStruct);
455 }
456 }
457
458 inline void SetOnCommandList(FRHICommandList& RHICmdList) const
459 {
461 {
462 RHICmdList.BeginRenderPass(RenderPassInfo, TEXT("Parallel"));
463 }
464
465 RHICmdList.SetStaticUniformBuffers(StaticUniformBuffers);
466 }
467
468 FRHIRenderPassInfo RenderPassInfo;
469 FUniformBufferStaticBindings StaticUniformBuffers;
471};
472
473class UE_DEPRECATED(5.5, "Use GraphBuilder.AddDispatchPass instead") FParallelCommandListSet
474{
475public:
476 const FRDGPass* Pass;
477 const FViewInfo& View;
479 int32 Width;
482
483private:
485
486protected:
487 //this must be called by deriving classes virtual destructor because it calls the virtual SetStateOnCommandList.
488 //C++ will not do dynamic dispatch of virtual calls from destructors so we can't call it in the base class.
489 void Dispatch(bool bHighPriority = false);
491 bool bHasRenderPasses;
492
493public:
495
498 {}
499
500 virtual ~FParallelCommandListSet();
501
503 {
504 return QueuedCommandLists.Num();
505 }
506
508
510 {
511 return nullptr;
512 }
513
515
516 virtual void SetStateOnCommandList(FRHICommandList& CmdList) {}
517};
518
519class UE_DEPRECATED(5.5, "Use GraphBuilder.AddDispatchPass instead") FRDGParallelCommandListSet final : public FParallelCommandListSet
520{
521public:
523 const FRDGPass* InPass,
525 const FViewInfo& InView,
527 float InViewportScale = 1.0f)
529 , Bindings(InBindings)
531 {}
532
535 {}
536
538 {
539 Dispatch(bHighPriority);
540 }
541
542 void SetStateOnCommandList(FRHICommandList& RHICmdList) override;
543
544 void SetHighPriority()
545 {
546 bHighPriority = true;
547 }
548
549private:
551 float ViewportScale;
552 bool bHighPriority = false;
553};
554
556
563
580
602
611
626
648
650
664 SHADER_PARAMETER(FVector3f, DirectionalLightColor)
684 SHADER_PARAMETER(uint32, LightFunctionAtlasLightIndex)
685 SHADER_PARAMETER(uint32, bAffectsTranslucentLighting)
698
701
703{
704public:
706 {
708 ForwardLightUniformBuffer = UniformBuffer;
709 ForwardLightUniformParameters = UniformBuffer->GetContents();
710 }
711
712 const FForwardLightUniformParameters* ForwardLightUniformParameters = nullptr;
713 TRDGUniformBufferRef<FForwardLightUniformParameters> ForwardLightUniformBuffer = nullptr;
714
715 const FLightSceneProxy* SelectedForwardDirectionalLightProxy = nullptr;
716
717 // Buffers shared between primary and secondary view in single-pass stereo
722};
723
729 SHADER_PARAMETER(FVector3f, GridZParams)
737
739
747
753
769
771{
774
776 : Mesh(M)
777 , Proxy(P)
778 {}
779
781 {
782 return (Mesh->MeshIdInPrimitive == rhs.Mesh->MeshIdInPrimitive) && (Proxy == rhs.Proxy);
783 }
784};
785
793
795{
796 const FMeshBatch* Mesh = nullptr;
797 const FPrimitiveSceneProxy* Proxy = nullptr;
798};
799
800// DX11 maximum 2d texture array size is D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048, and 2048/6 = 341.33.
801UE_DEPRECATED(5.4, "Using GMaxNumReflectionCaptures directly is deprecated. Please use GetMaxNumReflectionCaptures(EShaderPlatform) instead")
802static const int32 GMaxNumReflectionCaptures = 341;
803
807 SHADER_PARAMETER_ARRAY(FVector4f,PositionHighAndRadius,[GMaxNumReflectionCaptures])
808 // W is unused
809 SHADER_PARAMETER_ARRAY(FVector4f,PositionLow,[GMaxNumReflectionCaptures])
810 // R is brightness, G is array index, B is shape
811 SHADER_PARAMETER_ARRAY(FVector4f,CaptureProperties,[GMaxNumReflectionCaptures])
812 SHADER_PARAMETER_ARRAY(FVector4f,CaptureOffsetAndAverageBrightness,[GMaxNumReflectionCaptures])
813 // Stores the box transform for a box shape, other data is packed for other shapes
814 SHADER_PARAMETER_ARRAY(FMatrix44f,BoxTransform,[GMaxNumReflectionCaptures])
815 SHADER_PARAMETER_ARRAY(FVector4f,BoxScales,[GMaxNumReflectionCaptures])
818
819UE_DEPRECATED(5.4, "Using GMobileMaxNumReflectionCaptures directly is deprecated. Please use GetMaxNumReflectionCaptures(EShaderPlatform) instead")
820static const int32 GMobileMaxNumReflectionCaptures = 100;
821
824 SHADER_PARAMETER_ARRAY(FVector4f,PositionHighAndRadius,[GMobileMaxNumReflectionCaptures])
825 // W is unused
826 SHADER_PARAMETER_ARRAY(FVector4f,PositionLow,[GMobileMaxNumReflectionCaptures])
827 // R is brightness, G is array index, B is shape
828 SHADER_PARAMETER_ARRAY(FVector4f,CaptureProperties,[GMobileMaxNumReflectionCaptures])
829 SHADER_PARAMETER_ARRAY(FVector4f,CaptureOffsetAndAverageBrightness,[GMobileMaxNumReflectionCaptures])
830 // Stores the box transform for a box shape, other data is packed for other shapes
831 SHADER_PARAMETER_ARRAY(FMatrix44f,BoxTransform,[GMobileMaxNumReflectionCaptures])
832 SHADER_PARAMETER_ARRAY(FVector4f,BoxScales,[GMobileMaxNumReflectionCaptures])
835
837
838// Structure in charge of storing all information about TAA's history.
840{
841 // Number of render target in the history.
842 static constexpr int32 kRenderTargetCount = 2;
843
844 // Render targets holding's pixel history.
845 // scene color's RGBA are in OutputRT[0].
847
848 // Reference size of RT. Might be different than RT's actual size to handle down res.
850
851 // Viewport coordinate of the history in RT according to ReferenceBufferSize.
853
854 // Returns the slice index that contains the output in RT[0].
855 int32 OutputSliceIndex = 0;
856
857
859 {
860 *this = FTemporalAAHistory();
861 }
862
863 bool IsValid() const
864 {
865 return RT[0].IsValid();
866 }
867
868 uint64 GetGPUSizeBytes(bool bLogSizes) const;
869};
870
871// Structure in charge of storing all information about TSR's history.
873{
874 // Output resolution.
877
878 // Input resolution representation of the output
882
883 // Frame's input and output resolution.
886
887 // Format of the history for auto camera cut when setting change.
889
890 // Number of frame in history.
895
896 // All the information the previous frames for resurrection.
901
902
904 {
905 *this = FTSRHistory();
906 }
907
908 bool IsValid() const
909 {
910 return MetadataArray.IsValid();
911 }
912
913 uint64 GetGPUSizeBytes(bool bLogSizes) const;
914};
915
918{
919 // Number of history render target to store.
920 static constexpr int32 RTCount = 3;
921
922 // Scissors of valid data in the render target (can be multiple if there are split screen views)
924
925 // Render target specific to the history.
927
928 // The texture for tile classification.
930
931
933 {
934 for (int32 i = 0; i < RTCount; i++)
935 RT[i].SafeRelease();
937 }
938
939 bool IsValid() const
940 {
941 return RT[0].IsValid();
942 }
943
944 uint64 GetGPUSizeBytes(bool bLogSizes) const;
945};
946
947
948
949// Structure for storing a frame of GTAO history.
951{
952 // Render targets holding a frame's pixel history.
953 // scene color's RGBA are in RT[0].
955
956 // Reference size of RT. Might be different than RT's actual size to handle down res.
958
959 // Viewport coordinate of the history in RT according to ReferenceBufferSize.
961
963 {
964 RT.SafeRelease();
965 }
966
967 bool IsValid() const
968 {
969 return RT.IsValid();
970 }
971};
972
973// Structure that hold all information related to previous frame.
975{
976 // View rect
978
979 // View matrices.
981
982 // Scene color's PreExposure.
984
986
987 // Depth buffer and Normals of the previous frame generating this history entry for bilateral kernel rejection.
992
995
996 // Distorting displacement texture applied.
998
999 // Bit mask used to interpret per-instance occlusion query results for this view.
1000 // Expected to contain a single active bit or zero if instance occlusion query data is not available.
1001 // See FInstanceCullingOcclusionQueryRenderer.
1003
1004 // Compressed scene textures for bandwidth efficient bilateral kernel rejection.
1005 // DeviceZ as float16, and normal in view space.
1007
1008 // 16bit compressed depth buffer with opaque only.
1010
1011 // R8_UINT Shading model ID with opaque only.
1013
1014 // Bleed free scene color to use for screen space ray tracing.
1016
1017 // Temporal AA result of last frame
1019
1020 // Temporal Super Resolution result of last frame
1022
1023 // Custom Temporal AA result of last frame, used by plugins
1025
1026 // Half resolution version temporal AA result of last frame
1028
1029 // Temporal AA history for diaphragm DOF.
1031
1032 // Temporal AA history for SSR
1035
1036 // Temporal AA history for Rough refraction
1038
1039 // Temporal AA history for Hair
1041
1042#if UE_ENABLE_DEBUG_DRAWING
1043 // Temporal AA history for the editor primitive depth upsampling
1045#endif
1046
1047 // Scene color input for SSR, that can be different from TemporalAAHistory.RT[0] if there is a SSR
1048 // input post process material.
1050
1051 // History for the reflections
1054
1055 // History for the ambient occlusion
1057
1058 // History for GTAO
1060
1061 // History for global illumination
1063
1064 // History for sky light
1066
1067 // History for reflected sky light
1069
1070 // History for shadow denoising.
1072
1073 // History for denoising all lights penumbra at once.
1075
1076 // History for the final back buffer luminance
1078
1079 // History for the final back buffer luminance view rect
1081
1082 // Mobile bloom setup eye adaptation surface.
1084
1085 // Scene color used for reprojecting next frame to verify the motion vector reprojects correctly.
1089
1090 uint64 GetGPUSizeBytes(bool bLogSizes) const;
1091};
1092
1093#if RHI_RAYTRACING
1094
1095namespace RayTracing
1096{
1097 enum class ECullingMode : uint8;
1098};
1099
1101{
1103 float CullingRadius;
1105 float CullAngleThreshold;
1106 float AngleThresholdRatio;
1108 FVector ViewOrigin;
1109 FVector ViewDirection;
1111 bool bCullAllObjects;
1114 bool bCullUsingGroupIds;
1117
1118 void Init(FViewInfo& View);
1119};
1120
1121#endif
1122
1129
1131class FViewInfo : public FSceneView
1132{
1133public:
1135
1136 /* Final position of the view in the final render target (in pixels), potentially scaled by ScreenPercentage */
1138
1144
1147
1150
1153
1156
1159
1162
1165
1168
1171
1174
1177
1180
1183
1186
1189
1192
1195
1198
1202
1205
1208
1211
1214
1217
1220
1223
1226
1229
1232
1235
1238
1241
1244
1247
1250
1253
1256
1257 /* [PrimitiveIndex] = end index index in DynamicMeshElements[], to support GetDynamicMeshElementRange(). Contains valid values only for visible primitives with bDynamicRelevance. */
1259
1263
1264 /* Mesh pass relevance for gathered dynamic mesh elements. */
1266
1269
1271
1273
1275
1276#if UE_ENABLE_DEBUG_DRAWING
1277 //Separate DebugSimpleElementCollector to not conflate any other simple element collector draws which may have been added from non-debug draw passes (e.g. non-opaque draws)
1279#endif
1280
1282
1284
1285#if RHI_RAYTRACING
1289
1291
1295#endif // RHI_RAYTRACING
1296
1297 // Used by mobile renderer to determine whether static meshes will be rendered with CSM shaders or not.
1299
1301
1303
1305
1307
1322
1325
1332
1337
1340
1343
1346
1349
1352
1355
1371
1374
1377
1393
1399
1402
1405
1408
1411
1414
1417
1420
1421 // Furthest and closest Hierarchical Z Buffer
1424
1432
1434
1440
1441 // Sky / Atmosphere textures (transient owned by this view info) and pointer to constants owned by SkyAtmosphere proxy.
1447
1450 // The effective cloud shadow target this frame independently of the fact that a view can have a state (primary view) or not (sky light reflection capture)
1452 // We need to extract that RDG resource because the RHI must be accessed to setup FTranslucentLightingInjectPS & TVolumetricFogLightScatteringCS
1454
1457
1460
1464
1465 // Size of the HZB's mipmap 0
1466 // NOTE: the mipmap 0 is downsampled version of the depth buffer
1468
1471
1473
1475
1476 // Whether this view should use compute passes where appropriate.
1477 bool bUseComputePasses = false;
1478
1479 // Optional stencil dithering optimization during prepasses
1481
1482 // Max emissive luminance ouput by any material for this view.
1484
1487
1490
1492
1496
1498
1500
1501private:
1504
1505public:
1507
1509 {
1511 {
1512 return GetPrimaryView()->LumenTranslucencyGIVolume;
1513 }
1514
1515 return LumenTranslucencyGIVolume;
1516 }
1517
1519 {
1520 return LumenTranslucencyGIVolume;
1521 }
1522
1524 {
1525 return MegaLightsVolume;
1526 }
1527
1529 {
1530 return MegaLightsVolume;
1531 }
1532
1534
1535#if RHI_RAYTRACING
1536private:
1537 FRayTracingScene::FViewHandle RayTracingSceneViewHandle;
1538
1539public:
1540
1541 bool HasRayTracingScene() const;
1544
1546
1547 inline const FRayTracingScene::FViewHandle& GetRayTracingSceneViewHandle() const
1548 {
1550 {
1551 return GetPrimaryView()->RayTracingSceneViewHandle;
1552 }
1553
1555 }
1556
1557 inline void SetRayTracingSceneViewHandle(const FRayTracingScene::FViewHandle& InHandle)
1558 {
1559 checkf(!IStereoRendering::IsStereoEyePass(StereoPass) || !IStereoRendering::IsASecondaryPass(StereoPass), TEXT("Stereo views should share a single ray tracing scene view."));
1561 }
1562
1563 struct FRayTracingData
1564 {
1565 FRayTracingPipelineState* PipelineState = nullptr;
1567
1570
1571 FMemStackBase MaterialBindingsMemory; //< Optional stacked based alloc for binding data
1572 };
1573
1576 bool bOwnsShaderBindingTables = true;
1577 bool bTransientShaderBindingTables = false;
1578
1579 // Buffer to the shader binding data used for inline raytracing - only valid when inline raytracing is enabled
1581
1582 // Buffer that stores the hit group data for Lumen passes that use MinimalPayload and inline ray tracing.
1584
1585 // Global Lumen parameters for CHS, AHS and inline
1587
1588 // Common resources used for lighting in ray tracing effects
1591 bool bHasRayTracingDecals = false;
1592
1594
1595 bool bHasAnyRayTracingPass = false;
1596 bool bHasRayTracingShadows = false;
1597 bool bRayTracingFeedbackEnabled = false;
1598#endif // RHI_RAYTRACING
1599
1605
1609
1610 /* View rect for all instanced views laid out side-by-side. Only primary view will have it populated.
1611 *
1612 * This may be different than FamilySize if we're using adaptive resolution stereo rendering. In that case, FamilySize represents the maximum size of
1613 * the family to ensure the backing render targets don't change between frames as the view size varies.
1614 */
1616
1617#if WITH_EDITOR
1621#endif
1622
1626 RENDERER_API FViewInfo(const FSceneViewInitOptions& InitOptions);
1627
1632 explicit FViewInfo(const FSceneView* InView);
1633
1637 RENDERER_API virtual ~FViewInfo();
1638
1639#if DO_CHECK || USING_CODE_ANALYSIS
1641 bool VerifyMembersChecks() const;
1642#endif
1643
1646
1649
1655
1657 void UpdatePreExposure();
1658
1666
1680
1684
1687
1690
1692 bool IsDistanceCulled(float DistanceSquared, float MinDrawDistance, float InMaxDrawDistance, const FPrimitiveSceneInfo* PrimitiveSceneInfo);
1693
1694 bool IsDistanceCulled_AnyThread(float DistanceSquared, float MinDrawDistance, float InMaxDrawDistance, const FPrimitiveSceneInfo* PrimitiveSceneInfo, bool& bOutMayBeFading, bool& bOutFadingIn) const;
1695
1697 bool UpdatePrimitiveFadingState(const FPrimitiveSceneInfo* PrimitiveSceneInfo, bool bFadingIn);
1698
1702
1704 float GetLastEyeAdaptationExposure() const;
1705
1707 float GetLastAverageLocalExposure() const;
1708
1710 float GetLastAverageSceneLuminance() const;
1711
1713 void SwapEyeAdaptationBuffers() const;
1714
1717
1720
1723
1725 void SetValidTonemappingLUT() const;
1726
1730
1733 IPooledRenderTarget* GetTonemappingLUT(FRHICommandList& RHICmdList, const int32 LUTSize, const bool bUseVolumeLUT, const bool bNeedUAV, const bool bNeedFloatOutput) const;
1734
1735 bool IsFirstInFamily() const
1736 {
1737 return Family->Views[0] == this;
1738 }
1739
1740 bool IsLastInFamily() const
1741 {
1742 return Family->Views.Last() == this;
1743 }
1744
1749
1751 bool ShouldRenderView() const
1752 {
1754 {
1755 return false;
1756 }
1757 else if (!bIsSinglePassStereo)
1758 {
1759 return true;
1760 }
1762 {
1763 return true;
1764 }
1765 else
1766 {
1767 return false;
1768 }
1769 }
1770
1773
1776
1778 void BeginRenderView() const;
1779
1782
1784 RENDERER_API const FViewInfo* GetPrimaryView() const;
1785
1787 inline const FViewInfo* GetInstancedView() const { return static_cast<const FViewInfo*>(GetInstancedSceneView()); }
1788
1790 FViewInfo* CreateSnapshot() const;
1791
1792 void Cleanup();
1793
1794 // Get the range in DynamicMeshElements[] for a given PrimitiveIndex
1795 // @return range (start is inclusive, end is exclusive)
1796 FInt32Range GetDynamicMeshElementRange(uint32 PrimitiveIndex) const;
1797
1800 const FSceneTextures& GetSceneTextures() const;
1802
1804
1806
1808 bool RequiresDebugMaterials() const;
1809
1815
1816private:
1817 // Cache of TEXTUREGROUP_World to create view's samplers on render thread.
1818 // may not have a valid value if FViewInfo is created on the render thread.
1819 ESamplerFilter WorldTextureGroupSamplerFilter;
1820 ESamplerFilter TerrainWeightmapTextureGroupSamplerFilter;
1821 int32 WorldTextureGroupMaxAnisotropy;
1822 bool bIsValidTextureGroupSamplerFilters;
1823
1824 FSceneViewState* GetEyeAdaptationViewState() const;
1825
1827 void Init();
1828
1830 void CalcTranslucencyLightingVolumeBounds(FBox* InOutCascadeBoundsArray, int32 NumCascades) const;
1831};
1832
1833
1839
1841{
1842public:
1843 // This structure gets included in FCachedShadowMapData, so avoid SceneRenderingAllocator use!
1846
1847 bool IsValid() const
1848 {
1849 if (DepthTarget)
1850 {
1851 return true;
1852 }
1853 else
1854 {
1855 return ColorTargets.Num() > 0;
1856 }
1857 }
1858
1860 {
1861 const FPooledRenderTargetDesc* Desc = NULL;
1862
1863 if (DepthTarget)
1864 {
1865 Desc = &DepthTarget->GetDesc();
1866 }
1867 else
1868 {
1869 check(ColorTargets.Num() > 0);
1870 Desc = &ColorTargets[0]->GetDesc();
1871 }
1872
1873 return Desc->Extent;
1874 }
1875
1877 {
1878 int64 MemorySize = 0;
1879
1880 for (int32 i = 0; i < ColorTargets.Num(); i++)
1881 {
1882 MemorySize += ColorTargets[i]->ComputeMemorySize();
1883 }
1884
1885 if (DepthTarget)
1886 {
1887 MemorySize += DepthTarget->ComputeMemorySize();
1888 }
1889
1890 return MemorySize;
1891 }
1892
1893 void Release()
1894 {
1895 for (int32 i = 0; i < ColorTargets.Num(); i++)
1896 {
1897 ColorTargets[i] = NULL;
1898 }
1899
1900 ColorTargets.Empty();
1901
1902 DepthTarget = NULL;
1903 }
1904};
1905
1911
1913{
1916
1918
1920
1922
1924
1926
1927 void Release();
1928
1930 {
1931 int64 MemorySize = 0;
1932
1933 for (int i = 0; i < ShadowMapAtlases.Num(); i++)
1934 {
1935 MemorySize += ShadowMapAtlases[i].RenderTargets.ComputeMemorySize();
1936 }
1937
1938 for (int i = 0; i < ShadowMapCubemaps.Num(); i++)
1939 {
1940 MemorySize += ShadowMapCubemaps[i].RenderTargets.ComputeMemorySize();
1941 }
1942
1944
1945 for (int i = 0; i < TranslucencyShadowMapAtlases.Num(); i++)
1946 {
1947 MemorySize += TranslucencyShadowMapAtlases[i].RenderTargets.ComputeMemorySize();
1948 }
1949
1950 return MemorySize;
1951 }
1952
1953 bool IsEmpty() const
1954 {
1955 return ShadowMapAtlases.IsEmpty() && ShadowMapCubemaps.IsEmpty() && PreshadowCache.Shadows.IsEmpty() && TranslucencyShadowMapAtlases.IsEmpty() &&
1957 }
1958};
1959
1965
1970{
1971public:
1974 virtual ~FViewFamilyInfo();
1975
1977
1980
1983 {
1984 checkf(bIsViewFamilyInfo && SceneTextures->bIsSceneTexturesInitialized, TEXT("FSceneTextures was not initialized. Call FSceneTextures::InitializeViewFamily() first."));
1985 return *SceneTextures;
1986 }
1987
1988 inline const FSceneTextures& GetSceneTextures() const
1989 {
1990 checkf(bIsViewFamilyInfo && SceneTextures->bIsSceneTexturesInitialized, TEXT("FSceneTextures was not initialized. Call FSceneTextures::InitializeViewFamily() first."));
1991 return *SceneTextures;
1992 }
1993
1995 {
1996 return bIsViewFamilyInfo && SceneTextures->bIsSceneTexturesInitialized ? SceneTextures : nullptr;
1997 }
1998
2000 {
2001 return bIsViewFamilyInfo && SceneTextures->bIsSceneTexturesInitialized ? SceneTextures : nullptr;
2002 }
2003
2004private:
2006 friend struct FSceneTextures;
2007
2008 // Structure may be pointed to by multiple FViewFamilyInfo during scene rendering, through CustomRenderPasses. The Owner
2009 // (pointed to by FSceneTextures) handles deleting the structure when the scene renderer is destroyed. TRefCountPtr doesn't
2010 // work, because the structure is also copied by value, and the copy constructor is disabled for reference counted structures.
2011 FSceneTextures* SceneTextures;
2012};
2013
2018
2021
2023{
2024public:
2026 FScene* Scene = nullptr;
2027
2030
2031 // Helper functions to retrieve the currently active scene renderer from the GraphBuilder instance.
2032 static void SetActiveInstance(FRDGBuilder& GraphBuilder, FSceneRendererBase* SceneRenderer);
2033 static FSceneRendererBase* GetActiveInstance(FRDGBuilder& GraphBuilder);
2034
2035 // ISceneRenderer interface
2036 FScene* GetScene() final override { return Scene; }
2037 const FSceneUniformBuffer& GetSceneUniforms() const final override { return SceneUniforms; }
2038 FSceneUniformBuffer& GetSceneUniforms() final override { return SceneUniforms; }
2039
2041 {
2042 return GetSceneUniforms().GetBuffer(GraphBuilder);
2043 }
2044
2045 void InitSceneExtensionsRenderers(const FEngineShowFlags& EngineShowFlags, bool bValidateCallbacks = false)
2046 {
2047 SceneExtensionsRenderers.Begin(*this, EngineShowFlags, bValidateCallbacks);
2048 }
2049 FSceneExtensionsRenderers& GetSceneExtensionsRenderers() { return SceneExtensionsRenderers; }
2050 const FSceneExtensionsRenderers& GetSceneExtensionsRenderers() const { return SceneExtensionsRenderers; }
2051
2054
2059 virtual FViewFamilyInfo* GetViewFamily() { return nullptr; }
2060
2068
2069private:
2070 FSceneUniformBuffer SceneUniforms;
2071 FSceneExtensionsRenderers SceneExtensionsRenderers;
2072};
2073
2080{
2081public:
2084
2087
2090
2106
2109
2111 // Provides access to properties of linked scene renderers.
2112
2113 struct
2114 {
2117
2119
2120 bool IsHeadLink() const { return Link.Head == this; }
2121
2122 template <typename LambdaType>
2123 void EnumerateLinkedViews(LambdaType&& Lambda, const FSceneView* ViewToSkip = nullptr)
2124 {
2125 for (FSceneRenderer* Renderer = Link.Head; Renderer; Renderer = Renderer->Link.Next)
2126 {
2127 for (FViewInfo& View : Renderer->Views)
2128 {
2129 if (ViewToSkip != &View)
2130 {
2131 if (!Lambda(View))
2132 {
2133 return;
2134 }
2135 }
2136 }
2137 }
2138 }
2139
2140 template <typename LambdaType>
2142 {
2143 for (FSceneRenderer* Renderer = Link.Head; Renderer; Renderer = Renderer->Link.Next)
2144 {
2145 if (ViewFamilyToSkip != &Renderer->ViewFamily)
2146 {
2147 if (!Lambda(Renderer->ViewFamily))
2148 {
2149 return;
2150 }
2151 }
2152 }
2153 }
2154
2156
2160
2163
2167
2169
2171
2173
2176
2179
2180#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
2183#endif
2187
2190
2191public:
2192
2194 virtual ~FSceneRenderer();
2195
2196 // ISceneRenderer interface
2198
2199 // FSceneRendererBase interface
2200 virtual FViewFamilyInfo* GetViewFamily() override { return &ViewFamily; }
2201
2202 // FSceneRenderer interface
2203 virtual void Render(FRDGBuilder& GraphBuilder, const FSceneRenderUpdateInputs* SceneUpdateInputs) = 0;
2204 virtual void RenderHitProxies(FRDGBuilder& GraphBuilder, const FSceneRenderUpdateInputs* SceneUpdateInputs) {}
2205 virtual bool ShouldRenderVelocities() const { return false; }
2206 virtual bool ShouldRenderPrePass() const { return false; }
2207 virtual bool ShouldRenderNanite() const { return false; }
2208 virtual bool AllowSimpleLights() const;
2209
2212
2213#if WITH_MGPU
2219 void ComputeGPUMasks(FRHICommandListImmediate* RHICmdList);
2220#endif
2221
2225 void FlushCrossGPUTransfers(FRDGBuilder& GraphBuilder);
2226 void FlushCrossGPUFences(FRDGBuilder& GraphBuilder);
2227
2228 bool DoOcclusionQueries() const;
2229
2230 void FenceOcclusionTests(FRDGBuilder& GraphBuilder);
2232
2233 // fences to make sure the rhi thread has digested the occlusion query renders before we attempt to read them back async
2235
2237
2240
2248 static bool ShouldCompositeEditorPrimitives(const FViewInfo& View);
2249
2252 const FSceneViewFamily& ViewFamily, const FIntPoint& UnscaledViewSize, float ResolutionFraction);
2253
2256
2261
2264 const ISceneViewFamilyScreenPercentage* ScreenPercentageInterface, FSceneViewFamily& ForkedViewFamily)
2265 {
2266 return ScreenPercentageInterface->Fork_GameThread(ForkedViewFamily);
2267 }
2268
2270
2273 FRDGBuilder& GraphBuilder,
2274 const FSceneTextureShaderParameters& SceneTextures,
2276
2279
2281 static void SetStereoViewport(FRHICommandList& RHICmdList, const FViewInfo& View, float ViewportScale = 1.0f);
2282
2284
2286 FRDGBuilder& GraphBuilder,
2287 const FViewInfo& View,
2290 FVector GridZParams,
2291 float VolumetricFogDistance,
2292 bool bVoxelizeEmissive);
2293
2295 FRDGBuilder& GraphBuilder,
2296 FViewInfo& View,
2297 const FSceneTextures& SceneTextures,
2303
2305 FRDGBuilder& GraphBuilder,
2306 FViewInfo& View, int32 ViewIndex,
2311 FVector GridZParams,
2317
2320 FRDGBuilder& GraphBuilder,
2321 const FViewInfo& View,
2323
2326 FRDGBuilder& GraphBuilder,
2327 const FSceneTextures& SceneTextures,
2328 const FViewInfo& View,
2332 const FDistanceFieldAOParameters& Parameters,
2333 FRDGTextureRef DistanceFieldNormal,
2335
2338 FRDGBuilder& GraphBuilder,
2339 const FSceneTextures& SceneTextures,
2340 const class FDistanceFieldAOParameters& Parameters,
2343 bool bVisualizeAmbientOcclusion,
2344 bool bModulateToScreenSpaceAO = false);
2345
2346 void SetupVolumetricFog();
2347
2348 bool ShouldRenderVolumetricFog() const;
2349 void ComputeVolumetricFog(FRDGBuilder& GraphBuilder, const FSceneTextures& SceneTextures);
2350
2351 virtual bool IsLumenEnabled(const FViewInfo& View) const { return false; }
2352 virtual bool IsLumenGIEnabled(const FViewInfo& View) const { return false; }
2353 virtual bool AnyViewHasGIMethodSupportingDFAO() const { return true; }
2354
2357
2360
2363
2366
2368
2372
2374 {
2376 }
2377
2378protected:
2379
2382
2383#if WITH_MGPU
2393
2396
2398 bool IsShadowCached(FProjectedShadowInfo* ProjectedShadowInfo) const;
2399 FRHIGPUMask GetGPUMaskForShadow(FProjectedShadowInfo* ProjectedShadowInfo) const;
2400#endif
2401
2404
2406
2407 // Shared functionality between all scene renderers
2408
2410 {
2411 DepthPrepassOnly, // Only render depth prepass and its related code paths
2412 FinalSceneColor // Render the whole pipeline
2413 };
2414
2416
2417 FDynamicShadowsTaskData* BeginInitDynamicShadows(FRDGBuilder& GraphBuilder, bool bRunningEarly, IVisibilityTaskData* VisibilityTaskData, FInstanceCullingManager& InstanceCullingManager);
2418 void FinishInitDynamicShadows(FRDGBuilder& GraphBuilder, FDynamicShadowsTaskData* TaskData);
2420 FDynamicShadowsTaskData* InitDynamicShadows(FRDGBuilder& GraphBuilder, FInstanceCullingManager& InstanceCullingManager);
2421
2425
2426 void SetupMeshPass(FViewInfo& View, FExclusiveDepthStencil::Type BasePassDepthStencilAccess, FViewCommands& ViewCommands, FInstanceCullingManager& InstanceCullingManager);
2427
2429 FRDGBuilder& GraphBuilder,
2430 FRDGTextureRef OutputTexture,
2431 const FMinimalSceneTextures& SceneTextures,
2434 bool bSubPixelShadow,
2436
2437
2439 FRDGBuilder& GraphBuilder,
2440 const FMinimalSceneTextures& SceneTextures,
2443 const FLightSceneInfo* LightSceneInfo,
2445
2447 FRDGBuilder& GraphBuilder,
2448 const FMinimalSceneTextures& SceneTextures,
2449 const FDynamicShadowsTaskData* TaskData) const;
2450
2455 const FBoxSphereBounds& Bounds,
2457
2460 FDynamicShadowsTaskData& TaskData,
2464 const TArray<FProjectedShadowInfo*, SceneRenderingAllocator>& ViewDependentWholeSceneShadows,
2466
2469 FDynamicShadowsTaskData& TaskData,
2472 bool bStaticSceneOnly,
2473 const TArray<FProjectedShadowInfo*, SceneRenderingAllocator>& ViewDependentWholeSceneShadows,
2475
2481 FLightSceneInfo& LightSceneInfo,
2484
2486
2488
2490
2492
2494
2496
2505 bool CheckForProjectedShadows(const FLightSceneInfo* LightSceneInfo) const;
2506
2508 void BeginGatherShadowPrimitives(FDynamicShadowsTaskData* TaskData, IVisibilityTaskData* VisibilityTaskData);
2510
2512
2513 void RenderShadowDepthMapAtlases(FRDGBuilder& GraphBuilder);
2514
2520
2522 void UpdatePreshadowCache();
2523
2526
2529
2531 void DrawDebugShadowFrustum(FViewInfo& View, FProjectedShadowInfo& ProjectedShadowInfo);
2532
2535
2538 FRDGBuilder& GraphBuilder,
2539 const FLightSceneInfo& LightSceneInfo,
2542 bool bProjectingForForwardShading) const;
2543
2545 void PreVisibilityFrameSetup(FRDGBuilder& GraphBuilder);
2546
2548
2551
2553 void InitFogConstants();
2554
2556 bool ShouldRenderTranslucency() const;
2558
2560 IVisibilityTaskData* OnRenderBegin(FRDGBuilder& GraphBuilder, const FSceneRenderUpdateInputs* SceneUpdateInputs);
2561 void OnRenderFinish(FRDGBuilder& GraphBuilder, FRDGTextureRef ViewFamilyTexture);
2562
2564 FRDGBuilder& GraphBuilder,
2566 const FSceneTextureShaderParameters& SceneTextures,
2569
2571
2573
2575 void InitSkyAtmosphereForViews(FRHICommandListImmediate& RHICmdList, FRDGBuilder& GraphBuilder);
2576
2579
2581 void RenderSkyAtmosphere(FRDGBuilder& GraphBuilder, const FMinimalSceneTextures& SceneTextures);
2582
2584 void InitVolumetricCloudsForViews(FRDGBuilder& GraphBuilder, bool bShouldRenderVolumetricCloud, FInstanceCullingManager& InstanceCullingManager);
2585
2588 FRDGBuilder& GraphBuilder,
2589 const FMinimalSceneTextures& SceneTextures,
2594 bool bAsyncCompute,
2595 FInstanceCullingManager& InstanceCullingManager);
2596
2599
2602
2608
2613
2619
2624
2631 bool CheckForLightFunction(const FLightSceneInfo* LightSceneInfo) const;
2632
2634
2635 void RenderVelocities(
2636 FRDGBuilder& GraphBuilder,
2638 const FSceneTextures& SceneTextures,
2640 bool bForceVelocity,
2641 bool bBindRenderTarget = true);
2642
2643 void RenderMeshDistanceFieldVisualization(FRDGBuilder& GraphBuilder, const FMinimalSceneTextures& SceneTextures);
2644
2645#if !UE_BUILD_SHIPPING
2648#endif
2649
2650protected:
2652
2654 {
2655 checkf(bShadowDepthRenderCompleted, TEXT("Shadow depth rendering was not done before shadow projections, this will cause severe shadow artifacts and indicates an engine bug (pass ordering)"));
2656 }
2657
2658 virtual void ComputeLightVisibility();
2659
2660private:
2661 void ComputeFamilySize();
2662
2664
2665 void SetupMeshPasses(IVisibilityTaskData& TaskData, FExclusiveDepthStencil::Type BasePassDepthStencilAccess, FInstanceCullingManager& InstanceCullingManager);
2666
2667 void PrepareViewStateForVisibility(const FSceneTexturesConfig& SceneTexturesConfig);
2668
2669 bool bShadowDepthRenderCompleted;
2670
2671#if RHI_RAYTRACING
2673#endif
2674
2675 friend class FRendererModule;
2677};
2678
2681{
2682 None = 0,
2683 HitProxies = 1 << 0,
2684 PathTracing = 1 << 1
2685};
2687
2692{
2694 {
2695 return MakeArrayView(reinterpret_cast<const FSceneView* const*>(Views.GetData()), Views.Num());
2696 }
2697
2699 {
2700 return MakeArrayView(reinterpret_cast<const FSceneViewFamily* const*>(ViewFamilies.GetData()), ViewFamilies.Num());
2701 }
2702
2703 template <typename LambdaType>
2704 bool HasAnyShowFlags(LambdaType&& Lambda) const
2705 {
2706 for (FViewFamilyInfo* Family : ViewFamilies)
2707 {
2708 if (Lambda(Family->EngineShowFlags))
2709 {
2710 return true;
2711 }
2712 }
2713 return false;
2714 }
2715
2716 template <typename LambdaType>
2717 void ForEachView(LambdaType&& Lambda) const
2718 {
2720 {
2721 for (FViewInfo& View : Renderer->Views)
2722 {
2723 if (!Lambda(Renderer, View))
2724 {
2725 return;
2726 }
2727 }
2728 }
2729 }
2730
2740};
2741
2742template <typename LambdaType, typename PrerequisiteTaskCollectionType>
2743UE::Tasks::FTask LaunchSceneRenderTask(const TCHAR* DebugName, LambdaType&& Lambda, PrerequisiteTaskCollectionType&& Prerequisites, bool bExecuteInParallelCondition = true, UE::Tasks::ETaskPriority TaskPriority = UE::Tasks::ETaskPriority::High)
2744{
2746
2747 return UE::Tasks::Launch(DebugName, [Lambda = Forward<LambdaType&&>(Lambda)] () mutable
2748 {
2750 Lambda();
2751 },
2753 TaskPriority,
2755 );
2756}
2757
2758template <typename LambdaType>
2759UE::Tasks::FTask LaunchSceneRenderTask(const TCHAR* DebugName, LambdaType&& Lambda, bool bExecuteInParallelCondition = true, UE::Tasks::ETaskPriority TaskPriority = UE::Tasks::ETaskPriority::High)
2760{
2762
2763 return UE::Tasks::Launch(DebugName, [Lambda = Forward<LambdaType&&>(Lambda)] () mutable
2764 {
2766 Lambda();
2767 },
2768 TaskPriority,
2770 );
2771}
2772
2773template <typename ReturnType, typename LambdaType, typename PrerequisiteTaskCollectionType>
2774UE::Tasks::TTask<ReturnType> LaunchSceneRenderTask(const TCHAR* DebugName, LambdaType&& Lambda, PrerequisiteTaskCollectionType&& Prerequisites, bool bExecuteInParallelCondition = true, UE::Tasks::ETaskPriority TaskPriority = UE::Tasks::ETaskPriority::High)
2775{
2777
2778 return UE::Tasks::Launch(DebugName, [Lambda = Forward<LambdaType&&>(Lambda)] () mutable
2779 {
2781 return Lambda();
2782 },
2784 TaskPriority,
2786 );
2787}
2788
2789// Creates a FGraphEventRef from UE::Task::FTask prerequisites.
2790template <typename PrerequisiteTaskCollectionType>
2792{
2795 {
2796 GraphEvent->DispatchSubsequents();
2797
2798 }, Prerequisites, UE::Tasks::ETaskPriority::High, UE::Tasks::EExtendedTaskPriority::Inline);
2799 return GraphEvent;
2800}
2801
2803
2808{
2809public:
2810
2812
2813 // FSceneRenderer interface
2814
2815 virtual void Render(FRDGBuilder& GraphBuilder, const FSceneRenderUpdateInputs* SceneUpdateInputs) override;
2816
2817 virtual void RenderHitProxies(FRDGBuilder& GraphBuilder, const FSceneRenderUpdateInputs* SceneUpdateInputs) override;
2818
2819 virtual bool ShouldRenderVelocities() const override;
2820
2821 virtual bool ShouldRenderPrePass() const override;
2822
2823 virtual bool AllowSimpleLights() const override;
2824
2826 static bool RequiresMultiPass(int32 NumMSAASamples, EShaderPlatform ShaderPlatform);
2827
2829 static bool ShouldRenderCustomDepth(const FViewInfo& View);
2830
2831protected:
2834
2836
2838 void BuildCSMVisibilityState(FLightSceneInfo* LightSceneInfo);
2839
2849
2850 void InitViews(
2851 FRDGBuilder& GraphBuilder,
2852 FSceneTexturesConfig& SceneTexturesConfig,
2853 FInstanceCullingManager& InstanceCullingManager,
2856
2859 void RenderFullDepthPrepass(FRDGBuilder& GraphBuilder, TArrayView<FViewInfo> InViews, FSceneTextures& SceneTextures, FInstanceCullingManager& InstanceCullingManager, bool bIsSceneCaptureRenderPass=false);
2860
2862
2863 void RenderMobileLocalLightsBuffer(FRDGBuilder& GraphBuilder, FSceneTextures& SceneTextures, const FSortedLightSetSceneInfo& SortedLights);
2864
2865 void RenderCustomRenderPassBasePass(FRDGBuilder& GraphBuilder, TArrayView<FViewInfo> InViews, FRDGTextureRef ViewFamilyTexture, FSceneTextures& SceneTextures, FInstanceCullingManager& InstanceCullingManager, bool bIncludeTranslucent);
2866
2869
2870 void PostRenderBasePass(FRHICommandList& RHICmdList, FViewInfo& View);
2871
2873
2874#if UE_ENABLE_DEBUG_DRAWING
2876 void RenderMobileDebugPrimitives(FRHICommandList& RHICmdList, const FViewInfo& View);
2877#endif
2878
2881
2883 void RenderModulatedShadowProjections(FRHICommandList& RHICmdList, int32 ViewIndex, const FViewInfo& View);
2884
2887
2889
2890
2892 void RenderHZB(FRHICommandListImmediate& RHICmdList, const TRefCountPtr<IPooledRenderTarget>& SceneDepthZ);
2893 void RenderHZB(FRDGBuilder& GraphBuilder, FRDGTextureRef SceneDepthTexture);
2894
2897
2898
2901 void RenderDBuffer(FRDGBuilder& GraphBuilder, FSceneTextures& SceneTextures, FDBufferTextures& DBufferTextures, FInstanceCullingManager& InstanceCullingManager);
2902
2904 void RenderFog(FRHICommandList& RHICmdList, const FViewInfo& View);
2905
2908
2910 void PreTonemapMSAA(FRHICommandList& RHICmdList, const FMinimalSceneTextures& SceneTextures);
2911
2912 void SetupMobileBasePassAfterShadowInit(FExclusiveDepthStencil::Type BasePassDepthStencilAccess, TArrayView<FViewCommands> ViewCommandsPerView, FInstanceCullingManager& InstanceCullingManager);
2913
2914 void UpdateDirectionalLightUniformBuffers(FRDGBuilder& GraphBuilder, const FViewInfo& View);
2916
2917 void RenderForward(FRDGBuilder& GraphBuilder, FRDGTextureRef ViewFamilyTexture, FSceneTextures& SceneTextures, FMobileBasePassTextures& BasePassTextures, FInstanceCullingManager& InstanceCullingManager);
2920
2923
2924 void RenderStereoMotionVectors(FRDGBuilder& GraphBuilder, FViewInfo& View, const FSceneTextures& SceneTextures, FInstanceCullingManager& InstanceCullingManager);
2925 bool HasStereoMotionVectorRenderTargets(const FSceneTextures& SceneTextures);
2926
2927 FRDGTextureRef RenderAmbientOcclusion(FRDGBuilder& GraphBuilder, const FSceneTextures& SceneTextures);
2928
2931
2935
2936private:
2937 const bool bGammaSpace;
2938 const bool bDeferredShading;
2939 const bool bRequiresDBufferDecals;
2940 const bool bUseVirtualTexturing;
2941 const bool bSupportsSimpleLights;
2942 bool bTonemapSubpass;
2943 bool bTonemapSubpassInline;
2944 int32 NumMSAASamples;
2945 bool bRenderToSceneColor;
2946 bool bRequiresMultiPass;
2947 bool bKeepDepthContent;
2948 bool bModulatedShadowsInUse;
2949 bool bShouldRenderCustomDepth;
2950 bool bShouldRenderVelocities;
2951 bool bShouldRenderHZB;
2952 bool bIsFullDepthPrepassEnabled;
2953 bool bIsMaskedOnlyDepthPrepassEnabled;
2954 bool bRequiresSceneDepthAux;
2955 bool bEnableClusteredLocalLights;
2956 bool bEnableClusteredReflections;
2957 bool bRequiresShadowProjections;
2958 bool bAdrenoOcclusionMode;
2959 bool bEnableDistanceFieldAO;
2960 ETranslucencyPass::Type StandardTranslucencyPass;
2961 EMeshPass::Type StandardTranslucencyMeshPass;
2962
2963 const FViewInfo* CachedView = nullptr;
2964};
2965
2966// The noise textures need to be set in Slate too.
2968
2970{
2972 void Update();
2975
3021
3026
3027 // Buffers
3034
3035private:
3036 bool UpdateTextureFlagFromCVar(TAutoConsoleVariable<int32>& CVar, ETextureCreateFlags& InOutValue);
3037 bool UpdateBufferFlagFromCVar(TAutoConsoleVariable<int32>& CVar, EBufferUsageFlags& InOutValue);
3038};
3039
3041
3044
3047
3048extern bool UseCachedMeshDrawCommands();
3050extern bool IsDynamicInstancingEnabled(ERHIFeatureLevel::Type FeatureLevel);
3052{
3053 FrameSetup,
3054 Renderer,
3055};
3056
3060
3064
3067
3070
3073
3076
3078{
3079 // TODO: We are refactoring away use of the FSceneTexturesConfig::Get() global singleton, but need this workaround for now to avoid crashes
3080 return Family->bIsViewFamilyInfo ? ((const FViewFamilyInfo*)Family)->SceneTexturesConfig : FSceneTexturesConfig::Get();
3081}
3082
3084{
3085 return ((FViewFamilyInfo*)Family)->GetSceneTextures();
3086}
3087
3089{
3090 return ((FViewFamilyInfo*)Family)->GetSceneTexturesChecked();
3091}
3092
3097
3105{
3106 check(Views.Num() == 1 || Views[0].Family == Views.Last().Family);
3107 return *(FViewFamilyInfo*)Views[0].Family;
3108}
3109
3111{
3112 check(Views.Num() == 1 || Views[0].Family == Views.Last().Family);
3113 return *(const FViewFamilyInfo*)Views[0].Family;
3114}
3115
3117{
3118 check(Views.Num() == 1 || Views[0].Family == Views.Last().Family);
3119 return *(FViewFamilyInfo*)Views[0].Family;
3120}
3121
3123{
3124 check(Views.Num() == 1 || Views[0].Family == Views.Last().Family);
3125 return *(const FViewFamilyInfo*)Views[0].Family;
3126}
3127
3130
3133
3135
#define NULL
Definition oodle2base.h:134
#define FORCEINLINE
Definition AndroidPlatform.h:140
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ EParallelRenderingThread
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
@ InPlace
Definition CoreMiscDefines.h:162
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define UNLIKELY(x)
Definition Platform.h:857
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define NUM_ATMOSPHERE_LIGHTS
Definition EngineDefines.h:26
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
@ GDF_Num
Definition GlobalDistanceField.h:21
void Init()
Definition LockFreeList.h:4
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UE_SOURCE_LOCATION
Definition PreprocessorHelpers.h:71
EBufferUsageFlags
Definition RHIDefinitions.h:892
ESamplerFilter
Definition RHIDefinitions.h:326
ETextureCreateFlags
Definition RHIDefinitions.h:1091
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
EShaderPlatform
Definition RHIShaderPlatform.h:11
#define DECLARE_GPU_STAT_NAMED_EXTERN(StatName, NameString)
Definition RealtimeGPUProfiler.h:260
RENDERCORE_API bool GIsThreadedRendering
Definition RenderingThread.cpp:48
bool UseCachedMeshDrawCommands()
Definition SceneRendering.cpp:166
bool IsDynamicInstancingEnabled(ERHIFeatureLevel::Type FeatureLevel)
Definition SceneRendering.cpp:189
EGPUSkinCacheTransition
Definition SceneRendering.h:3052
void AddResolveSceneDepthPass(FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureMSAA SceneDepth)
Definition SceneRendering.cpp:6090
void BeginShadowGatherDynamicMeshElements(FDynamicShadowsTaskData *TaskData)
Definition ShadowSetup.cpp:1485
FRDGTextureRef CreateHalfResolutionDepthCheckerboardMinMax(FRDGBuilder &GraphBuilder, TArrayView< const FViewInfo > Views, FRDGTextureRef SceneDepth)
Definition SceneRendering.cpp:6219
ESceneRenderCommonShowFlags
Definition SceneRendering.h:2681
FRDGTextureRef CreateQuarterResolutionDepthMinAndMax(FRDGBuilder &GraphBuilder, TArrayView< const FViewInfo > Views, FRDGTextureRef DepthTexture)
Definition SceneRendering.cpp:6241
void CreateQuarterResolutionDepthMinAndMaxFromDepthTexture(FRDGBuilder &GraphBuilder, TArrayView< const FViewInfo > Views, FRDGTextureRef DepthTexture, FRDGTextureRef &OutHalfResMinMax, FRDGTextureRef &OutQuarterResMinMax)
Definition SceneRendering.cpp:6260
EGlobalSDFFullRecaptureReason
Definition SceneRendering.h:604
TRDGUniformBufferRef< FForwardLightUniformParameters > CreateDummyForwardLightUniformBuffer(FRDGBuilder &GraphBuilder, EShaderPlatform ShaderPlatform)
Definition LightGridInjection.cpp:255
void AddResolveSceneColorPass(FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureMSAA SceneColor)
Definition SceneRendering.cpp:5916
TArray< uint8, SceneRenderingAllocator > FPrimitiveViewMasks
Definition SceneRendering.h:1838
bool DoMaterialAndPrimitiveModifyMeshPosition(const FMaterial &Material, const FPrimitiveSceneProxy *PrimitiveSceneProxy)
Definition SceneRendering.cpp:6345
FGraphEventRef CreateCompatibilityGraphEvent(PrerequisiteTaskCollectionType &&Prerequisites)
Definition SceneRendering.h:2791
bool IsPrimitiveAlphaHoldoutEnabledForAnyView(TArrayView< const FViewInfo > Views)
Definition SceneRendering.cpp:6305
PRAGMA_DISABLE_DEPRECATION_WARNINGS PRAGMA_ENABLE_DEPRECATION_WARNINGS int32 GetMaxNumReflectionCaptures(EShaderPlatform ShaderPlatform)
Definition SceneRendering.cpp:196
bool SceneCaptureRequiresAlphaChannel(const FSceneView &View)
Definition SceneRendering.cpp:6318
TArray< FRDGTextureRef, TInlineAllocator< 6 > > FColorTargets
Definition SceneRendering.h:2802
bool IsPrimitiveAlphaHoldoutEnabled(const FViewInfo &View)
Definition SceneRendering.cpp:6293
TConstArrayView< FProjectedShadowInfo * > GetProjectedDistanceFieldShadows(const FDynamicShadowsTaskData *TaskData)
Definition ShadowSetup.cpp:1493
RENDERER_API void UpdateNoiseTextureParameters(FViewUniformShaderParameters &ViewUniformShaderParameters)
Definition SceneRendering.cpp:1138
FFastVramConfig GFastVRamConfig
Definition SceneRendering.cpp:788
void VirtualTextureFeedbackBegin(FRDGBuilder &GraphBuilder, TArrayView< const FViewInfo > Views, FIntPoint SceneTextureExtent)
Definition SceneRendering.cpp:6204
void SetupVolumetricFogGlobalData(const FViewInfo &View, FVolumetricFogGlobalData &Parameters)
Definition VolumetricFog.cpp:1282
UE::Tasks::FTask LaunchSceneRenderTask(const TCHAR *DebugName, LambdaType &&Lambda, PrerequisiteTaskCollectionType &&Prerequisites, bool bExecuteInParallelCondition=true, UE::Tasks::ETaskPriority TaskPriority=UE::Tasks::ETaskPriority::High)
Definition SceneRendering.h:2743
EVolumeUpdateType
Definition SceneRendering.h:558
@ VUT_Heightfields
Definition SceneRendering.h:560
@ VUT_All
Definition SceneRendering.h:561
@ VUT_MeshDistanceFields
Definition SceneRendering.h:559
FViewFamilyInfo & GetViewFamilyInfo(const TArray< FViewInfo > &Views)
Definition SceneRendering.h:3104
bool UseCachedMeshDrawCommands_AnyThread()
Definition SceneRendering.cpp:171
void SetDummyForwardLightUniformBufferOnViews(FRDGBuilder &GraphBuilder, EShaderPlatform ShaderPlatform, TArray< FViewInfo > &Views)
Definition LightGridInjection.cpp:262
bool ShouldUseStereoLumenOptimizations()
Definition LumenDiffuseIndirect.cpp:316
const int32 GMaxForwardShadowCascades
Definition SceneRendering.h:649
@ TVC_MAX
Definition SceneView.h:839
#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1800
#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1752
#define SHADER_PARAMETER_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1708
#define END_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1669
#define SHADER_PARAMETER_ARRAY(MemberType, MemberName, ArrayDecl)
Definition ShaderParameterMacros.h:1696
#define SHADER_PARAMETER_SAMPLER(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1740
#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1663
#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT_WITH_CONSTRUCTOR
Definition ShaderParameterMacros.h:1666
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
EVelocityPass
Definition VelocityRendering.h:20
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition DynamicRenderScaling.h:172
static CORE_API bool ShouldUseThreadingForPerformance()
Definition App.cpp:300
static FGraphEventRef CreateGraphEvent()
Definition TaskGraphInterfaces.h:743
void DispatchSubsequents(ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:559
Definition BatchedElements.h:102
Definition SceneRendering.h:582
FClipmapUpdateBounds()
Definition SceneRendering.h:584
bool bExpandByInfluenceRadius
Definition SceneRendering.h:599
FVector Extent
Definition SceneRendering.h:600
FVector Center
Definition SceneRendering.h:598
FClipmapUpdateBounds(const FVector &InCenter, const FVector &InExtent, bool bInExpandByInfluenceRadius)
Definition SceneRendering.h:591
Definition CustomRenderPass.h:50
Definition DeferredShadingRenderer.h:317
Definition DistanceFieldAmbientOcclusion.h:34
Type
Definition RHIResources.h:412
Definition SceneCore.h:147
Definition FXSystem.h:131
Definition SceneRendering.h:703
void SetUniformBuffer(TRDGUniformBufferRef< FForwardLightUniformParameters > UniformBuffer)
Definition SceneRendering.h:705
FRDGBufferUAVRef NumCulledLightsGridUAV
Definition SceneRendering.h:721
FRDGBufferSRVRef NumCulledLightsGridSRV
Definition SceneRendering.h:720
FRDGBufferSRVRef CulledLightDataGridSRV
Definition SceneRendering.h:718
FRDGBufferUAVRef CulledLightDataGridUAV
Definition SceneRendering.h:719
Definition SceneRendering.h:309
void AdvanceFrame(uint32 InOcclusionFrameCounter, uint32 InNumBufferedFrames, bool bStereoRoundRobin)
Definition SceneOcclusion.cpp:406
FRHIRenderQuery * AllocateQuery()
Definition SceneOcclusion.cpp:365
Definition GPUScene.h:186
Definition GPUScene.h:80
Definition SceneRendering.h:613
EGlobalSDFFullRecaptureReason FullRecaptureReason
Definition SceneRendering.h:621
TArray< FClipmapUpdateBounds, TInlineAllocator< 64 > > UpdateBounds
Definition SceneRendering.h:624
FBox Bounds
Definition SceneRendering.h:616
FVector ScrollOffset
Definition SceneRendering.h:619
Definition SceneRendering.h:628
void UpdateParameterData(float MaxOcclusionDistance, bool bLumenEnabled, float LumenSceneViewDistance, FVector PreViewTranslation)
Definition GlobalDistanceField.cpp:536
TArray< FGlobalDistanceFieldClipmap > MostlyStaticClipmaps
Definition SceneRendering.h:632
TRefCountPtr< IPooledRenderTarget > PageAtlasTexture
Definition SceneRendering.h:639
FGlobalDistanceFieldParameterData ParameterData
Definition SceneRendering.h:635
TRefCountPtr< IPooledRenderTarget > PageTableCombinedTexture
Definition SceneRendering.h:642
TRefCountPtr< FRDGPooledBuffer > PageObjectGridBuffer
Definition SceneRendering.h:641
TArray< FGlobalDistanceFieldClipmap > Clipmaps
Definition SceneRendering.h:633
TRefCountPtr< FRDGPooledBuffer > PageFreeListAllocatorBuffer
Definition SceneRendering.h:637
TRefCountPtr< IPooledRenderTarget > MipTexture
Definition SceneRendering.h:644
TRefCountPtr< FRDGPooledBuffer > PageFreeListBuffer
Definition SceneRendering.h:638
bool bInitialized
Definition SceneRendering.h:630
TRefCountPtr< IPooledRenderTarget > CoverageAtlasTexture
Definition SceneRendering.h:640
TRefCountPtr< IPooledRenderTarget > PageTableLayerTextures[GDF_Num]
Definition SceneRendering.h:643
Definition GlobalDistanceFieldParameters.h:18
Definition GlobalRenderResources.h:216
Definition GlobalShader.h:173
Definition SceneRendering.h:397
virtual void ReleaseRHI() override
Definition SceneOcclusion.cpp:823
void UnmapResults(FRHICommandListImmediate &RHICmdList)
Definition SceneOcclusion.cpp:871
bool IsValidFrame(uint32 FrameNumber) const
Definition SceneOcclusion.cpp:790
FHZBOcclusionTester()
Definition SceneOcclusion.cpp:783
~FHZBOcclusionTester()
Definition SceneRendering.h:400
uint32 AddBounds(const FVector &BoundsOrigin, const FVector &BoundsExtent)
Definition SceneOcclusion.cpp:831
void SetValidFrameNumber(uint32 FrameNumber)
Definition SceneOcclusion.cpp:795
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:88
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SceneOcclusion.cpp:815
uint32 GetNum() const
Definition SceneRendering.h:406
void Submit(FRDGBuilder &GraphBuilder, const FViewInfo &View)
Definition SceneOcclusion.cpp:946
void MapResults(FRHICommandListImmediate &RHICmdList)
Definition SceneOcclusion.cpp:840
Definition HitProxies.h:218
Definition InstanceCullingManager.h:45
Definition SceneCore.h:23
Definition LightSceneInfo.h:208
Definition LightSceneProxy.h:43
Definition LumenFrontLayerTranslucency.h:12
Definition LumenSceneData.h:1002
Definition LumenTranslucencyVolumeLighting.h:20
Definition MaterialShared.h:2058
Definition MegaLights.h:28
Definition MemStack.h:78
Definition SceneRendering.h:150
FSceneBitArray ShadowSubjectPrimitivesEncountered
Definition SceneRendering.h:179
void AddSubjectPrimitive(const FPrimitiveSceneInfo *PrimitiveSceneInfo, int32 PrimitiveId)
Definition SceneRendering.h:153
void InitShadowSubjectPrimitives(int32 PrimitiveCount)
Definition SceneRendering.h:172
TArray< const FPrimitiveSceneInfo *, SceneRenderingAllocator > ShadowSubjectPrimitives
Definition SceneRendering.h:180
const TArray< const FPrimitiveSceneInfo *, SceneRenderingAllocator > & GetShadowSubjectPrimitives() const
Definition SceneRendering.h:165
Definition SceneRendering.h:128
FSceneBitArray MobileCSMStaticMeshVisibilityMap
Definition SceneRendering.h:138
FSceneBitArray MobilePrimitiveCSMReceiverVisibilityMap
Definition SceneRendering.h:137
FMobileCSMVisibilityInfo()
Definition SceneRendering.h:144
uint32 bMobileDynamicCSMInUse
Definition SceneRendering.h:131
FSceneBitArray MobileNonCSMStaticMeshVisibilityMap
Definition SceneRendering.h:141
uint32 bAlwaysUseCSM
Definition SceneRendering.h:134
Definition SceneRendering.h:2808
static bool RequiresMultiPass(int32 NumMSAASamples, EShaderPlatform ShaderPlatform)
Definition MobileShadingRenderer.cpp:2795
static void RenderTranslucency(FRHICommandList &RHICmdList, const FViewInfo &View, TArrayView< FViewInfo > FamilyViewInfos, ETranslucencyPass::Type InStandardTranslucencyPass, EMeshPass::Type InStandardTranslucencyMeshPass, const FInstanceCullingDrawParams *InTranslucencyInstanceCullingDrawParams)
Definition MobileTranslucentRendering.cpp:7
void RenderPrePass(FRHICommandList &RHICmdList, const FViewInfo &View, const FInstanceCullingDrawParams *InstanceCullingDrawParams)
Definition DepthRendering.cpp:686
void PrepareViewVisibilityLists()
Definition MobileShadingRenderer.cpp:383
FRDGTextureRef RenderAmbientOcclusion(FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures)
Definition PostProcessAmbientOcclusionMobile.cpp:1278
void RenderFog(FRHICommandList &RHICmdList, const FViewInfo &View)
Definition MobileFogRendering.cpp:124
void PostRenderBasePass(FRHICommandList &RHICmdList, FViewInfo &View)
Definition MobileShadingRenderer.cpp:2734
void RenderMobileDebugView(FRHICommandList &RHICmdList, const FViewInfo &View, const FInstanceCullingDrawParams *DebugViewModeInstanceCullingDrawParams)
Definition MobileShadingRenderer.cpp:2747
static bool ShouldRenderCustomDepth(const FViewInfo &View)
Definition MobileShadingRenderer.cpp:2789
void RenderMobileScreenSpaceShadows(FRDGBuilder &GraphBuilder, FIntPoint Extent, FRDGTextureRef ScreenShadowMaskTexture)
Definition ShadowRendering.cpp:2462
FDynamicShadowsTaskData * InitDynamicShadows(FRDGBuilder &GraphBuilder, FInstanceCullingManager &FInstanceCullingManager)
Definition ShadowSetupMobile.cpp:287
void RenderMobileBasePass(FRHICommandList &RHICmdList, const FViewInfo &View, const FInstanceCullingDrawParams *InstanceCullingDrawParams, const FInstanceCullingDrawParams *SkyPassInstanceCullingDrawParams)
Definition MobileBasePassRendering.cpp:536
void RenderMobileLocalLightsBuffer(FRDGBuilder &GraphBuilder, FSceneTextures &SceneTextures, const FSortedLightSetSceneInfo &SortedLights)
Definition MobileLocalLightsBuffer.cpp:204
void RenderHZB(FRHICommandListImmediate &RHICmdList, const TRefCountPtr< IPooledRenderTarget > &SceneDepthZ)
Definition MobileShadingRenderer.cpp:2984
bool HasStereoMotionVectorRenderTargets(const FSceneTextures &SceneTextures)
Definition MobileShadingRenderer.cpp:1715
void RenderDeferredMultiPass(FRDGBuilder &GraphBuilder, FSceneTextures &SceneTextures, const FSortedLightSetSceneInfo &SortedLightSet, FMobileBasePassTextures &BasePassTextures, FInstanceCullingManager &InstanceCullingManager)
Definition MobileShadingRenderer.cpp:2395
void UpdateDirectionalLightUniformBuffers(FRDGBuilder &GraphBuilder, const FViewInfo &View)
Definition MobileShadingRenderer.cpp:2841
void RenderFullDepthPrepass(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, FSceneTextures &SceneTextures, FInstanceCullingManager &InstanceCullingManager, bool bIsSceneCaptureRenderPass=false)
Definition MobileShadingRenderer.cpp:790
void RenderDecals(FRHICommandList &RHICmdList, FViewInfo &View, const FInstanceCullingDrawParams *InstanceCullingDrawParams)
Definition MobileDecalRendering.cpp:47
virtual bool ShouldRenderPrePass() const override
Definition DepthRendering.cpp:680
void PreTonemapMSAA(FRHICommandList &RHICmdList, const FMinimalSceneTextures &SceneTextures)
Definition MobileShadingRenderer.cpp:2911
void RenderStereoMotionVectors(FRDGBuilder &GraphBuilder, FViewInfo &View, const FSceneTextures &SceneTextures, FInstanceCullingManager &InstanceCullingManager)
Definition MobileShadingRenderer.cpp:1649
void InitViews(FRDGBuilder &GraphBuilder, FSceneTexturesConfig &SceneTexturesConfig, FInstanceCullingManager &InstanceCullingManager, FVirtualTextureUpdater *VirtualTextureUpdater, FInitViewTaskDatas &TaskDatas)
Definition MobileShadingRenderer.cpp:461
bool ShouldRenderHZB(TArrayView< FViewInfo > InViews)
Definition MobileShadingRenderer.cpp:2954
void RenderForward(FRDGBuilder &GraphBuilder, FRDGTextureRef ViewFamilyTexture, FSceneTextures &SceneTextures, FMobileBasePassTextures &BasePassTextures, FInstanceCullingManager &InstanceCullingManager)
Definition MobileShadingRenderer.cpp:1780
void RenderMaskedPrePass(FRHICommandList &RHICmdList, const FViewInfo &View, const FInstanceCullingDrawParams *DepthPassInstanceCullingDrawParams)
Definition MobileShadingRenderer.cpp:912
virtual bool ShouldRenderVelocities() const override
Definition VelocityRendering.cpp:431
FRDGTextureRef RenderMobileShadowProjections(FRDGBuilder &GraphBuilder, FIntPoint Extent, bool bIsMobileMultiView)
Definition ShadowRendering.cpp:2495
void SetupMobileBasePassAfterShadowInit(FExclusiveDepthStencil::Type BasePassDepthStencilAccess, TArrayView< FViewCommands > ViewCommandsPerView, FInstanceCullingManager &InstanceCullingManager)
Definition MobileShadingRenderer.cpp:401
void RenderDBuffer(FRDGBuilder &GraphBuilder, FSceneTextures &SceneTextures, FDBufferTextures &DBufferTextures, FInstanceCullingManager &InstanceCullingManager)
Definition MobileDecalRendering.cpp:145
FRenderTargetBindingSlots InitRenderTargetBindings_Deferred(FSceneTextures &SceneTextures, FColorTargets &ColorTargets)
Definition MobileShadingRenderer.cpp:2248
virtual void RenderHitProxies(FRDGBuilder &GraphBuilder, const FSceneRenderUpdateInputs *SceneUpdateInputs) override
Definition SceneHitProxyRendering.cpp:549
void RenderOcclusion(FRHICommandList &RHICmdList, FViewInfo &View, const struct FViewOcclusionQueries &ViewOcclusionQueries)
Definition SceneOcclusion.cpp:1552
void RenderDeferredSinglePass(FRDGBuilder &GraphBuilder, FSceneTextures &SceneTextures, const FSortedLightSetSceneInfo &SortedLightSet, FMobileBasePassTextures &BasePassTextures, FInstanceCullingManager &InstanceCullingManager)
Definition MobileShadingRenderer.cpp:2265
void BuildCSMVisibilityState(FLightSceneInfo *LightSceneInfo)
Definition ShadowSetupMobile.cpp:405
void RenderModulatedShadowProjections(FRHICommandList &RHICmdList, int32 ViewIndex, const FViewInfo &View)
Definition ShadowRendering.cpp:2410
FColorTargets GetColorTargets_Deferred(FSceneTextures &SceneTextures)
Definition MobileShadingRenderer.cpp:2216
void UpdateSkyReflectionUniformBuffer(FRHICommandListBase &RHICmdList)
Definition MobileShadingRenderer.cpp:2862
void RenderCustomRenderPassBasePass(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, FRDGTextureRef ViewFamilyTexture, FSceneTextures &SceneTextures, FInstanceCullingManager &InstanceCullingManager, bool bIncludeTranslucent)
Definition MobileShadingRenderer.cpp:920
void RenderVelocityPass(FRHICommandList &RHICmdList, const FViewInfo &View, const FInstanceCullingDrawParams *InstanceCullingDrawParams)
Definition VelocityRendering.cpp:738
int32 ComputeNumOcclusionQueriesToBatch() const
Definition MobileShadingRenderer.cpp:2770
void RenderMobileEditorPrimitives(FRHICommandList &RHICmdList, const FViewInfo &View, const FMeshPassProcessorRenderState &DrawRenderState, const FInstanceCullingDrawParams *InstanceCullingDrawParams)
Definition MobileBasePassRendering.cpp:564
virtual bool AllowSimpleLights() const override
Definition MobileShadingRenderer.cpp:3049
void RenderForwardMultiPass(FRDGBuilder &GraphBuilder, class FMobileRenderPassParameters *PassParameters, struct FRenderViewContext &ViewContext, FSceneTextures &SceneTextures, FInstanceCullingManager &InstanceCullingManager, struct FViewOcclusionQueries *ViewOcclusionQueries)
Definition MobileShadingRenderer.cpp:2007
FRenderTargetBindingSlots InitRenderTargetBindings_Forward(FRDGTextureRef ViewFamilyTexture, FSceneTextures &SceneTextures)
Definition MobileShadingRenderer.cpp:1724
void RenderForwardSinglePass(FRDGBuilder &GraphBuilder, class FMobileRenderPassParameters *PassParameters, struct FRenderViewContext &ViewContext, FSceneTextures &SceneTextures, FInstanceCullingManager &InstanceCullingManager, struct FViewOcclusionQueries *ViewOcclusionQueries)
Definition MobileShadingRenderer.cpp:1868
Definition UnrealType.h:3087
Definition SceneRendering.h:341
@ OccludedPrimitiveQueryBatchSize
Definition SceneRendering.h:345
int32 GetNumBatchOcclusionQueries() const
Definition SceneRendering.h:364
~FOcclusionQueryBatcher()
Definition SceneOcclusion.cpp:460
bool HasBatches(void) const
Definition SceneRendering.h:354
FRHIRenderQuery * BatchPrimitive(const FVector &BoundsOrigin, const FVector &BoundsBoxExtent, FGlobalDynamicVertexBuffer &DynamicVertexBuffer)
Definition SceneOcclusion.cpp:502
@ MaxBufferedOcclusionFrames
Definition ScenePrivateBase.h:25
Definition MeshDrawCommands.h:114
Definition PlanarReflectionSceneProxy.h:88
Definition PrimitiveSceneInfo.h:266
int32 GetIndex() const
Definition PrimitiveSceneInfo.h:451
Definition PrimitiveSceneProxy.h:296
Definition ShadowRendering.h:279
Definition SceneManagement.h:1005
Definition RenderGraphResources.h:1426
Definition RenderGraphResources.h:1452
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphUtils.h:1272
Definition RenderGraphPass.h:217
Definition RenderGraphResources.h:1196
Definition RenderGraphResources.h:571
Definition RHICommandList.h:455
Definition RHICommandList.h:4626
Definition RHICommandList.h:3819
void BeginRenderPass(const FRHIRenderPassInfo &InInfo, const TCHAR *Name)
Definition RHICommandList.h:4259
void SetStaticUniformBuffers(const FUniformBufferStaticBindings &UniformBuffers)
Definition RHICommandList.h:2795
Definition RHIResources.h:3755
Definition RHIResources.h:2444
Definition PipelineStateCache.cpp:1285
Definition RenderResource.h:37
Definition RendererModule.h:33
Definition SceneExtensions.h:268
void Begin(FSceneRendererBase &InSceneRenderer, const FEngineShowFlags &EngineShowFlags, bool bInValidateCallbacks)
Definition SceneExtensions.cpp:116
Definition SceneRenderBuilder.cpp:327
Definition SceneRendering.h:2023
FSceneRendererBase(FScene &InScene)
Definition SceneRendering.h:2029
void InitSceneExtensionsRenderers(const FEngineShowFlags &EngineShowFlags, bool bValidateCallbacks=false)
Definition SceneRendering.h:2045
virtual FDeferredShadingSceneRenderer * GetDeferredShadingSceneRenderer()
Definition SceneRendering.h:2067
FScene * GetScene() final override
Definition SceneRendering.h:2036
static FSceneRendererBase * GetActiveInstance(FRDGBuilder &GraphBuilder)
Definition SceneRendering.cpp:2636
FSceneUniformBuffer & GetSceneUniforms() final override
Definition SceneRendering.h:2038
const FSceneUniformBuffer & GetSceneUniforms() const final override
Definition SceneRendering.h:2037
TRDGUniformBufferRef< FSceneUniformParameters > GetSceneUniformBufferRef(FRDGBuilder &GraphBuilder) override final
Definition SceneRendering.h:2040
const FSceneExtensionsRenderers & GetSceneExtensionsRenderers() const
Definition SceneRendering.h:2050
static void SetActiveInstance(FRDGBuilder &GraphBuilder, FSceneRendererBase *SceneRenderer)
Definition SceneRendering.cpp:2631
TArray< FViewInfo > Views
Definition SceneRendering.h:2053
virtual FViewFamilyInfo * GetViewFamily()
Definition SceneRendering.h:2059
FSceneExtensionsRenderers & GetSceneExtensionsRenderers()
Definition SceneRendering.h:2049
FSceneRendererBase()
Definition SceneRendering.h:2028
FScene * Scene
Definition SceneRendering.h:2026
Definition SceneRendering.h:2080
void EnumerateLinkedViews(LambdaType &&Lambda, const FSceneView *ViewToSkip=nullptr)
Definition SceneRendering.h:2123
FSceneRenderer * Head
Definition SceneRendering.h:2115
void RenderDistanceFieldAOScreenGrid(FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const FViewInfo &View, const FDistanceFieldCulledObjectBufferParameters &CulledObjectBufferParameters, FRDGBufferRef ObjectTilesIndirectArguments, const FTileIntersectionParameters &TileIntersectionParameters, const FDistanceFieldAOParameters &Parameters, FRDGTextureRef DistanceFieldNormal, FRDGTextureRef &OutDynamicBentNormalAO)
Definition DistanceFieldScreenGridLighting.cpp:300
bool CheckForProjectedShadows(const FLightSceneInfo *LightSceneInfo) const
Definition ShadowRendering.cpp:2039
FComputeLightGridOutput ComputeLightGrid(FRDGBuilder &GraphBuilder, bool bCullLightsToGrid, const FSortedLightSetSceneInfo &SortedLightSet, TArray< FForwardLightUniformParameters *, TInlineAllocator< 2 > > &PerViewForwardLightUniformParameters)
Definition LightGridInjection.cpp:816
void RenderDistanceFieldLighting(FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const class FDistanceFieldAOParameters &Parameters, TArray< FRDGTextureRef > &OutDynamicBentNormalAOTextures, bool bModulateToSceneColor, bool bVisualizeAmbientOcclusion, bool bModulateToScreenSpaceAO=false)
Definition DistanceFieldAmbientOcclusion.cpp:885
virtual FViewFamilyInfo * GetViewFamily() override
Definition SceneRendering.h:2200
bool DoOcclusionQueries() const
Definition SceneVisibility.cpp:405
virtual bool ShouldRenderPrePass() const
Definition SceneRendering.h:2206
void PostVisibilityFrameSetup(FILCUpdatePrimTaskData *&OutILCTaskData)
Definition SceneVisibility.cpp:5802
static FIntPoint GetDesiredInternalBufferSize(const FSceneViewFamily &ViewFamily)
Definition SceneRendering.cpp:3144
TRefCountPtr< FProjectedShadowInfo > GetCachedPreshadow(const FLightPrimitiveInteraction *InParentInteraction, const FProjectedShadowInitializer &Initializer, const FBoxSphereBounds &Bounds, uint32 InResolutionX)
Definition ShadowSetup.cpp:3091
void RenderLightFunctionForVolumetricFog(FRDGBuilder &GraphBuilder, FViewInfo &View, const FSceneTextures &SceneTextures, FIntVector VolumetricFogGridSize, float VolumetricFogMaxDistance, FLightSceneInfo *DirectionalLightSceneInfo, FMatrix44f &OutLightFunctionTranslatedWorldToShadow, FRDGTexture *&OutLightFunctionTexture)
Definition VolumetricFogLightFunction.cpp:114
void SetupInteractionShadows(FDynamicShadowsTaskData &TaskData, FLightPrimitiveInteraction *Interaction, FVisibleLightInfo &VisibleLightInfo, bool bStaticSceneOnly, const TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &ViewDependentWholeSceneShadows, TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &PreShadows)
Definition ShadowSetup.cpp:3230
void RenderSkyAtmosphere(FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures)
Definition SkyAtmosphereRendering.cpp:2059
void FlushCrossGPUFences(FRDGBuilder &GraphBuilder)
Definition SceneRendering.cpp:3822
void FinishGatherShadowPrimitives(FDynamicShadowsTaskData *TaskData)
Definition ShadowSetup.cpp:5398
TArray< FCustomRenderPassInfo > CustomRenderPassInfos
Definition SceneRendering.h:2105
void BeginAsyncDistanceFieldShadowProjections(FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures, const FDynamicShadowsTaskData *TaskData) const
Definition ShadowRendering.cpp:2267
void AllocateOnePassPointLightDepthTargets(FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > WholeScenePointShadows)
Definition ShadowSetup.cpp:6038
void RenderVelocities(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, EVelocityPass VelocityPass, bool bForceVelocity, bool bBindRenderTarget=true)
Definition VelocityRendering.cpp:520
static void DestroySplitScreenDebugViewFamilies(TConstArrayView< const FSceneViewFamily * > ViewFamilies)
DECLARE_MULTICAST_DELEGATE_OneParam(FSceneOnScreenMessagesDelegate, FScreenMessageWriter &)
TArray< FVisibleLightInfo, SceneRenderingAllocator > VisibleLightInfos
Definition SceneRendering.h:2162
void DrawDebugShadowFrustum(FViewInfo &View, FProjectedShadowInfo &ProjectedShadowInfo)
Definition ShadowSetup.cpp:4604
bool bDumpMeshDrawCommandInstancingStats
Definition SceneRendering.h:2405
TArray< FParallelMeshDrawCommandPass *, SceneRenderingAllocator > DispatchedShadowDepthPasses
Definition SceneRendering.h:2166
ERHIFeatureLevel::Type FeatureLevel
Definition SceneRendering.h:2185
static void GetLightNameForDrawEvent(const FLightSceneProxy *LightProxy, FString &LightNameWithLevel)
Definition LightRendering.cpp:1205
void RenderSkyAtmosphereEditorNotifications(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, FRDGTextureRef SceneColorTexture) const
Definition SkyAtmosphereRendering.cpp:2177
void FilterDynamicShadows(FDynamicShadowsTaskData &TaskData)
Definition ShadowSetup.cpp:6413
void RenderShadowDepthMaps(FRDGBuilder &GraphBuilder, FDynamicShadowsTaskData *DynamicShadowsTaskData, FInstanceCullingManager &InstanceCullingManager, FRDGExternalAccessQueue &ExternalAccessQueue)
Definition ShadowDepthRendering.cpp:1678
static bool ShouldRenderSkyAtmosphereEditorNotifications(TArrayView< FViewInfo > Views)
Definition SkyAtmosphereRendering.cpp:2160
FORCEINLINE FSceneTexturesConfig & GetActiveSceneTexturesConfig()
Definition SceneRendering.h:2359
bool CheckForLightFunction(const FLightSceneInfo *LightSceneInfo) const
Definition LightFunctionRendering.cpp:241
bool IsHeadLink() const
Definition SceneRendering.h:2120
FORCEINLINE const FSceneTextures & GetActiveSceneTextures() const
Definition SceneRendering.h:2361
IVisibilityTaskData * OnRenderBegin(FRDGBuilder &GraphBuilder, const FSceneRenderUpdateInputs *SceneUpdateInputs)
Definition SceneRendering.cpp:3913
FSortedShadowMaps SortedShadowsForShadowDepthPass
Definition SceneRendering.h:2168
void AllocateCSMDepthTargets(FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > WholeSceneDirectionalShadows, TArray< FSortedShadowMapAtlas, SceneRenderingAllocator > &OutAtlases)
Definition ShadowSetup.cpp:5977
static TGlobalResource< FGlobalDynamicReadBuffer > DynamicReadBufferForRayTracing
Definition SceneRendering.h:2370
void PreVisibilityFrameSetup(FRDGBuilder &GraphBuilder)
Definition SceneVisibility.cpp:4935
bool RenderCapsuleDirectShadows(FRDGBuilder &GraphBuilder, const FLightSceneInfo &LightSceneInfo, FRDGTextureRef ScreenShadowMaskTexture, TArrayView< const FProjectedShadowInfo *const > CapsuleShadows, bool bProjectingForForwardShading) const
Definition CapsuleShadowRendering.cpp:460
FORCEINLINE FSceneTextures & GetActiveSceneTextures()
Definition SceneRendering.h:2358
FDepthPassInfo DepthPass
Definition SceneRendering.h:2083
FIntPoint FamilySize
Definition SceneRendering.h:2381
void FinishInitDynamicShadows(FRDGBuilder &GraphBuilder, FDynamicShadowsTaskData *TaskData)
Definition ShadowSetup.cpp:6686
FSceneOnScreenMessagesDelegate OnGetOnScreenMessages
Definition SceneRendering.h:2365
void RenderSkyAtmosphereInternal(FRDGBuilder &GraphBuilder, const FSceneTextureShaderParameters &SceneTextures, FSkyAtmosphereRenderContext &SkyRenderContext)
Definition SkyAtmosphereRendering.cpp:1861
FSceneRenderer * Next
Definition SceneRendering.h:2116
virtual bool AnyViewHasGIMethodSupportingDFAO() const
Definition SceneRendering.h:2353
void RenderVolumetricCloudsInternal(FRDGBuilder &GraphBuilder, FCloudRenderContext &CloudRC, FInstanceCullingManager &InstanceCullingManager, const FIntPoint &CloudViewportSize)
Definition VolumetricCloudRendering.cpp:2451
void UpdatePreshadowCache()
Definition ShadowSetup.cpp:3140
static TGlobalResource< FGlobalDynamicReadBuffer > DynamicReadBufferForShadows
Definition SceneRendering.h:2371
static ISceneViewFamilyScreenPercentage * ForkScreenPercentageInterface(const ISceneViewFamilyScreenPercentage *ScreenPercentageInterface, FSceneViewFamily &ForkedViewFamily)
Definition SceneRendering.h:2263
static void PreallocateCrossGPUFences(TConstArrayView< FSceneRenderer * > SceneRenderers)
Definition SceneRendering.cpp:3648
void InitProjectedShadowVisibility(FDynamicShadowsTaskData &TaskData)
Definition ShadowSetup.cpp:4437
void InitFogConstants()
Definition FogRendering.cpp:222
FDynamicShadowsTaskData * BeginInitDynamicShadows(FRDGBuilder &GraphBuilder, bool bRunningEarly, IVisibilityTaskData *VisibilityTaskData, FInstanceCullingManager &InstanceCullingManager)
Definition ShadowSetup.cpp:6671
bool RenderCustomDepthPass(FRDGBuilder &GraphBuilder, FCustomDepthTextures &CustomDepthTextures, const FSceneTextureShaderParameters &SceneTextures, TConstArrayView< Nanite::FRasterResults > PrimaryNaniteRasterResults, TConstArrayView< Nanite::FPackedView > PrimaryNaniteViews)
Definition CustomDepthRendering.cpp:179
virtual void RenderHitProxies(FRDGBuilder &GraphBuilder, const FSceneRenderUpdateInputs *SceneUpdateInputs)
Definition SceneRendering.h:2204
bool ShouldRenderTranslucency() const
Definition TranslucentRendering.cpp:843
void AllocateCachedShadowDepthTargets(FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > CachedShadows)
Definition ShadowSetup.cpp:5948
virtual bool ShouldRenderVelocities() const
Definition SceneRendering.h:2205
void UpdatePrimitiveIndirectLightingCacheBuffers(FRHICommandListBase &RHICmdList)
Definition SceneRendering.cpp:4824
void PrepareViewRectsForRendering()
Definition SceneRendering.cpp:3245
TConstStridedView< FSceneView > GetSceneViews() const
Definition SceneRendering.h:2367
void RenderLocalLightsForVolumetricFog(FRDGBuilder &GraphBuilder, FViewInfo &View, int32 ViewIndex, bool bUseTemporalReprojection, const struct FVolumetricFogIntegrationParameterData &IntegrationData, const FExponentialHeightFogSceneInfo &FogInfo, FIntVector VolumetricFogGridSize, FVector GridZParams, const FRDGTextureDesc &VolumeDesc, FRDGTextureRef ConservativeDepthTexture, TConstArrayView< const FLightSceneInfo * > LightsToInject, TConstArrayView< const FLightSceneInfo * > RayTracedLightsToInject, FRDGTexture *&OutLocalShadowedLightScattering)
Definition VolumetricFog.cpp:770
FViewFamilyInfo ViewFamily
Definition SceneRendering.h:2089
void RenderShadowDepthMapAtlases(FRDGBuilder &GraphBuilder)
Definition ShadowDepthRendering.cpp:1552
virtual UE::Renderer::Private::IShadowInvalidatingInstances * GetShadowInvalidatingInstancesInterface(const FSceneView *SceneView) override
Definition SceneRendering.cpp:4873
void RenderSkyAtmosphereLookUpTables(FRDGBuilder &GraphBuilder, class FSkyAtmospherePendingRDGResources &PendingRDGResources)
Definition SkyAtmosphereRendering.cpp:1381
void CheckShadowDepthRenderCompleted() const
Definition SceneRendering.h:2653
void RenderMeshDistanceFieldVisualization(FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures)
Definition DistanceFieldVisualization.cpp:105
static void GatherSimpleLights(const FSceneViewFamily &ViewFamily, const TArray< FViewInfo > &Views, FSimpleLightArray &SimpleLights)
Definition LightRendering.cpp:1179
static FIntPoint QuantizeViewRectMin(const FIntPoint &ViewRectMin)
Definition SceneRendering.cpp:3130
void InitSkyAtmosphereForViews(FRHICommandListImmediate &RHICmdList, FRDGBuilder &GraphBuilder)
Definition SkyAtmosphereRendering.cpp:1178
void SetupMeshPass(FViewInfo &View, FExclusiveDepthStencil::Type BasePassDepthStencilAccess, FViewCommands &ViewCommands, FInstanceCullingManager &InstanceCullingManager)
Definition SceneRendering.cpp:4705
void OnRenderFinish(FRDGBuilder &GraphBuilder, FRDGTextureRef ViewFamilyTexture)
Definition SceneRendering.cpp:4133
static void SetStereoViewport(FRHICommandList &RHICmdList, const FViewInfo &View, float ViewportScale=1.0f)
Definition SceneRendering.cpp:5826
void RenderShadowProjections(FRDGBuilder &GraphBuilder, FRDGTextureRef OutputTexture, const FMinimalSceneTextures &SceneTextures, const FLightSceneProxy *LightSceneProxy, TArrayView< const FProjectedShadowInfo *const > Shadows, bool bSubPixelShadow, bool bProjectingForForwardShading)
Definition ShadowRendering.cpp:2082
void WaitOcclusionTests(FRHICommandListImmediate &RHICmdList)
Definition SceneOcclusion.cpp:1593
FORCEINLINE const FSceneTexturesConfig & GetActiveSceneTexturesConfig() const
Definition SceneRendering.h:2362
void SetupSceneReflectionCaptureBuffer(FRHICommandListImmediate &RHICmdList)
Definition SceneVisibility.cpp:5960
virtual void ComputeLightVisibility()
Definition SceneVisibility.cpp:5605
void AddViewDependentWholeSceneShadowsForView(TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &ShadowInfos, TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &ShadowInfosThatNeedCulling, FVisibleLightInfo &VisibleLightInfo, FLightSceneInfo &LightSceneInfo, int64 CachedShadowMapsSize, uint32 &NumCSMCachesUpdatedThisFrame)
Definition ShadowSetup.cpp:5471
ERendererOutput
Definition SceneRendering.h:2410
void AllocateAtlasedShadowDepthTargets(FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > Shadows, TArray< FSortedShadowMapAtlas, SceneRenderingAllocator > &OutAtlases)
Definition ShadowSetup.cpp:5795
bool bGPUMasksComputed
Definition SceneRendering.h:2188
virtual bool IsLumenGIEnabled(const FViewInfo &View) const
Definition SceneRendering.h:2352
FComputeLightGridOutput PrepareForwardLightData(FRDGBuilder &GraphBuilder, bool bCullLightsToGrid, const FSortedLightSetSceneInfo &SortedLightSet)
Definition LightGridInjection.cpp:1500
LightFunctionAtlas::FLightFunctionAtlas LightFunctionAtlas
Definition SceneRendering.h:2172
void BeginGatherShadowPrimitives(FDynamicShadowsTaskData *TaskData, IVisibilityTaskData *VisibilityTaskData)
Definition ShadowSetup.cpp:5315
virtual bool IsLumenEnabled(const FViewInfo &View) const
Definition SceneRendering.h:2351
bool RenderVolumetricCloud(FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures, bool bSkipVolumetricRenderTarget, bool bSkipPerPixelTracing, FRDGTextureRef HalfResolutionDepthCheckerboardMinMaxTexture, FRDGTextureRef QuarterResolutionDepthMinMaxTexture, bool bAsyncCompute, FInstanceCullingManager &InstanceCullingManager)
Definition VolumetricCloudRendering.cpp:2690
void RenderCapsuleShadowsForMovableSkylight(FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureRef &BentNormalOutput) const
Definition CapsuleShadowRendering.cpp:1205
FDynamicShadowsTaskData * InitDynamicShadows(FRDGBuilder &GraphBuilder, FInstanceCullingManager &InstanceCullingManager)
Definition ShadowSetup.cpp:6766
static FGlobalBoundShaderState OcclusionTestBoundShaderState
Definition SceneRendering.h:2239
TArray< FViewInfo * > AllViews
Definition SceneRendering.h:2108
TArray< FString, SceneRenderingAllocator > UsedWholeScenePointLightNames
Definition SceneRendering.h:2182
void CreateWholeSceneProjectedShadow(FDynamicShadowsTaskData &TaskData, FLightSceneInfo *LightSceneInfo, int64 CachedShadowMapsSize, uint32 &NumPointShadowCachesUpdatedThisFrame, uint32 &NumSpotShadowCachesUpdatedThisFrame)
Definition ShadowSetup.cpp:4125
void SetupVolumetricFog()
Definition VolumetricFog.cpp:1350
virtual ~FSceneRenderer()
Definition SceneRendering.cpp:3899
static TGlobalResource< FGlobalDynamicReadBuffer > DynamicReadBufferForInitViews
Definition SceneRendering.h:2369
virtual bool AllowSimpleLights() const
Definition LightRendering.cpp:1251
void FlushCrossGPUTransfers(FRDGBuilder &GraphBuilder)
Definition SceneRendering.cpp:3776
bool ShouldDumpMeshDrawCommandInstancingStats() const
Definition SceneRendering.h:2236
ERendererOutput GetRendererOutput() const
Definition SceneRendering.cpp:3229
void InitVolumetricCloudsForViews(FRDGBuilder &GraphBuilder, bool bShouldRenderVolumetricCloud, FInstanceCullingManager &InstanceCullingManager)
Definition VolumetricCloudRendering.cpp:1680
void GatherShadowDynamicMeshElements(FDynamicShadowsTaskData &TaskData)
Definition ShadowSetup.cpp:4644
static int32 GetRefractionQuality(const FSceneViewFamily &ViewFamily)
Definition DistortionRendering.cpp:99
UE::FMutex DispatchedShadowDepthPassesMutex
Definition SceneRendering.h:2165
static bool ShouldCompositeEditorPrimitives(const FViewInfo &View)
Definition SceneRendering.cpp:4791
void CreateDynamicShadows(FDynamicShadowsTaskData &TaskData)
Definition ShadowSetup.cpp:6162
bool ShouldRenderVolumetricFog() const
Definition VolumetricFog.cpp:1345
struct FSceneRenderer::@1802 Link
static FOcclusionSubmittedFenceState OcclusionSubmittedFence[FOcclusionQueryHelpers::MaxBufferedOcclusionFrames]
Definition SceneRendering.h:2234
void GatherReflectionCaptureLightMeshElements()
Definition SceneVisibility.cpp:5694
bool bUsedPrecomputedVisibility
Definition SceneRendering.h:2178
void VoxelizeFogVolumePrimitives(FRDGBuilder &GraphBuilder, const FViewInfo &View, const FVolumetricFogIntegrationParameterData &IntegrationData, FIntVector VolumetricFogGridSize, FVector GridZParams, float VolumetricFogDistance, bool bVoxelizeEmissive)
Definition VolumetricFogVoxelization.cpp:693
FGPUSceneDynamicContext & GetGPUSceneDynamicContext()
Definition SceneRendering.h:2283
void GatherAndSortLights(FSortedLightSetSceneInfo &OutSortedLights, bool bShadowedLightsInClustered=false)
Definition LightRendering.cpp:1301
void DoCrossGPUTransfers(FRDGBuilder &GraphBuilder, FRDGTextureRef ViewFamilyTexture, TArrayView< FViewInfo > InViews, bool bCrossGPUTransferFencesDefer, FRHIGPUMask RenderTargetGPUMask, class FCrossGPUTransfersDeferred *TransfersDeferred)
Definition SceneRendering.cpp:3704
void ComputeVolumetricFog(FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures)
Definition VolumetricFog.cpp:1387
void FenceOcclusionTests(FRDGBuilder &GraphBuilder)
Definition SceneOcclusion.cpp:1566
void EnumerateLinkedViewFamilies(LambdaType &&Lambda, const FSceneViewFamily *ViewFamilyToSkip=nullptr)
Definition SceneRendering.h:2141
DynamicRenderScaling::TMap< float > DynamicResolutionFractions
Definition SceneRendering.h:2158
virtual bool ShouldRenderNanite() const
Definition SceneRendering.h:2207
bool bHasRequestedToggleFreeze
Definition SceneRendering.h:2175
FVirtualShadowMapArray VirtualShadowMapArray
Definition SceneRendering.h:2170
void FinishDynamicShadowMeshPassSetup(FRDGBuilder &GraphBuilder, FDynamicShadowsTaskData *TaskData)
Definition ShadowSetup.cpp:6704
void AllocateMobileCSMAndSpotLightShadowDepthTargets(FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > MobileCSMAndSpotLightShadows)
Definition ShadowSetup.cpp:6774
void AllocateTranslucentShadowDepthTargets(FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > TranslucentShadows)
Definition ShadowSetup.cpp:6096
FRHIGPUMask RenderTargetGPUMask
Definition SceneRendering.h:2189
bool IsRenderingStereo() const
Definition SceneRendering.h:2373
void CreatePerObjectProjectedShadow(FDynamicShadowsTaskData &TaskData, FLightPrimitiveInteraction *Interaction, bool bCreateTranslucentObjectShadow, bool bCreateInsetObjectShadow, const TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &ViewDependentWholeSceneShadows, TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &OutPreShadows)
Definition ShadowSetup.cpp:3294
class FFXSystemInterface * FXSystem
Definition SceneRendering.h:2403
FGPUSceneDynamicContext GPUSceneDynamicContext
Definition SceneRendering.h:2651
DynamicRenderScaling::TMap< float > DynamicResolutionUpperBounds
Definition SceneRendering.h:2159
EShaderPlatform ShaderPlatform
Definition SceneRendering.h:2186
void RenderPlanarReflection(class FPlanarReflectionSceneProxy *ReflectionSceneProxy)
void AllocateShadowDepthTargets(FDynamicShadowsTaskData &TaskData)
Definition ShadowSetup.cpp:5716
FSceneRenderingBulkObjectAllocator Allocator
Definition SceneRendering.h:2086
static void CreateSplitScreenDebugViewFamilies(const FSceneViewFamily &InFamily, TArray< const FSceneViewFamily * > &OutViewFamilies, TArray< const FSceneViewFamily *, TFixedAllocator< 2 > > &OutFamiliesStorage)
static FIntPoint ApplyResolutionFraction(const FSceneViewFamily &ViewFamily, const FIntPoint &UnscaledViewSize, float ResolutionFraction)
Definition SceneRendering.cpp:3116
void UpdateLightFunctionAtlasTaskFunction()
Definition LightRendering.cpp:1285
virtual void Render(FRDGBuilder &GraphBuilder, const FSceneRenderUpdateInputs *SceneUpdateInputs)=0
Definition SceneUniformBuffer.h:137
RENDERER_API TRDGUniformBufferRef< FSceneUniformParameters > GetBuffer(FRDGBuilder &GraphBuilder)
Definition SceneUniformBuffer.cpp:190
Definition SceneView.h:2212
TArray< const FSceneView * > Views
Definition SceneView.h:2308
bool bMultiGPUForkAndJoin
Definition SceneView.h:2348
ISceneRenderer * GetSceneRenderer() const
Definition SceneView.h:2601
friend class FViewFamilyInfo
Definition SceneView.h:2628
bool bIsViewFamilyInfo
Definition SceneView.h:2365
Definition ScenePrivate.h:746
Definition SceneView.h:1425
const FSceneViewFamily * Family
Definition SceneView.h:1427
bool bIsSinglePassStereo
Definition SceneView.h:1684
bool bIsInstancedStereoEnabled
Definition SceneView.h:1671
FViewMatrices ViewMatrices
Definition SceneView.h:1464
ENGINE_API const FSceneView * GetInstancedSceneView() const
Definition SceneView.cpp:2911
EStereoscopicPass StereoPass
Definition SceneView.h:1492
ENGINE_API FRDGPooledBuffer * GetEyeAdaptationBuffer() const
Definition SceneView.cpp:2872
const FIntRect UnscaledViewRect
Definition SceneView.h:1456
Definition ScenePrivate.h:2875
Definition SceneRendering.h:1841
bool IsValid() const
Definition SceneRendering.h:1847
TArray< TRefCountPtr< IPooledRenderTarget >, TInlineAllocator< 4 > > ColorTargets
Definition SceneRendering.h:1844
FIntPoint GetSize() const
Definition SceneRendering.h:1859
int64 ComputeMemorySize() const
Definition SceneRendering.h:1876
void Release()
Definition SceneRendering.h:1893
TRefCountPtr< IPooledRenderTarget > DepthTarget
Definition SceneRendering.h:1845
Definition ShadowSceneRenderer.h:47
Definition SceneManagement.h:1313
Definition PrimitiveSceneProxy.h:172
Definition SkyAtmosphereRendering.h:182
Definition CoreGlobals.h:672
Definition Texture2DResource.h:16
Definition RHIContext.h:49
Definition SceneVisibility.h:16
Definition SceneRendering.h:1970
FSceneTextures * GetSceneTexturesChecked()
Definition SceneRendering.h:1994
const FSceneTextures * GetSceneTexturesChecked() const
Definition SceneRendering.h:1999
virtual ~FViewFamilyInfo()
Definition SceneRendering.cpp:2598
bool bIsSceneTextureSizedCapture
Definition SceneRendering.h:1979
FSceneTextures & GetSceneTextures()
Definition SceneRendering.h:1982
FSceneTexturesConfig SceneTexturesConfig
Definition SceneRendering.h:1976
const FSceneTextures & GetSceneTextures() const
Definition SceneRendering.h:1988
Definition SceneRendering.h:1132
TStaticArray< FTranslucencyVolumeMarkData, TVC_MAX > TranslucencyVolumeMarkData
Definition SceneRendering.h:1433
FPreviousViewInfo & PrevViewInfo
Definition SceneRendering.h:1407
TUniquePtr< FViewUniformShaderParameters > CachedViewUniformShaderParameters
Definition SceneRendering.h:1146
void InitRHIResources(uint32 OverrideNumMSAASamples=0)
Definition SceneRendering.cpp:2211
FOcclusionQueryBatcher GroupedOcclusionQueries
Definition SceneRendering.h:1419
int32 SceneRendererPrimaryViewId
Definition SceneRendering.h:1604
TArray< FPrimitiveViewRelevance, SceneRenderingAllocator > PrimitiveViewRelevanceMap
Definition SceneRendering.h:1173
FIntPoint HZBMipmap0Size
Definition SceneRendering.h:1467
FSceneBitArray PotentiallyFadingPrimitiveMap
Definition SceneRendering.h:1158
FGlobalShaderMap * ShaderMap
Definition SceneRendering.h:1474
int32 NumSphereReflectionCaptures
Definition SceneRendering.h:1436
bool bLightGridHasTexturedLights
Definition SceneRendering.h:1459
FOcclusionQueryBatcher IndividualOcclusionQueries
Definition SceneRendering.h:1418
TArray< FRHIUniformBuffer *, SceneRenderingAllocator > PrimitiveFadeUniformBuffers
Definition SceneRendering.h:1161
bool bHasDistortionPrimitives
Definition SceneRendering.h:1212
FLensDistortionLUT LensDistortionLUT
Definition SceneRendering.h:1497
void Cleanup()
Definition SceneRendering.cpp:1044
void SetupDefaultGlobalDistanceFieldUniformBufferParameters(FViewUniformShaderParameters &ViewUniformShaderParameters) const
Definition GlobalDistanceField.cpp:1321
const FSceneTexturesConfig & GetSceneTexturesConfig() const
Definition SceneRendering.h:3077
bool bUseComputePasses
Definition SceneRendering.h:1477
ICustomVisibilityQuery * CustomVisibilityQuery
Definition SceneRendering.h:1486
FSceneBitArray PrimitiveVisibilityMap
Definition SceneRendering.h:1149
FTranslucentSelfShadowUniformBufferMap TranslucentSelfShadowUniformBufferMap
Definition SceneRendering.h:1204
float DirectionalInscatteringExponent
Definition SceneRendering.h:1328
uint32 bIgnoreExistingQueries
Definition SceneRendering.h:1361
float GetLastAverageLocalExposure() const
Definition SceneRendering.cpp:2432
uint32 bTranslucentSurfaceLighting
Definition SceneRendering.h:1367
FRDGTextureRef VolumetricCloudSkyAO
Definition SceneRendering.h:1448
FLocalFogVolumeViewData & LocalFogVolumeViewData
Definition SceneRendering.h:1302
TOptional< FMobileLightShaftInfo > MobileLightShaft
Definition SceneRendering.h:1472
TRefCountPtr< IPooledRenderTarget > SkyAtmosphereCameraAerialPerspectiveVolume
Definition SceneRendering.h:1442
bool IsLastInFamily() const
Definition SceneRendering.h:1740
FSimpleElementCollector & EditorSimpleElementCollector
Definition SceneRendering.h:1274
bool UpdatePrimitiveFadingState(const FPrimitiveSceneInfo *PrimitiveSceneInfo, bool bFadingIn)
Definition SceneVisibility.cpp:1124
bool RequiresDebugMaterials() const
Definition SceneRendering.cpp:2478
bool ShouldRenderView() const
Definition SceneRendering.h:1751
FIntRect GetFamilyViewRect() const
Definition SceneRendering.cpp:2271
FIntRect ViewRectWithSecondaryViews
Definition SceneRendering.h:1615
int32 NumVisibleDynamicPrimitives
Definition SceneRendering.h:1191
UE::FMutex DirtyIndirectLightingCacheBufferPrimitivesMutex
Definition SceneRendering.h:1201
TUniformBufferRef< FViewUniformShaderParameters > VolumetricRenderTargetViewUniformBuffer
Definition SceneRendering.h:1449
FVector3f VolumetricFogAlbedo
Definition SceneRendering.h:1319
TArray< FMeshBatchAndRelevance, SceneRenderingAllocator > DynamicMeshElements
Definition SceneRendering.h:1255
TArray< FMeshPassMask, SceneRenderingAllocator > DynamicMeshElementsPassRelevance
Definition SceneRendering.h:1265
uint32 bPrevTransformsReset
Definition SceneRendering.h:1359
float FogEndDistance
Definition SceneRendering.h:1315
FTextureRHIRef PrimitiveSceneDataTextureOverrideRHI
Definition SceneRendering.h:1495
uint16 ShadingModelMaskInView
Definition SceneRendering.h:1404
RENDERER_API FIntPoint GetSecondaryViewRectSize() const
Definition SceneRendering.cpp:1263
FVolumetricFogViewResources VolumetricFogResources
Definition SceneRendering.h:1456
RENDERER_API FRDGTextureRef GetVolumetricCloudTexture(FRDGBuilder &GraphBuilder) const
Definition SceneRendering.cpp:2361
void SetupVolumetricFogUniformBufferParameters(FViewUniformShaderParameters &ViewUniformShaderParameters) const
Definition VolumetricFog.cpp:1314
TArray< FSkyMeshBatch, SceneRenderingAllocator > SkyMeshBatches
Definition SceneRendering.h:1228
float OneOverNumPossiblePixels
Definition SceneRendering.h:1470
uint32 bUsesLightingChannels
Definition SceneRendering.h:1366
const uint8 * PrecomputedVisibilityData
Definition SceneRendering.h:1416
uint32 bCustomDepthStencilValid
Definition SceneRendering.h:1368
TIndirectArray< FMeshBatch, SceneRenderingAllocator > TopViewMeshElements
Definition SceneRendering.h:1249
FLumenTranslucencyGIVolume & GetOwnLumenTranslucencyGIVolume()
Definition SceneRendering.h:1518
FViewInfo * TemporalSourceView
Definition SceneRendering.h:1339
const FMegaLightsVolume & GetMegaLightsVolume() const
Definition SceneRendering.h:1523
FVector4f ExponentialFogParameters2
Definition SceneRendering.h:1310
FSceneBitArray StaticMeshFadeOutDitheredLODMap
Definition SceneRendering.h:1179
bool IsFirstInFamily() const
Definition SceneRendering.h:1735
TIndirectArray< FMeshBatch, SceneRenderingAllocator > ViewMeshElements
Definition SceneRendering.h:1246
TArray< FVolumetricMeshBatch, SceneRenderingAllocator > HeterogeneousVolumesMeshBatches
Definition SceneRendering.h:1225
FVector2D TemporalJitterPixels
Definition SceneRendering.h:1348
const FViewInfo * GetInstancedView() const
Definition SceneRendering.h:1787
void SwapEyeAdaptationBuffers() const
Definition SceneRendering.cpp:2384
FVector TranslucencyLightingVolumeMin[TVC_MAX]
Definition SceneRendering.h:1334
FRDGTextureRef HeterogeneousVolumeBeerShadowMap
Definition SceneRendering.h:1463
FViewShaderParameters GetShaderParameters() const
Definition SceneRendering.cpp:2316
float GetLastEyeAdaptationExposure() const
Definition SceneRendering.cpp:2423
FRDGTextureRef HZB
Definition SceneRendering.h:1422
TArray< FInt32Vector2, SceneRenderingAllocator > DynamicMeshElementRanges
Definition SceneRendering.h:1258
FSceneBitArray PrimitiveDefinitelyUnoccludedMap
Definition SceneRendering.h:1155
FRDGTextureRef VolumetricCloudShadowRenderTarget[NUM_ATMOSPHERE_LIGHTS]
Definition SceneRendering.h:1451
void SetupGlobalDistanceFieldUniformBufferParameters(FViewUniformShaderParameters &ViewUniformShaderParameters) const
Definition GlobalDistanceField.cpp:1352
uint32 bSceneCaptureMainViewJitter
Definition SceneRendering.h:1398
const FSceneTextures * GetSceneTexturesChecked() const
Definition SceneRendering.h:3088
FVector InscatteringLightDirection
Definition SceneRendering.h:1330
FLinearColor DirectionalInscatteringColor
Definition SceneRendering.h:1331
TArray< FMeshBatchAndRelevance, SceneRenderingAllocator > RayTracedDynamicMeshElements
Definition SceneRendering.h:1268
FHairStrandsViewData & HairStrandsViewData
Definition SceneRendering.h:1304
FBatchedElements & TopBatchedViewElements
Definition SceneRendering.h:1243
TArray< FPrimitiveSceneInfo *, SceneRenderingAllocator > VisibleDynamicPrimitivesWithSimpleLights
Definition SceneRendering.h:1188
const FTexture2DResource * FilmGrainTexture
Definition SceneRendering.h:1489
void SetupUniformBufferParameters(FBox *OutTranslucentCascadeBoundsArray, int32 NumTranslucentCascades, FViewUniformShaderParameters &ViewUniformShaderParameters) const
Definition SceneRendering.h:1668
uint32 bUsesMotionVectorWorldOffset
Definition SceneRendering.h:1373
TRefCountPtr< IPooledRenderTarget > SkyAtmosphereCameraAerialPerspectiveVolumeRayOnly
Definition SceneRendering.h:1444
FSceneBitArray StaticMeshFadeInDitheredLODMap
Definition SceneRendering.h:1182
float TranslucencyVolumeVoxelSize[TVC_MAX]
Definition SceneRendering.h:1335
RENDERER_API FIntRect GetSecondaryViewCropRect() const
Definition SceneRendering.cpp:1270
FVector4f SkyAtmosphereAmbientContributionColorScale
Definition SceneRendering.h:1314
ERenderTargetLoadAction DecayLoadAction(ERenderTargetLoadAction RequestedLoadAction) const
Definition SceneRendering.h:1745
FVector4f ExponentialFogParameters
Definition SceneRendering.h:1309
int32 TemporalJitterSequenceLength
Definition SceneRendering.h:1342
FLumenFrontLayerTranslucency LumenFrontLayerTranslucency
Definition SceneRendering.h:1506
void UpdatePreExposure()
Definition PostProcessEyeAdaptation.cpp:1383
FParallelMeshDrawCommandPass * CreateMeshPass(EMeshPass::Type MeshPass)
Definition SceneRendering.cpp:1038
FInt32Range GetDynamicMeshElementRange(uint32 PrimitiveIndex) const
Definition SceneRendering.cpp:2345
FBatchedElements & BatchedViewElements
Definition SceneRendering.h:1240
int32 TemporalJitterIndex
Definition SceneRendering.h:1345
bool bAllowStencilDither
Definition SceneRendering.h:1480
FSceneBitArray PrimitiveRayTracingVisibilityMap
Definition SceneRendering.h:1152
FSceneRenderingBulkObjectAllocator Allocator
Definition SceneRendering.h:1134
float VolumetricFogNearFadeInDistanceInv
Definition SceneRendering.h:1318
TArray< FPrimitiveInstanceRange, SceneRenderingAllocator > NaniteCustomDepthInstances
Definition SceneRendering.h:1219
const FSceneTextures & GetSceneTextures() const
Definition SceneRendering.h:3083
void SetValidTonemappingLUT() const
Definition SceneRendering.cpp:2450
TRefCountPtr< IPooledRenderTarget > VolumetricCloudShadowExtractedRenderTarget[NUM_ATMOSPHERE_LIGHTS]
Definition SceneRendering.h:1453
RENDERER_API const FViewInfo * GetPrimaryView() const
Definition SceneRendering.cpp:2326
bool IsDistanceCulled_AnyThread(float DistanceSquared, float MinDrawDistance, float InMaxDrawDistance, const FPrimitiveSceneInfo *PrimitiveSceneInfo, bool &bOutMayBeFading, bool &bOutFadingIn) const
Definition SceneVisibility.cpp:485
void UpdateEyeAdaptationLastExposureFromBuffer() const
Definition SceneRendering.cpp:2392
virtual RENDERER_API ~FViewInfo()
Definition SceneRendering.cpp:1055
uint32 bHasTranslucentViewMeshElements
Definition SceneRendering.h:1357
FShaderPrintData ShaderPrintData
Definition SceneRendering.h:1499
TStaticArray< FParallelMeshDrawCommandPass *, EMeshPass::Num > ParallelMeshDrawCommandPasses
Definition SceneRendering.h:1283
bool IsDistanceCulled(float DistanceSquared, float MinDrawDistance, float InMaxDrawDistance, const FPrimitiveSceneInfo *PrimitiveSceneInfo)
Definition SceneVisibility.cpp:471
void EnqueueEyeAdaptationExposureBufferReadback(FRDGBuilder &GraphBuilder) const
Definition SceneRendering.cpp:2400
IPooledRenderTarget * GetTonemappingLUT() const
Definition SceneRendering.cpp:2458
TRefCountPtr< IPooledRenderTarget > SkyAtmosphereCameraAerialPerspectiveVolumeMieOnly
Definition SceneRendering.h:1443
FSceneBitArray PrimitiveFadeUniformBufferMap
Definition SceneRendering.h:1164
FVector2f SinCosInscatteringColorCubemapRotation
Definition SceneRendering.h:1321
FVector4f ExponentialFogParameters3
Definition SceneRendering.h:1313
TArray< FMeshBatchAndRelevance, SceneRenderingAllocator > HairCardsMeshElements
Definition SceneRendering.h:1262
const FLumenTranslucencyGIVolume & GetLumenTranslucencyGIVolume() const
Definition SceneRendering.h:1508
void CreateViewUniformBuffers(const FViewUniformShaderParameters &Params)
Definition SceneRendering.cpp:2244
ENGINE_API FRDGPooledBuffer * GetEyeAdaptationBuffer() const
Definition SceneView.cpp:2872
float FurthestReflectionCaptureDistance
Definition SceneRendering.h:1437
FMegaLightsVolume & GetOwnMegaLightsVolume()
Definition SceneRendering.h:1528
TArray< FMeshBatchAndRelevance, SceneRenderingAllocator > HairStrandsMeshElements
Definition SceneRendering.h:1261
FVector3f ExponentialFogColor
Definition SceneRendering.h:1311
FRDGTextureRef HeterogeneousVolumeRadiance
Definition SceneRendering.h:1461
TArray< FLODMask, SceneRenderingAllocator > PrimitivesLODMask
Definition SceneRendering.h:1185
uint32 bHasSingleLayerWaterMaterial
Definition SceneRendering.h:1386
TArray< FSortedTrianglesMeshBatch, SceneRenderingAllocator > SortedTrianglesMeshBatches
Definition SceneRendering.h:1231
uint32 bFogOnlyOnRenderedOpaque
Definition SceneRendering.h:1376
TArray< FVisibleLightViewInfo, SceneRenderingAllocator > VisibleLightInfos
Definition SceneRendering.h:1234
FLumenSceneData * ViewLumenSceneData
Definition SceneRendering.h:1533
FSceneUniformBuffer & GetSceneUniforms() const
Definition SceneRendering.h:3093
TRefCountPtr< IPooledRenderTarget > SkyAtmosphereViewLutTexture
Definition SceneRendering.h:1445
FSceneBitArray StaticMeshVisibilityMap
Definition SceneRendering.h:1176
FIntRect GetUnscaledFamilyViewRect() const
Definition SceneRendering.cpp:2286
FMobileCSMVisibilityInfo MobileCSMVisibilityInfo
Definition SceneRendering.h:1298
float AutoBeforeDOFTranslucencyBoundary
Definition SceneRendering.h:1401
TUniformBufferRef< FMobileReflectionCaptureShaderData > MobileReflectionCaptureUniformBuffer
Definition SceneRendering.h:1439
FForwardLightingViewResources ForwardLightingResources
Definition SceneRendering.h:1455
TArray< FVolumetricMeshBatch, SceneRenderingAllocator > VolumetricMeshBatches
Definition SceneRendering.h:1222
FIntRect ViewRect
Definition SceneRendering.h:1137
int32 NumBoxReflectionCaptures
Definition SceneRendering.h:1435
TArray< FPrimitiveSceneInfo *, SceneRenderingAllocator > DirtyIndirectLightingCacheBufferPrimitives
Definition SceneRendering.h:1200
TArray< FMeshBatchAndRelevance, SceneRenderingAllocator > DynamicEditorMeshElements
Definition SceneRendering.h:1270
uint32 bHasNoVisiblePrimitive
Definition SceneRendering.h:1354
uint32 bStatePrevViewInfoIsReadOnly
Definition SceneRendering.h:1351
const FTexture2DResource * FFTBloomKernelTexture
Definition SceneRendering.h:1488
TArray< FPrimitiveSceneInfo *, SceneRenderingAllocator > IndirectShadowPrimitives
Definition SceneRendering.h:1491
FGPUScenePrimitiveCollector DynamicPrimitiveCollector
Definition SceneRendering.h:1813
uint32 bDisableQuerySubmissions
Definition SceneRendering.h:1363
float MaterialMaxEmissiveValue
Definition SceneRendering.h:1483
uint32 bSceneHasSkyMaterial
Definition SceneRendering.h:1382
bool bLightGridHasRectLights
Definition SceneRendering.h:1458
int32 NumVisibleStaticMeshElements
Definition SceneRendering.h:1410
UTexture * FogInscatteringColorCubemap
Definition SceneRendering.h:1323
void BeginRenderView() const
Definition SceneRendering.cpp:2305
float FogMaxOpacity
Definition SceneRendering.h:1312
uint32 bUsesCustomStencil
Definition SceneRendering.h:1370
FVector TranslucencyLightingVolumeSize[TVC_MAX]
Definition SceneRendering.h:1336
FUniformBufferRHIRef DitherFadeInUniformBuffer
Definition SceneRendering.h:1167
FVector FogInscatteringTextureParameters
Definition SceneRendering.h:1324
int32 NumVisibleDynamicMeshElements[EMeshPass::Num]
Definition SceneRendering.h:1197
float VolumetricFogStartDistance
Definition SceneRendering.h:1317
FSubstrateViewData & SubstrateViewData
Definition SceneRendering.h:1300
TSet< uint32, DefaultKeyFuncs< uint32 >, SceneRenderingSetAllocator > CustomDepthStencilValues
Definition SceneRendering.h:1216
FSimpleElementCollector & SimpleElementCollector
Definition SceneRendering.h:1272
FSceneViewState * ViewState
Definition SceneRendering.h:1143
FGPUScenePrimitiveCollector RayTracingDynamicPrimitiveCollector
Definition SceneRendering.h:1814
float GetLastAverageSceneLuminance() const
Definition SceneRendering.cpp:2441
float PreExposure
Definition SceneRendering.h:1413
uint32 bUsesSecondStageDepthPass
Definition SceneRendering.h:1392
FTranslucenyPrimCount TranslucentPrimCount
Definition SceneRendering.h:1210
float DirectionalInscatteringStartDistance
Definition SceneRendering.h:1329
bool RequiresSecondaryUpscale() const
Definition SceneRendering.h:1651
FViewInfo * CreateSnapshot() const
Definition SceneRendering.cpp:2340
TUniformBufferRef< FReflectionCaptureShaderData > ReflectionCaptureUniformBuffer
Definition SceneRendering.h:1438
FRDGTextureRef ClosestHZB
Definition SceneRendering.h:1423
FPersistentViewId PersistentViewId
Definition SceneRendering.h:1608
bool bUseDirectionalInscattering
Definition SceneRendering.h:1327
TArray< FDynamicPrimitiveResource *, SceneRenderingAllocator > DynamicResources
Definition SceneRendering.h:1252
RENDERER_API void SetupUniformBufferParameters(const FViewMatrices &InViewMatrices, const FViewMatrices &InPrevViewMatrices, FBox *OutTranslucentCascadeBoundsArray, int32 NumTranslucentCascades, FViewUniformShaderParameters &ViewUniformShaderParameters) const
Definition SceneRendering.cpp:1294
bool ShouldUpdateEyeAdaptationBuffer() const
Definition SceneRendering.cpp:2408
uint32 bUsesGlobalDistanceField
Definition SceneRendering.h:1365
bool bEnableVolumetricFog
Definition SceneRendering.h:1316
LightFunctionAtlas::FLightFunctionAtlasViewData LightFunctionAtlasViewData
Definition SceneRendering.h:1306
bool bHasCustomDepthPrimitives
Definition SceneRendering.h:1213
FGlobalDistanceFieldInfo & GlobalDistanceFieldInfo
Definition SceneRendering.h:1207
uint32 bUsesCustomDepth
Definition SceneRendering.h:1369
const FAtmosphereUniformShaderParameters * SkyAtmosphereUniformShaderParameters
Definition SceneRendering.h:1446
FUniformBufferRHIRef DitherFadeOutUniformBuffer
Definition SceneRendering.h:1170
FRDGTextureRef HeterogeneousVolumeHoldout
Definition SceneRendering.h:1462
int32 NumVisibleDynamicEditorPrimitives
Definition SceneRendering.h:1194
float VolumetricFogPhaseG
Definition SceneRendering.h:1320
TArray< const FLightSceneProxy *, SceneRenderingAllocator > VisibleReflectionCaptureLights
Definition SceneRendering.h:1237
Definition VirtualShadowMapArray.h:291
Definition VirtualShadowMapClipmap.h:42
Definition VirtualTextureSystem.h:86
Definition SceneVisibilityPrivate.h:503
Definition SceneRendering.h:211
TSharedPtr< FVirtualShadowMapClipmap > FindVirtualShadowMapShadowClipmapForView(const FViewInfo *View) const
Definition SceneRendering.cpp:561
bool ContainsOnlyVirtualShadowMaps() const
Definition SceneRendering.cpp:607
TArray< FProjectedShadowInfo *, SceneRenderingAllocator > OccludedPerObjectShadows
Definition SceneRendering.h:225
TArray< TSharedPtr< FVirtualShadowMapClipmap >, SceneRenderingAllocator > VirtualShadowMapClipmaps
Definition SceneRendering.h:227
TArray< FProjectedShadowInfo *, SceneRenderingAllocator > ShadowsToProject
Definition SceneRendering.h:218
int32 GetVirtualShadowMapId(const FViewInfo *View) const
Definition SceneRendering.cpp:581
TArray< FProjectedShadowInfo *, SceneRenderingAllocator > AllProjectedShadows
Definition SceneRendering.h:215
TArray< TRefCountPtr< FProjectedShadowInfo >, SceneRenderingAllocator > ProjectedPreShadows
Definition SceneRendering.h:222
TArray< FProjectedShadowInfo *, SceneRenderingAllocator > CapsuleShadowsToProject
Definition SceneRendering.h:219
Definition SceneRendering.h:185
TArray< FPrimitiveViewRelevance, SceneRenderingAllocator > ProjectedShadowViewRelevanceMap
Definition SceneRendering.h:192
uint32 bInDrawRange
Definition SceneRendering.h:197
uint32 bInViewFrustum
Definition SceneRendering.h:195
FSceneBitArray ProjectedShadowVisibilityMap
Definition SceneRendering.h:189
FVisibleLightViewInfo()
Definition SceneRendering.h:203
FMobileCSMSubjectPrimitives MobileCSMSubjectPrimitives
Definition SceneRendering.h:200
Definition SceneRendering.h:565
FVolumeUpdateRegion()
Definition SceneRendering.h:568
EVolumeUpdateType UpdateType
Definition SceneRendering.h:578
FIntVector CellsSize
Definition SceneRendering.h:576
FBox Bounds
Definition SceneRendering.h:573
Definition SceneRendering.h:755
void Release()
Definition SceneRendering.h:764
TUniformBufferRef< FVolumetricFogGlobalData > VolumetricFogGlobalData
Definition SceneRendering.h:757
FVolumetricFogViewResources()
Definition SceneRendering.h:761
FRDGTextureRef IntegratedLightScatteringTexture
Definition SceneRendering.h:759
Definition RendererInterface.h:572
Definition SceneRendererInterface.h:47
virtual const FSceneUniformBuffer & GetSceneUniforms() const =0
Definition SceneView.h:2164
virtual ISceneViewFamilyScreenPercentage * Fork_GameThread(const class FSceneViewFamily &ViewFamily) const =0
static bool IsASecondaryPass(EStereoscopicPass Pass)
Definition StereoRendering.h:109
static bool IsStereoEyePass(EStereoscopicPass Pass)
Definition StereoRendering.h:83
static ENGINE_API bool IsASecondaryView(const FSceneView &View)
Definition StereoRendering.cpp:27
Definition SceneVisibility.h:33
Definition Renderer.Build.cs:6
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
constexpr ElementType & Last(SizeType IndexFromTheEnd=0) const
Definition ArrayView.h:410
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType & Last(SizeType IndexFromTheEnd=0) UE_LIFETIMEBOUND
Definition Array.h:1263
UE_REWRITE bool IsEmpty() const
Definition Array.h:1133
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition IConsoleManager.h:1792
UE_FORCEINLINE_HINT void Init(bool bValue, int32 InNumBits)
Definition BitArray.h:828
Definition ChunkedArray.h:56
T * Create(TArgs &&... Args)
Definition ConcurrentLinearAllocator.h:864
Definition ContainerAllocationPolicies.h:1276
Definition RenderResource.h:543
Definition IndirectArray.h:20
Definition ConcurrentLinearAllocator.h:624
Definition UnrealString.h.inl:34
Definition RenderGraphResources.h:251
Definition RefCounting.h:454
UE_FORCEINLINE_HINT bool IsValid() const
Definition RefCounting.h:594
UE_FORCEINLINE_HINT void SafeRelease()
Definition RefCounting.h:599
Definition ContainerAllocationPolicies.h:1662
Definition SharedPointer.h:692
Definition ContainerAllocationPolicies.h:894
Definition StaticArray.h:26
Definition ShaderParameterMacros.h:136
Definition UniquePtr.h:107
Definition Mutex.h:18
Definition SceneRendererInterface.h:24
Definition Task.h:191
Definition Texture.h:1219
Type
Definition MeshPassProcessor.h:38
@ Num
Definition MeshPassProcessor.h:86
Type
Definition RHIFeatureLevel.h:20
Type
Definition TranslucentPassResource.h:13
@ TPT_MAX
Definition TranslucentPassResource.h:22
void Dispatch(FRHIComputeCommandList &RHICmdList, const TShaderRef< TShaderClass > &ComputeShader, const FShaderParametersMetadata *ParametersMetadata, const typename TShaderClass::FParameters &Parameters, FIntVector GroupCount)
Definition RenderGraphUtils.h:491
Definition MegaLights.cpp:871
Definition SkinnedMeshComponent.h:50
Definition PathTracingOutputInvalidateReason.h:6
Definition SceneManagement.h:73
ECullingMode
Definition RaytracingOptions.h:66
TTask< TInvokeResult_T< TaskBodyType > > Launch(const TCHAR *DebugName, TaskBodyType &&TaskBody, ETaskPriority Priority=ETaskPriority::Normal, EExtendedTaskPriority ExtendedPriority=EExtendedTaskPriority::None, ETaskFlags Flags=ETaskFlags::None)
Definition Task.h:266
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition VolumetricCloudRendering.h:123
Definition SceneRendering.h:2015
FRDGPassRef CompactLinksPass
Definition SceneRendering.h:2016
Definition CustomDepthRendering.h:23
Definition DBufferTextures.h:35
Definition DepthRendering.h:39
Definition ShadowSetup.cpp:1366
Definition ShowFlags.h:56
Definition SceneRendering.h:2970
ETextureCreateFlags EyeAdaptation
Definition SceneRendering.h:2991
ETextureCreateFlags DistanceFieldAODownsampledBentNormal
Definition SceneRendering.h:3002
ETextureCreateFlags GBufferE
Definition SceneRendering.h:2980
EBufferUsageFlags DistanceFieldAOScreenGridResources
Definition SceneRendering.h:3030
ETextureCreateFlags ScreenSpaceAO
Definition SceneRendering.h:3011
void Update()
Definition SceneRendering.cpp:706
EBufferUsageFlags ForwardLightingCullingResources
Definition SceneRendering.h:3031
ETextureCreateFlags GBufferB
Definition SceneRendering.h:2977
ETextureCreateFlags Tonemap
Definition SceneRendering.h:2997
ETextureCreateFlags DistanceFieldShadows
Definition SceneRendering.h:3003
ETextureCreateFlags MotionBlur
Definition SceneRendering.h:2996
ETextureCreateFlags HistogramReduce
Definition SceneRendering.h:2993
ETextureCreateFlags ShadowPointLight
Definition SceneRendering.h:3023
ETextureCreateFlags ShadowCSM
Definition SceneRendering.h:3025
ETextureCreateFlags GBufferD
Definition SceneRendering.h:2979
ETextureCreateFlags SSR
Definition SceneRendering.h:3012
ETextureCreateFlags ShadowPerObject
Definition SceneRendering.h:3024
ETextureCreateFlags DistanceFieldIrradiance
Definition SceneRendering.h:3004
ETextureCreateFlags DBufferB
Definition SceneRendering.h:3014
ETextureCreateFlags VolumetricFog
Definition SceneRendering.h:3008
void OnSceneRenderTargetsAllocated()
ETextureCreateFlags DBufferMask
Definition SceneRendering.h:3016
ETextureCreateFlags GBufferC
Definition SceneRendering.h:2978
ETextureCreateFlags ScreenSpaceShadowMask
Definition SceneRendering.h:3007
ETextureCreateFlags DistanceFieldAOConfidence
Definition SceneRendering.h:3005
ETextureCreateFlags SceneColor
Definition SceneRendering.h:2985
ETextureCreateFlags PostProcessMaterial
Definition SceneRendering.h:3020
ETextureCreateFlags VelocityMax
Definition SceneRendering.h:2995
ETextureCreateFlags DistanceFieldAOHistory
Definition SceneRendering.h:3000
ETextureCreateFlags Downsample
Definition SceneRendering.h:2990
EBufferUsageFlags DistanceFieldCulledObjectBuffers
Definition SceneRendering.h:3028
ETextureCreateFlags CustomDepth
Definition SceneRendering.h:3022
ETextureCreateFlags DBufferA
Definition SceneRendering.h:3013
ETextureCreateFlags Upscale
Definition SceneRendering.h:2998
ETextureCreateFlags DBufferC
Definition SceneRendering.h:3015
bool bDirty
Definition SceneRendering.h:3033
ETextureCreateFlags DOFSetup
Definition SceneRendering.h:3017
ETextureCreateFlags SceneDepth
Definition SceneRendering.h:2984
ETextureCreateFlags SeparateTranslucencyModulate
Definition SceneRendering.h:3010
ETextureCreateFlags Bloom
Definition SceneRendering.h:2986
ETextureCreateFlags Distortion
Definition SceneRendering.h:3006
ETextureCreateFlags CircleDOF
Definition SceneRendering.h:2988
ETextureCreateFlags SeparateTranslucency
Definition SceneRendering.h:3009
ETextureCreateFlags HZB
Definition SceneRendering.h:2983
ETextureCreateFlags DistanceFieldAOBentNormal
Definition SceneRendering.h:3001
ETextureCreateFlags GBufferVelocity
Definition SceneRendering.h:2982
ETextureCreateFlags VelocityFlat
Definition SceneRendering.h:2994
ETextureCreateFlags DOFPostfilter
Definition SceneRendering.h:3019
ETextureCreateFlags Histogram
Definition SceneRendering.h:2992
ETextureCreateFlags GBufferA
Definition SceneRendering.h:2976
void OnCVarUpdated()
ETextureCreateFlags BokehDOF
Definition SceneRendering.h:2987
ETextureCreateFlags DOFReduce
Definition SceneRendering.h:3018
ETextureCreateFlags CombineLUTs
Definition SceneRendering.h:2989
EBufferUsageFlags GlobalDistanceFieldCullGridBuffers
Definition SceneRendering.h:3032
ETextureCreateFlags GBufferF
Definition SceneRendering.h:2981
FFastVramConfig()
Definition SceneRendering.cpp:701
ETextureCreateFlags DistanceFieldNormal
Definition SceneRendering.h:2999
EBufferUsageFlags DistanceFieldTileIntersectionResources
Definition SceneRendering.h:3029
Definition SceneRendering.h:951
FIntRect ViewportRect
Definition SceneRendering.h:960
TRefCountPtr< IPooledRenderTarget > RT
Definition SceneRendering.h:954
void SafeRelease()
Definition SceneRendering.h:962
bool IsValid() const
Definition SceneRendering.h:967
FIntPoint ReferenceBufferSize
Definition SceneRendering.h:957
Definition ShadowSetup.cpp:5125
Definition StaticBoundShaderState.h:78
Definition GlobalRenderResources.h:195
Definition HairStrandsData.h:435
Definition ScenePrivate.h:2290
Definition LensDistortion.h:8
Definition Color.h:48
Definition LocalFogVolumeRendering.h:96
Definition MeshBatch.h:371
uint16 MeshIdInPrimitive
Definition MeshBatch.h:397
Definition MeshPassProcessor.h:2118
Definition SceneTextures.h:52
bool bIsSceneTexturesInitialized
Definition SceneTextures.h:60
Definition MobileBasePassRendering.h:38
Definition SceneRendering.h:2841
FDynamicShadowsTaskData * DynamicShadows
Definition SceneRendering.h:2847
IVisibilityTaskData * VisibilityTaskData
Definition SceneRendering.h:2846
FInitViewTaskDatas(IVisibilityTaskData *InVisibilityTaskData)
Definition SceneRendering.h:2842
Definition NaniteShared.h:936
Definition SceneRendering.h:302
FVector Center
Definition SceneRendering.h:303
FVector Extent
Definition SceneRendering.h:304
Definition SceneRendering.h:1961
FGraphEventRef Fence
Definition SceneRendering.h:1962
uint32 ViewStateUniqueID
Definition SceneRendering.h:1963
Definition SceneRendering.h:109
bool IsValid() const
Definition SceneRendering.h:110
Definition RendererInterface.h:81
FIntPoint Extent
Definition RendererInterface.h:420
Definition SceneRendering.h:975
TRefCountPtr< IPooledRenderTarget > GBufferC
Definition SceneRendering.h:991
TRefCountPtr< IPooledRenderTarget > CompressedOpaqueDepth
Definition SceneRendering.h:1009
TRefCountPtr< IPooledRenderTarget > CompressedOpaqueShadingModel
Definition SceneRendering.h:1012
FScreenSpaceDenoiserHistory WaterReflectionsHistory
Definition SceneRendering.h:1053
TRefCountPtr< IPooledRenderTarget > CompressedDepthViewNormal
Definition SceneRendering.h:1006
uint32 InstanceOcclusionQueryMask
Definition SceneRendering.h:1002
FTemporalAAHistory RoughRefractionHistory
Definition SceneRendering.h:1037
TRefCountPtr< IPooledRenderTarget > ScreenSpaceRayTracingInput
Definition SceneRendering.h:1015
FTemporalAAHistory TemporalAAHistory
Definition SceneRendering.h:1018
TMap< const ULightComponent *, TSharedPtr< FScreenSpaceDenoiserHistory > > ShadowHistories
Definition SceneRendering.h:1071
TRefCountPtr< IPooledRenderTarget > LuminanceHistory
Definition SceneRendering.h:1077
TRefCountPtr< IPooledRenderTarget > VisualizeMotionVectors
Definition SceneRendering.h:1086
TRefCountPtr< IPooledRenderTarget > GBufferB
Definition SceneRendering.h:990
FTemporalAAHistory HairHistory
Definition SceneRendering.h:1040
FScreenSpaceDenoiserHistory PolychromaticPenumbraHarmonicsHistory
Definition SceneRendering.h:1074
TRefCountPtr< IPooledRenderTarget > DistortingDisplacementTexture
Definition SceneRendering.h:997
FScreenSpaceDenoiserHistory DiffuseIndirectHistory
Definition SceneRendering.h:1062
FTSRHistory TSRHistory
Definition SceneRendering.h:1021
float SceneColorPreExposure
Definition SceneRendering.h:983
FTemporalAAHistory DOFSetupHistory
Definition SceneRendering.h:1030
TRefCountPtr< IPooledRenderTarget > GBufferA
Definition SceneRendering.h:989
FIntRect VisualizeMotionVectorsRect
Definition SceneRendering.h:1087
bool bUsesGlobalDistanceField
Definition SceneRendering.h:985
FIntRect LuminanceViewRectHistory
Definition SceneRendering.h:1080
TRefCountPtr< UE::Renderer::Private::ITemporalUpscaler::IHistory > ThirdPartyTemporalUpscalerHistory
Definition SceneRendering.h:1024
TRefCountPtr< IPooledRenderTarget > HZB
Definition SceneRendering.h:993
bool bIsVisualizeMotionVectorsDistorted
Definition SceneRendering.h:1088
FScreenSpaceDenoiserHistory ReflectionsHistory
Definition SceneRendering.h:1052
TRefCountPtr< IPooledRenderTarget > NaniteHZB
Definition SceneRendering.h:994
TRefCountPtr< IPooledRenderTarget > HalfResTemporalAAHistory
Definition SceneRendering.h:1027
FGTAOTAAHistory GTAOHistory
Definition SceneRendering.h:1059
FViewMatrices ViewMatrices
Definition SceneRendering.h:980
FTemporalAAHistory SSRHistory
Definition SceneRendering.h:1033
FTemporalAAHistory WaterSSRHistory
Definition SceneRendering.h:1034
FScreenSpaceDenoiserHistory SkyLightHistory
Definition SceneRendering.h:1065
TRefCountPtr< IPooledRenderTarget > MobileBloomSetup_EyeAdaptation
Definition SceneRendering.h:1083
FScreenSpaceDenoiserHistory AmbientOcclusionHistory
Definition SceneRendering.h:1056
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:170
TRefCountPtr< IPooledRenderTarget > DepthBuffer
Definition SceneRendering.h:988
FScreenSpaceDenoiserHistory ReflectedSkyLightHistory
Definition SceneRendering.h:1068
FTemporalAAHistory CustomSSRInput
Definition SceneRendering.h:1049
FIntRect ViewRect
Definition SceneRendering.h:977
Definition SceneRendering.h:1124
int32 InstanceSceneDataOffset
Definition SceneRendering.h:1126
int32 NumInstances
Definition SceneRendering.h:1127
int32 PrimitiveIndex
Definition SceneRendering.h:1125
Definition RenderGraphDefinitions.h:627
Definition RenderGraphUtils.h:288
Definition MultiGPU.h:33
Definition RHIResources.h:5248
Definition ShaderParameterMacros.h:770
Definition MobileShadingRenderer.cpp:277
Definition ResourceArray.h:31
Definition SceneRendering.h:117
static bool bEnableSceneCaptureLogging
Definition SceneRendering.h:118
Definition SceneRendering.h:2692
FFXSystemInterface * FXSystem
Definition SceneRendering.h:2734
TConstArrayView< FViewFamilyInfo * > ViewFamilies
Definition SceneRendering.h:2737
TConstArrayView< FViewInfo * > Views
Definition SceneRendering.h:2738
void ForEachView(LambdaType &&Lambda) const
Definition SceneRendering.h:2717
TConstArrayView< const FSceneView * > GetAsSceneViews() const
Definition SceneRendering.h:2693
TConstArrayView< FSceneRenderer * > Renderers
Definition SceneRendering.h:2736
EShaderPlatform ShaderPlatform
Definition SceneRendering.h:2731
FGlobalShaderMap * GlobalShaderMap
Definition SceneRendering.h:2735
ESceneRenderCommonShowFlags CommonShowFlags
Definition SceneRendering.h:2739
bool HasAnyShowFlags(LambdaType &&Lambda) const
Definition SceneRendering.h:2704
TConstArrayView< const FSceneViewFamily * > GetAsSceneViewFamilies() const
Definition SceneRendering.h:2698
FScene * Scene
Definition SceneRendering.h:2733
ERHIFeatureLevel::Type FeatureLevel
Definition SceneRendering.h:2732
Definition SceneRendering.h:2093
FViewFamilyInfo ViewFamily
Definition SceneRendering.h:2100
FCustomRenderPassBase * CustomRenderPass
Definition SceneRendering.h:2098
FNaniteShadingCommands NaniteBasePassShadingCommands
Definition SceneRendering.h:2103
TArray< FViewInfo > Views
Definition SceneRendering.h:2102
Definition SceneTexturesConfig.h:114
static const FSceneTexturesConfig & Get()
Definition SceneTexturesConfig.h:122
Definition SceneTextures.h:110
Definition SceneView.h:2224
Definition SceneView.h:180
Definition SingleLayerWaterRendering.h:32
Definition CanvasTypes.h:854
Definition SceneRendering.h:918
bool IsValid() const
Definition SceneRendering.h:939
TArray< FIntRect, TInlineAllocator< 1 > > Scissors
Definition SceneRendering.h:923
TRefCountPtr< IPooledRenderTarget > TileClassification
Definition SceneRendering.h:929
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:159
static constexpr int32 RTCount
Definition SceneRendering.h:920
TStaticArray< TRefCountPtr< IPooledRenderTarget >, RTCount > RT
Definition SceneRendering.h:926
void SafeRelease()
Definition SceneRendering.h:932
Definition ShaderPrintParameters.h:218
Definition SkyAtmosphereRendering.h:72
Definition SceneRendering.h:787
bool bVisibleInRealTimeSkyCapture
Definition SceneRendering.h:791
bool bVisibleInMainPass
Definition SceneRendering.h:790
const FPrimitiveSceneProxy * Proxy
Definition SceneRendering.h:789
const FMeshBatch * Mesh
Definition SceneRendering.h:788
Definition LightSceneInfo.h:146
Definition SceneRendering.h:1907
TArray< FProjectedShadowInfo *, SceneRenderingAllocator > Shadows
Definition SceneRendering.h:1909
FShadowMapRenderTargetsRefCounted RenderTargets
Definition SceneRendering.h:1908
Definition SceneRendering.h:1913
TArray< FSortedShadowMapAtlas, SceneRenderingAllocator > ShadowMapCubemaps
Definition SceneRendering.h:1917
FSortedShadowMapAtlas PreshadowCache
Definition SceneRendering.h:1919
void Release()
Definition SceneRendering.cpp:2505
TArray< FProjectedShadowInfo *, SceneRenderingAllocator > VirtualShadowMapShadows
Definition SceneRendering.h:1923
TArray< FSortedShadowMapAtlas, SceneRenderingAllocator > TranslucencyShadowMapAtlases
Definition SceneRendering.h:1921
TArray< FSortedShadowMapAtlas, SceneRenderingAllocator > CompleteShadowMapAtlases
Definition SceneRendering.h:1925
TArray< FSortedShadowMapAtlas, SceneRenderingAllocator > ShadowMapAtlases
Definition SceneRendering.h:1915
int64 ComputeMemorySize() const
Definition SceneRendering.h:1929
bool IsEmpty() const
Definition SceneRendering.h:1953
Definition SceneRendering.h:795
const FMeshBatch * Mesh
Definition SceneRendering.h:796
const FPrimitiveSceneProxy * Proxy
Definition SceneRendering.h:797
Definition Substrate.h:145
Definition SceneRendering.h:873
int32 FrameStorageCount
Definition SceneRendering.h:891
TArray< FViewMatrices > ViewMatrices
Definition SceneRendering.h:897
TArray< FIntRect > InputViewportRects
Definition SceneRendering.h:899
bool IsValid() const
Definition SceneRendering.h:908
TRefCountPtr< IPooledRenderTarget > ColorArray
Definition SceneRendering.h:875
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:135
TRefCountPtr< IPooledRenderTarget > GuideArray
Definition SceneRendering.h:879
int32 AccumulatedFrameCount
Definition SceneRendering.h:893
TRefCountPtr< IPooledRenderTarget > MetadataArray
Definition SceneRendering.h:876
TArray< float > SceneColorPreExposures
Definition SceneRendering.h:898
TArray< TRefCountPtr< IPooledRenderTarget > > DistortingDisplacementTextures
Definition SceneRendering.h:900
FIntRect InputViewportRect
Definition SceneRendering.h:884
uint32 FormatBit
Definition SceneRendering.h:888
TRefCountPtr< IPooledRenderTarget > MoireArray
Definition SceneRendering.h:880
int32 LastFrameRollingIndex
Definition SceneRendering.h:894
FIntRect OutputViewportRect
Definition SceneRendering.h:885
TRefCountPtr< IPooledRenderTarget > CoverageArray
Definition SceneRendering.h:881
void SafeRelease()
Definition SceneRendering.h:903
int32 FrameStoragePeriod
Definition SceneRendering.h:892
Definition SceneRendering.h:840
void SafeRelease()
Definition SceneRendering.h:858
FIntPoint ReferenceBufferSize
Definition SceneRendering.h:849
bool IsValid() const
Definition SceneRendering.h:863
TStaticArray< TRefCountPtr< IPooledRenderTarget >, kRenderTargetCount > RT
Definition SceneRendering.h:846
FIntRect ViewportRect
Definition SceneRendering.h:852
Definition SceneRendering.h:741
FVector4f MinMaxUvBound
Definition SceneRendering.h:745
bool bIsDefault
Definition SceneRendering.h:742
FIntRect RectBound
Definition SceneRendering.h:744
FRDGTextureRef Texture
Definition SceneRendering.h:743
Definition SceneRendering.h:246
bool UseSceneColorCopy(ETranslucencyPass::Type InPass) const
Definition SceneRendering.h:294
FTranslucenyPrimCount()
Definition SceneRendering.h:253
void Append(const FTranslucenyPrimCount &InSrc)
Definition SceneRendering.h:263
void Add(ETranslucencyPass::Type InPass, bool bUseSceneColorCopy)
Definition SceneRendering.h:273
int32 Num(ETranslucencyPass::Type InPass) const
Definition SceneRendering.h:279
int32 NumPrims() const
Definition SceneRendering.h:284
Definition SceneRendering.h:1426
FRDGTextureRef MarkTexture
Definition SceneRendering.h:1427
FRDGBufferRef VoxelData
Definition SceneRendering.h:1429
FRDGBufferRef VoxelIndirectArgs
Definition SceneRendering.h:1430
FRDGBufferRef VoxelAllocator
Definition SceneRendering.h:1428
Definition SceneView.h:317
Definition SceneOcclusion.h:22
Definition VolumetricFogShared.h:26
Definition SceneRendering.h:749
FTransientLightFunctionTextureAtlasTile AtlasTile
Definition SceneRendering.h:750
FMatrix44f LightFunctionTranslatedWorldToLightMatrix
Definition SceneRendering.h:751
Definition SceneRendering.h:771
FORCEINLINE bool operator==(const FVolumetricMeshBatch &rhs) const
Definition SceneRendering.h:780
const FMeshBatch * Mesh
Definition SceneRendering.h:772
const FPrimitiveSceneProxy * Proxy
Definition SceneRendering.h:773
FVolumetricMeshBatch(const FMeshBatch *M, const FPrimitiveSceneProxy *P)
Definition SceneRendering.h:775
Definition RendererInterface.h:494
virtual const FPooledRenderTargetDesc & GetDesc() const =0
virtual uint32 ComputeMemorySize() const =0
Definition LightFunctionAtlas.h:76
Definition LightFunctionAtlas.h:136
Definition Optional.h:131
Definition LightweightStats.h:416
Definition BoxSphereBounds.h:25
Definition IntPoint.h:25
IntPointType Size() const
Definition IntRect.h:449