UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ScenePrivate.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 ScenePrivate.h: Private scene manager definitions.
5=============================================================================*/
6
7#pragma once
8
9// Dependencies.
10
12#include "Misc/Guid.h"
13#include "Math/RandomStream.h"
14#include "Templates/PimplPtr.h"
16#include "RHI.h"
17#include "RenderResource.h"
18#include "UniformBuffer.h"
19#include "SceneInterface.h"
20#include "SceneView.h"
21#include "RendererInterface.h"
22#include "SceneUtils.h"
24#include "TextureLayout3d.h"
25#include "ScenePrivateBase.h"
26#include "RenderTargetPool.h"
27#include "PrimitiveSceneInfo.h"
28#include "LightSceneInfo.h"
29#include "DepthRendering.h"
31#include "TextureLayout.h"
32#include "SceneRendering.h"
33#include "LightMapRendering.h"
34#include "VelocityRendering.h"
35#include "VolumeRendering.h"
37#include "VisualizeTexture.h"
38#include "UnifiedBuffer.h"
42#if RHI_RAYTRACING
45#endif
46#include "Nanite/Nanite.h"
52#include "GPUScene.h"
53#include "DynamicBVH.h"
54#include "OIT/OIT.h"
56#include "Substrate/Substrate.h"
59#include "SpanAllocator.h"
60#include "GlobalDistanceField.h"
61#include "Algo/RemoveIf.h"
62#include "UObject/Package.h"
63#include "LightFunctionAtlas.h"
64#include "SceneExtensions.h"
67#include "RenderTransform.h"
68
70#define OCCLUSION_SLOP (1.0f)
71
74
75class AWorldSettings;
78class FScene;
79class UDecalComponent;
81class ULightComponent;
83class UPrimitiveComponent;
87class UStaticMesh;
88class UStaticMeshComponent;
89class UTextureCube;
95class FLumenSceneData;
102class FStaticMeshBatch;
103enum class EVTInvalidatePriority : uint8;
104enum class ERayTracingProxyType : uint8;
105namespace DiaphragmDOF
106{
107 class FDOFViewState;
108}
109
112{
113public:
116
120
124
127
130
136
141
144
147
150
151private:
158 bool bNeedsScanOnRead;
159
165 inline int32 ScanOldestNonStaleQueryIndex(uint32 FrameNumber, int32 NumBufferedFrames, int32 LagTolerance) const
166 {
169 for (int Index = 0; Index < NumBufferedFrames; ++Index)
170 {
171 const uint32 ThisFrameNumber = PendingOcclusionQueryFrames[Index];
172 const int32 LaggedFrames = FrameNumber - ThisFrameNumber;
173 // Queries older than LagTolerance are invalid. They may have already been reused and will give incorrect results if read
174 if (PendingOcclusionQuery[Index] && LaggedFrames <= LagTolerance && ThisFrameNumber < OldestFrame)
175 {
176 OldestFrame = ThisFrameNumber;
178 }
179 }
180 return OldestQueryIndex;
181 }
182
183public:
206
227
228 inline FRHIRenderQuery* GetQueryForReading(uint32 FrameNumber, int32 NumBufferedFrames, int32 LagTolerance, bool& bOutGrouped) const
229 {
230 const int32 OldestQueryIndex = bNeedsScanOnRead ? ScanOldestNonStaleQueryIndex(FrameNumber, NumBufferedFrames, LagTolerance)
231 : FOcclusionQueryHelpers::GetQueryLookupIndex(FrameNumber, NumBufferedFrames);
233 // Nenever read from queries are older than LagTolerance. They may have already been reused and will give incorrect results
235 {
236 bOutGrouped = false;
237 return nullptr;
238 }
241 }
242
243 inline void SetCurrentQuery(uint32 FrameNumber, FRHIRenderQuery* NewQuery, int32 NumBufferedFrames, bool bGrouped, bool bNeedsScan)
244 {
245 // Get the current occlusion query
246 const uint32 QueryIndex = FOcclusionQueryHelpers::GetQueryIssueIndex(FrameNumber, NumBufferedFrames);
250
251 bNeedsScanOnRead = bNeedsScan;
252 }
253
255 {
256 uint32 Result = 0;
257
259 {
260 if (!bGroupedQuery[Index])
261 {
262 Result = FMath::Max(Result, PendingOcclusionQueryFrames[Index]);
263 }
264 }
265
266 return Result;
267 }
268};
269
286
288{
289 return GetTypeHash(Key.PrimitiveId.PrimIDValue) ^ (GetTypeHash(Key.CustomIndex) >> 20);
290}
291
293{
294 return A.PrimitiveId == B.PrimitiveId && A.CustomIndex == B.CustomIndex;
295}
296
298struct FPrimitiveOcclusionHistoryKeyFuncs : BaseKeyFuncs<FPrimitiveOcclusionHistory,FPrimitiveOcclusionHistoryKey>
299{
301
303 {
304 return FPrimitiveOcclusionHistoryKey(Element);
305 }
306
308 {
309 return A == B;
310 }
311
313 {
314 return GetTypeHash(Key);
315 }
316};
317
319{
321 uint32 PendingOcclusionQueryFrames[FOcclusionQueryHelpers::MaxBufferedOcclusionFrames]; // not initialized...this is ok
322
323public:
324
325 inline void ReleaseStaleQueries(uint32 FrameNumber, int32 NumBufferedFrames)
326 {
327 for (uint32 DeltaFrame = NumBufferedFrames; DeltaFrame > 0; DeltaFrame--)
328 {
329 if (FrameNumber >= (DeltaFrame - 1))
330 {
331 uint32 TestFrame = FrameNumber - (DeltaFrame - 1);
333 if (PendingOcclusionQueryFrames[QueryIndex] != TestFrame)
334 {
335 PendingOcclusionQuery[QueryIndex].ReleaseQuery();
336 }
337 }
338 }
339 }
340 inline void ReleaseQuery(uint32 FrameNumber, int32 NumBufferedFrames)
341 {
342 const uint32 QueryIndex = FOcclusionQueryHelpers::GetQueryLookupIndex(FrameNumber, NumBufferedFrames);
343 PendingOcclusionQuery[QueryIndex].ReleaseQuery();
344 }
345
346 inline FRHIRenderQuery* GetPastQuery(uint32 FrameNumber, int32 NumBufferedFrames)
347 {
348 // Get the oldest occlusion query
349 const uint32 QueryIndex = FOcclusionQueryHelpers::GetQueryLookupIndex(FrameNumber, NumBufferedFrames);
350 if (PendingOcclusionQuery[QueryIndex].GetQuery() && PendingOcclusionQueryFrames[QueryIndex] == FrameNumber - uint32(NumBufferedFrames))
351 {
352 return PendingOcclusionQuery[QueryIndex].GetQuery();
353 }
354 return nullptr;
355 }
356
357 inline void SetCurrentQuery(uint32 FrameNumber, FRHIPooledRenderQuery&& NewQuery, int32 NumBufferedFrames)
358 {
359 // Get the current occlusion query
360 const uint32 QueryIndex = FOcclusionQueryHelpers::GetQueryIssueIndex(FrameNumber, NumBufferedFrames);
361 PendingOcclusionQuery[QueryIndex] = MoveTemp(NewQuery);
362 PendingOcclusionQueryFrames[QueryIndex] = FrameNumber;
363 }
364};
365
369class FGlobalDistanceCullFadeUniformBuffer : public TUniformBuffer< FDistanceCullFadeUniformShaderParameters >
370{
371public:
373 {
375 Parameters.FadeTimeScaleBias.X = 0.0f;
376 Parameters.FadeTimeScaleBias.Y = 1.0f;
378 }
379};
380
383
387class FGlobalDitherUniformBuffer : public TUniformBuffer< FDitherUniformShaderParameters >
388{
389public:
391 {
393 Parameters.LODFactor = 0.0f;
395 }
396};
397
400
434
440
469
472
474{
475 enum {NumSamples = 3571};
476public:
477
480 : CurrentSample(0)
481 {
483 for (int32 Index = 0; Index < NumSamples; Index++)
484 {
485 Samples[Index] = RandomStream.GetFraction();
486 }
487 Samples[0] = 0.0f; // we want to make sure we have at least a few zeros
488 Samples[NumSamples/3] = 0.0f; // we want to make sure we have at least a few zeros
489 Samples[(NumSamples*2)/3] = 0.0f; // we want to make sure we have at least a few zeros
490 }
491
493 inline float GetFraction()
494 {
495 uint32 Current = CurrentSample.fetch_add(1);
496
497 if (Current >= NumSamples)
498 {
499 Current++;
500 CurrentSample.compare_exchange_strong(Current, 0);
501 Current = 0;
502 // It is intended here to not check if exchange worked or failed.
503 // It might be overkill to call recursively GetFraction if exchange failed.
504 // Another thread might already have reset CurrentSample and it is acceptable
505 // to have two threads returning the same Fraction at index 0
506 }
507 float Fraction = Samples[Current];
508 return Fraction;
509 }
510private:
511
513 std::atomic<uint32> CurrentSample;
515 float Samples[NumSamples];
516};
517
520
521
569
588
604
605// Some resources used across frames can prevent execution of PS, CS and VS work across overlapping frames work.
606// This struct is used to transparently double buffer the sky aerial perspective volume on some platforms,
607// in order to make sure two consecutive frames have no resource dependencies, resulting in no cross frame barrier/sync point.
609{
611
612 void InitialiseOrNextFrame(ERHIFeatureLevel::Type FeatureLevel, FPooledRenderTargetDesc& AerialPerspectiveDesc, FRHICommandListImmediate& RHICmdList, bool bSeparatedAtmosphereMieRayLeigh);
613
617
618 uint64 GetGPUSizeBytes(bool bLogSizes) const;
619
620private:
621 bool bInitialised;
622 int32 CurrentScreenResolution;
623 int32 CurrentDepthResolution;
624 EPixelFormat CurrentTextureAerialLUTFormat;
625 TRefCountPtr<IPooledRenderTarget> CameraAerialPerspectiveVolumes[2];
626 TRefCountPtr<IPooledRenderTarget> CameraAerialPerspectiveVolumesMieOnly[2];
627 TRefCountPtr<IPooledRenderTarget> CameraAerialPerspectiveVolumesRayOnly[2];
628 uint8 CameraAerialPerspectiveVolumeCount;
629 uint8 CameraAerialPerspectiveVolumeIndex;
630 bool bSeparatedAtmosphereMieRayLeigh;
631};
632
645
679
681{
682public:
685
686 // FRenderResource interface
687 virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
688 virtual void ReleaseRHI() override;
689
690 void AddPrimitive(const FPrimitiveOcclusionHistoryKey& PrimitiveKey, const FVector& BoundsOrigin, const FVector& BoundsBoxExtent, FGlobalDynamicVertexBuffer& DynamicVertexBuffer);
691
692 void BeginOcclusionScope(FRDGBuilder& GraphBuilder);
693 void EndOcclusionScope(FRDGBuilder& GraphBuilder);
694
696 void SubmitOcclusionDraws(FRHICommandList& RHICmdList, FViewInfo& View);
697
699 void AdvanceFrame(uint32 OcclusionFrameCounter);
700
702 {
703 return GPUFeedbackBuffer;
704 }
705
706 inline bool IsOccluded(const FPrimitiveOcclusionHistoryKey& PrimitiveKey) const
707 {
708 return LatestOcclusionResults.Contains(PrimitiveKey);
709 }
710
711private:
712 struct FOcclusionBatch
713 {
715 uint32 NumBatchedPrimitives;
716 };
717
719 TArray<FOcclusionBatch, TInlineAllocator<3>> BatchOcclusionQueries;
720
721 FRDGBuffer* GPUFeedbackBuffer{};
722
723 struct FOcclusionBuffer
724 {
726 FRHIGPUBufferReadback* ReadbackBuffer = nullptr;
727 uint32 OcclusionFrameCounter = 0u;
728 };
729
730 FOcclusionBuffer OcclusionBuffers[3];
731 uint32 CurrentBufferIndex;
732
733 TSet<FPrimitiveOcclusionHistoryKey> LatestOcclusionResults;
734 uint32 ResultsOcclusionFrameCounter;
735
736 //
737 FVertexDeclarationRHIRef OcclusionVertexDeclarationRHI;
738};
739
746{
747public:
748
750 {
751 public:
752
753 inline bool operator == (const FProjectedShadowKey &Other) const
754 {
755 return (PrimitiveId == Other.PrimitiveId && Light == Other.Light && ShadowSplitIndex == Other.ShadowSplitIndex && bTranslucentShadow == Other.bTranslucentShadow);
756 }
757
758 FProjectedShadowKey(const FProjectedShadowInfo& ProjectedShadowInfo);
759
761 : PrimitiveId(InPrimitiveId)
762 , Light(InLight)
763 , ShadowSplitIndex(InSplitIndex)
764 , bTranslucentShadow(bInTranslucentShadow)
765 {
766 }
767
769 {
770 return PointerHash(Key.Light,GetTypeHash(Key.PrimitiveId));
771 }
772
773 private:
774 FPrimitiveComponentId PrimitiveId;
775 const ULightComponent* Light;
776 int32 ShadowSplitIndex;
777 bool bTranslucentShadow;
778 };
779
781
787
794
797
801
804
806
809
815
823
824 // A counter incremented once each time this view is rendered.
826
829
831
832#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
835
838
841
844
847#endif
848
852
855
858
859private:
860
861 // to implement eye adaptation / auto exposure changes over time
862 class FEyeAdaptationManager
863 {
864 public:
865 FEyeAdaptationManager();
866
867 void SafeRelease();
868
870 float GetLastExposure() const { return LastExposure; }
871
873 float GetLastAverageLocalExposure() const { return LastAverageLocalExposure; }
874
876 float GetLastAverageSceneLuminance() const { return LastAverageSceneLuminance; }
877
878 const TRefCountPtr<FRDGPooledBuffer>& GetCurrentBuffer() const
879 {
880 return GetBuffer(CurrentBufferIndex);
881 }
882
883 const TRefCountPtr<FRDGPooledBuffer>& GetCurrentBuffer(FRDGBuilder& GraphBuilder)
884 {
885 return GetOrCreateBuffer(GraphBuilder, CurrentBufferIndex);
886 }
887
888 void SwapBuffers();
889 void UpdateLastExposureFromBuffer();
890 void EnqueueExposureBufferReadback(FRDGBuilder& GraphBuilder);
891
892 uint64 GetGPUSizeBytes(bool bLogSizes) const;
893
894 private:
895 const TRefCountPtr<IPooledRenderTarget>& GetTexture(uint32 TextureIndex) const;
896 const TRefCountPtr<IPooledRenderTarget>& GetOrCreateTexture(FRDGBuilder& GraphBuilder, uint32 TextureIndex);
897
898 const TRefCountPtr<FRDGPooledBuffer>& GetBuffer(uint32 BufferIndex) const;
899 const TRefCountPtr<FRDGPooledBuffer>& GetOrCreateBuffer(FRDGBuilder& GraphBuilder, uint32 BufferIndex);
900
901 FRHIGPUBufferReadback* GetLatestReadbackBuffer();
902
903 // TODO: Do we need to double buffer?
904 // - for readback we copy data to readback buffers
905 // - do we ever need to access prev frame exposure AFTER current frame exposure has been calculated?
906 // - should at least make it more explicit/safe by having GetCurrentBuffer() and GetPreviousBuffer()
907 // and assert if current is accessed too early in frame.
908 static const int32 NUM_BUFFERS = 2;
909
910 static const int32 EXPOSURE_BUFFER_SIZE_IN_VECTOR4 = 2;
911
912 int32 CurrentBufferIndex = 0;
913
914 float LastExposure = 0;
915 float LastAverageLocalExposure = 1.0f;
916 float LastAverageSceneLuminance = 0; // 0 means invalid. Used for Exposure Compensation Curve.
917
918 UE_DEPRECATED(5.2, "Use ExposureBufferData instead.")
919 TRefCountPtr<IPooledRenderTarget> PooledRenderTarget[NUM_BUFFERS];
920
921 TRefCountPtr<FRDGPooledBuffer> ExposureBufferData[NUM_BUFFERS];
922 TArray<FRHIGPUBufferReadback*> ExposureReadbackBuffers;
923
924 static const uint32 MAX_READBACK_BUFFERS = 4;
925 uint32 ReadbackBuffersWriteIndex = 0;
926 uint32 ReadbackBuffersNumPending = 0;
927
928 } EyeAdaptationManager;
929
930 struct {
932 UCurveFloat* Curve = nullptr;
933#if WITH_EDITORONLY_DATA
934 UCurveFloat* Curve_GameThread = nullptr;
936 uint32 Version = 0;
937#endif
938 } ExposureCompensationCurveLUT;
939
940 FSubstrateViewDebugData SubstrateViewDebugData;
941
942 // The LUT used by tonemapping. In stereo this is only computed and stored by the Left Eye.
943 TRefCountPtr<IPooledRenderTarget> CombinedLUTRenderTarget;
944
945 // LUT is only valid after it has been computed, not on allocation of the RT
946 bool bValidTonemappingLUT = false;
947
948
949 // used by the Postprocess Material Blending system to avoid recreation and garbage collection of MIDs
951 uint32 MIDUsedCount;
952
953 // counts up by one each frame, warped in 0..3 range, ResetViewState() puts it back to 0
954 int32 DistanceFieldTemporalSampleIndex;
955
956 // whether this view is a stereo counterpart to a primary view
957 bool bIsStereoView;
958
959 // The whether or not round-robin occlusion querying is enabled for this view
960 bool bRoundRobinOcclusionEnabled;
961
962public:
963
964 // if TemporalAA is on this cycles through 0..TemporalAASampleCount-1, ResetViewState() puts it back to 0
966
967 // Counts up by one each frame, ResetViewState() puts it back to 0. Should be used as the seed for Halton
968 // and other per-render changes. Use OutputFrameIndex as the seed if the effect should be per output frame.
969 // Under normal rendering FrameIndex == OutputFrameIndex and there is no distinction between per-render and
970 // per-frame, but when accumulating multiple samples then FrameIndex will be unique for each accumulation sample
971 // rendered, but OutputFrameIndex will only increment per multi-sample accumulated output frame.
972 //
973 // Can be overwritten by OverrideFrameIndexValue.
975
976 // Counts up by one each frame, ResetViewState() puts it back to zero. See FrameIndex for more details. This should
977 // equal FrameIndex in normal scenarios, but can differ when accumulating multiple samples to produce one output frame.
978 //
979 // Can be overwritten by OverrideOutputFrameIndexValue
981
991
992 // Temporal AA result for light shafts of last frame
994 // Temporal AA result for light shafts of last frame
996
1000
1001 // Burley Subsurface scattering variance texture from the last frame.
1003
1006
1007 // Shared by Lumen and Mega Lights
1009
1011
1012 // Heterogeneous Volumes cached data stores
1015
1019
1021
1022 // Map from Light ID in GPU Scene to index in the View's ForwardLightData array
1023 // This is stored in ViewState so we can access previous frame mapping
1025
1026 // Similar to LightSceneIdToForwardLightIndex but for simple lights
1028
1029 // Pre-computed filter in spectral (i.e. FFT) domain along with data to determine if we need to up date it
1030 struct {
1032 void SafeRelease()
1033 {
1034 PhysicalRHI = nullptr;
1037 }
1039
1040 // The 2d fourier transform of the physical space texture.
1043
1044 // The physical space source texture
1046
1047 // The Scale * 100 = percentage of the image space that the physical kernel represents.
1048 // e.g. Scale = 1 indicates that the physical kernel image occupies the same size
1049 // as the image to be processed with the FFT convolution.
1050 float Scale = 0.f;
1051
1052 // The size of the viewport for which the spectral kernel was calculated.
1054
1055 // Mip level of the physical space source texture used when caching the spectral space texture.
1058
1059 // Film grain
1060 struct
1061 {
1063 void SafeRelease()
1064 {
1065 TextureRHI = nullptr;
1067 }
1069 // Cache View.FilmGrainTexture in TextureRHI and compare it every frame in case a new one is set (and rebuild constant buffers if this is the case)
1073
1075
1076 // Cached material texture samplers
1082
1083#if RHI_RAYTRACING
1084 // Invalidates cached results related to the path tracer so accumulated rendering can start over
1086 virtual uint32 GetPathTracingSampleIndex() const override;
1087 virtual uint32 GetPathTracingSampleCount() const override;
1088
1089 // Keeps track of the internal path tracer state
1091 uint32 PathTracingInvalidationCounter = 0;
1092
1093 // Ray Traced Sky Light Sample Direction Data
1096
1097 // List of landscape ray tracing state associated with this view, so it can be cleaned up if the view gets deleted.
1099
1102#endif // RHI_RAYTRACING
1103
1105
1114
1117
1118 // Sequencer state for view management
1120
1122
1129
1131 {
1133 }
1134
1139
1144
1146
1148
1150
1153
1154 // call after OnFrameRenderingSetup()
1156 {
1157 return TemporalAASampleIndex;
1158 }
1159
1160 // Returns the index of the frame with a desired power of two modulus.
1162 {
1164 return FrameIndex & (Pow2Modulus - 1);
1165 }
1166
1167 // Returns 32bits frame index.
1168 inline uint32 GetFrameIndex() const
1169 {
1170 return FrameIndex;
1171 }
1172
1173 // Returns the index of the output frame with a desired power of two modulus.
1179
1180 // Returns 32bits output frame index. Matches GetFrameIndex unless using multi-sample accumulation.
1182 {
1183 return OutputFrameIndex;
1184 }
1185
1186 // to make rendering more deterministic
1187 virtual void ResetViewState()
1188 {
1190 FrameIndex = 0;
1191 OutputFrameIndex = 0;
1192 DistanceFieldTemporalSampleIndex = 0;
1193 PreExposure = 1.f;
1194
1195 ReleaseRHI();
1196 }
1197
1199 {
1200 if (!Family.bWorldIsPaused)
1201 {
1202 DistanceFieldTemporalSampleIndex++;
1203 }
1204
1205 if(DistanceFieldTemporalSampleIndex >= 4)
1206 {
1207 DistanceFieldTemporalSampleIndex = 0;
1208 }
1209 }
1210
1212 {
1213 return DistanceFieldTemporalSampleIndex;
1214 }
1215
1217 FSceneViewState(ERHIFeatureLevel::Type FeatureLevel, FSceneViewState* ShareOriginTarget);
1218
1219private:
1220 // May only be called via Destroy (ensuring it happens on the RT)
1221 virtual ~FSceneViewState();
1222
1223public:
1224 // called every frame after the view state was updated
1226 {
1228 }
1229
1230 // InScene is passed in, as the Scene pointer in the class itself may be null, if it was allocated without a scene.
1232
1237 void UpdateMotionBlurTimeScale(const FViewInfo& View);
1238
1243 {
1244#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1245 if (bIsFrozen)
1246 {
1247 return;
1248 }
1249#endif
1250
1252 }
1253
1261
1269 void TrimOcclusionHistory(float CurrentTime, float MinHistoryTime, float MinQueryTime, int32 FrameNumber);
1270
1271 inline void UpdateRoundRobin(const bool bUseRoundRobin)
1272 {
1273 bRoundRobinOcclusionEnabled = bUseRoundRobin;
1274 }
1275
1276 inline bool IsRoundRobinEnabled() const
1277 {
1278 return bRoundRobinOcclusionEnabled;
1279 }
1280
1287
1289 {
1290 FRDGPooledBuffer* Buffer = EyeAdaptationManager.GetCurrentBuffer().GetReference();
1292 return Buffer;
1293 }
1294
1296 {
1298 return EyeAdaptationManager.GetCurrentBuffer(GraphBuilder).GetReference();
1299 }
1300
1302 {
1303 EyeAdaptationManager.SwapBuffers();
1304 }
1305
1307 {
1309 {
1310 EyeAdaptationManager.UpdateLastExposureFromBuffer();
1311 }
1312 }
1313
1315 {
1317 {
1318 EyeAdaptationManager.EnqueueExposureBufferReadback(GraphBuilder);
1319 }
1320 }
1321
1323 {
1324 return EyeAdaptationManager.GetLastExposure();
1325 }
1326
1328 {
1329 return EyeAdaptationManager.GetLastAverageLocalExposure();
1330 }
1331
1333 {
1334 return EyeAdaptationManager.GetLastAverageSceneLuminance();
1335 }
1336
1338 {
1339 return ExposureCompensationCurveLUT.Texture;
1340 }
1341
1342 virtual void SetExposureCompensationCurve(UCurveFloat* NewCurve) override;
1343
1345
1347 {
1348 return bValidTonemappingLUT;
1349 }
1350
1351 void SetValidTonemappingLUT(bool bValid = true)
1352 {
1353 bValidTonemappingLUT = bValid;
1354 }
1355
1357 {
1358 // Create the texture needed for the tonemapping LUT in one place
1361 {
1363 }
1364 if (bNeedFloatOutput)
1365 {
1367 }
1368
1371
1372 if (bUseVolumeLUT)
1373 {
1375 Desc.Depth = LUTSize;
1376 }
1377
1378 Desc.DebugName = TEXT("CombineLUTs");
1380
1381 return Desc;
1382 }
1383
1384 // Returns a reference to the render target used for the LUT. Allocated on the first request.
1386 {
1387 if (CombinedLUTRenderTarget.IsValid() == false ||
1388 CombinedLUTRenderTarget->GetDesc().Extent.Y != LUTSize ||
1389 ((CombinedLUTRenderTarget->GetDesc().Depth != 0) != bUseVolumeLUT) ||
1390 !!(CombinedLUTRenderTarget->GetDesc().Flags & TexCreate_UAV) != bNeedUAV ||
1391 (CombinedLUTRenderTarget->GetDesc().Format == PF_FloatRGBA) != bNeedFloatOutput)
1392 {
1393 // Create the texture needed for the tonemapping LUT
1395
1396 GRenderTargetPool.FindFreeElement(RHICmdList, Desc, CombinedLUTRenderTarget, Desc.DebugName);
1397 }
1398
1399 return CombinedLUTRenderTarget.GetReference();
1400 }
1401
1403 {
1404 return CombinedLUTRenderTarget.GetReference();
1405 }
1406
1408 {
1409 return SubstrateViewDebugData;
1410 }
1411
1412 // FRenderResource interface.
1413 virtual void InitRHI(FRHICommandListBase& RHICmdList) override
1414 {
1415 HZBOcclusionTests.InitRHI(RHICmdList);
1416 }
1417
1418 virtual void ReleaseRHI() override;
1419
1420 // FSceneViewStateInterface
1421 RENDERER_API virtual void Destroy() override;
1422
1424 {
1425 return this;
1426 }
1427
1428 virtual void AddReferencedObjects(FReferenceCollector& Collector) override
1429 {
1430 Collector.AddReferencedObjects(MIDPool);
1431 }
1432
1433 // needed for GetReusableMID()
1435 {
1437
1438 // Needs to be done once for all viewstates. If multiple FSceneViews are sharing the same ViewState, this will cause problems.
1439 // Sharing should be illegal right now though.
1440 MIDUsedCount = 0;
1441 }
1442
1444 virtual float GetPreExposure() const override
1445 {
1446 return PreExposure;
1447 }
1448
1449 // Note: OnStartPostProcessing() needs to be called each frame for each view
1451 {
1453 check(InSource);
1454
1455 // 0 or MID (MaterialInstanceDynamic) pointer
1457
1458 // fixup MID parents as this is not allowed, take the next MIC or Material.
1460
1461 // this is not allowed and would cause an error later in the code
1462 check(!ParentOfTheNewMID->IsA(UMaterialInstanceDynamic::StaticClass()));
1463
1465
1466 if(MIDUsedCount < (uint32)MIDPool.Num())
1467 {
1468 NewMID = MIDPool[MIDUsedCount];
1469
1470 if(NewMID->Parent != ParentOfTheNewMID)
1471 {
1472 // create a new one
1473 // garbage collector will remove the old one
1474 // this should not happen too often
1475 NewMID = UMaterialInstanceDynamic::Create(ParentOfTheNewMID, 0);
1476 MIDPool[MIDUsedCount] = NewMID;
1477 }
1478
1479 // reusing an existing object means we need to clear out the Vector and Scalar parameters
1480 NewMID->ClearParameterValues();
1481 }
1482 else
1483 {
1484 NewMID = UMaterialInstanceDynamic::Create(ParentOfTheNewMID, 0);
1485 check(NewMID);
1486
1487 MIDPool.Add(NewMID);
1488 }
1489
1490 if(InputAsMID)
1491 {
1492 // parent is an MID so we need to copy the MID Vector and Scalar parameters over
1493 NewMID->CopyInterpParameters(InputAsMID);
1494 }
1495
1496 check(!FApp::CanEverRender() || NewMID->GetRenderProxy());
1497 MIDUsedCount++;
1498 return NewMID;
1499 }
1500
1501 virtual void ClearMIDPool(FStringView MidParentRootPath = {}) override
1502 {
1504 if (MidParentRootPath.IsEmpty())
1505 {
1506 MIDPool.Empty();
1507 return;
1508 }
1509
1510 FNameBuilder PackagePath;
1511 const int32 RemoveNum = Algo::RemoveIf(MIDPool, [&PackagePath, MidParentRootPath](UMaterialInstanceDynamic* MID) -> bool
1512 {
1513 if (MID->Parent)
1514 {
1515 MID->Parent->GetPackage()->GetFName().ToString(PackagePath);
1516 return FStringView(PackagePath).StartsWith(MidParentRootPath);
1517 }
1518 return false;
1519 });
1520
1521 MIDPool.SetNum(RemoveNum);
1522 }
1523
1524#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1525 virtual const FViewMatrices* GetFrozenViewMatrices() const override
1526 {
1528 {
1529 return &CachedViewMatrices;
1530 }
1531 return nullptr;
1532 }
1533
1534 virtual void ActivateFrozenViewMatrices(FSceneView& SceneView) override
1535 {
1536 auto* ViewState = static_cast<FSceneViewState*>(SceneView.State);
1537 if (ViewState->bIsFrozen)
1538 {
1539 check(ViewState->bIsFrozenViewMatricesCached);
1540
1541 Swap(SceneView.ViewMatrices, ViewState->CachedViewMatrices);
1542 ViewState->bIsFrozenViewMatricesCached = false;
1543 }
1544 }
1545
1546 virtual void RestoreUnfrozenViewMatrices(FSceneView& SceneView) override
1547 {
1548 auto* ViewState = static_cast<FSceneViewState*>(SceneView.State);
1549 if (ViewState->bIsFrozen)
1550 {
1551 check(!ViewState->bIsFrozenViewMatricesCached);
1552
1553 Swap(SceneView.ViewMatrices, ViewState->CachedViewMatrices);
1554 ViewState->bIsFrozenViewMatricesCached = true;
1555 }
1556 }
1557#endif
1558
1560 {
1561 return TemporalLODState;
1562 }
1563
1564 virtual const FTemporalLODState& GetTemporalLODState() const override
1565 {
1566 return TemporalLODState;
1567 }
1568
1569 float GetTemporalLODTransition() const override
1570 {
1572 }
1573
1574 uint32 GetViewKey() const override
1575 {
1576 return UniqueID;
1577 }
1578
1580 {
1581 return ShareOriginUniqueID;
1582 }
1583
1585 {
1586 return OcclusionFrameCounter;
1587 }
1588
1589 virtual SIZE_T GetSizeBytes() const override;
1590 uint64 GetGPUSizeBytes(bool bLogSizes = false) const;
1591
1596
1598 {
1599 return SequencerState;
1600 }
1601
1602 virtual void AddLumenSceneData(FSceneInterface* InScene, float SurfaceCacheResolution) override;
1603 virtual void RemoveLumenSceneData(FSceneInterface* InScene) override;
1604 virtual bool HasLumenSceneData() const override;
1605
1618
1621};
1622
1662
1665{
1666public:
1669
1671
1676
1678 {
1679 return CubemapIndex == Other.CubemapIndex;
1680 }
1681};
1682
1707
1708
1714
1715
1717{
1718public:
1719
1720 const FCaptureComponentSceneState* Find(const FGuid& MapBuildDataId) const;
1721 FCaptureComponentSceneState* Find(const FGuid& MapBuildDataId);
1722
1727
1732
1735
1736 void Empty();
1737
1738protected:
1739
1743
1744 // Different map build data id of a capture might share the same capture component while editing (e.g., when they move).
1745 // need to replace it with the new one.
1747
1749};
1750
1753{
1754public:
1755
1761
1764
1768
1774
1777
1780
1785
1786 // Uniforms buffers with a sorted captures
1789
1795
1798
1802
1811
1814
1817
1819
1821 void Reset(FScene* Scene);
1822};
1823
1831
1843
1845{
1846public:
1847
1849 : Scene(InScene)
1850 {
1851 GlobalVolumetricLightmap.Data = &GlobalVolumetricLightmapData;
1852 }
1853
1854 bool HasData() const;
1858
1860
1862private:
1863 FScene* Scene;
1864 FPrecomputedVolumetricLightmap GlobalVolumetricLightmap;
1865 const FPrecomputedVolumetricLightmap* PersistentLevelVolumetricLightmap = nullptr;
1866 TArray<const FPrecomputedVolumetricLightmap*> LevelVolumetricLightmaps;
1867};
1868
1870{
1871public:
1878
1880
1883
1885
1887
1889 {
1890 TransformRows[0] = FVector3f((float)InLocalToWorld.M[0][0], (float)InLocalToWorld.M[0][1], (float)InLocalToWorld.M[0][2]);
1891 TransformRows[1] = FVector3f((float)InLocalToWorld.M[1][0], (float)InLocalToWorld.M[1][1], (float)InLocalToWorld.M[1][2]);
1892 TransformRows[2] = FVector3f((float)InLocalToWorld.M[2][0], (float)InLocalToWorld.M[2][1], (float)InLocalToWorld.M[2][2]);
1893 Origin = FVector(InLocalToWorld.M[3][0], InLocalToWorld.M[3][1], InLocalToWorld.M[3][2]);
1894
1896 }
1897
1899 {
1901 Matrix.M[0][0] = TransformRows[0].X;
1902 Matrix.M[0][1] = TransformRows[0].Y;
1903 Matrix.M[0][2] = TransformRows[0].Z;
1904 Matrix.M[0][3] = 0.0f;
1905 Matrix.M[1][0] = TransformRows[1].X;
1906 Matrix.M[1][1] = TransformRows[1].Y;
1907 Matrix.M[1][2] = TransformRows[1].Z;
1908 Matrix.M[1][3] = 0.0f;
1909 Matrix.M[2][0] = TransformRows[2].X;
1910 Matrix.M[2][1] = TransformRows[2].Y;
1911 Matrix.M[2][2] = TransformRows[2].Z;
1912 Matrix.M[2][3] = 0.0f;
1913 Matrix.M[3][0] = Origin.X;
1914 Matrix.M[3][1] = Origin.Y;
1915 Matrix.M[3][2] = Origin.Z;
1916 Matrix.M[3][3] = 1.0f;
1917 return Matrix;
1918 }
1919
1925};
1926
1951
1953{
1954public:
1957 {
1958 const FBoxSphereBounds Bounds = InPrimitive->Proxy->GetBounds();
1959 WorldBounds = Bounds.GetBox();
1960 }
1961
1963};
1964
1978
1993
2011
2027
2028struct TFDistanceFieldAssetStateFuncs : BaseKeyFuncs<FDistanceFieldAssetState, const FDistanceFieldVolumeData*, /* bInAllowDuplicateKeys = */ false>
2029{
2031 {
2032 return Element.BuiltData;
2033 }
2035 {
2036 return A == B;
2037 }
2039 {
2040 return PointerHash(Key);
2041 }
2042};
2043
2045{
2046public:
2048
2050
2052 {
2053 return MaxNumBlocks;
2054 }
2055
2057 {
2058 return MaxNumBlocks - FreeBlocks.Num();
2059 }
2060
2061private:
2062 int32 MaxNumBlocks = 0;
2064};
2065
2068
2071{
2072public:
2076
2080 void Release();
2081 void VerifyIntegrity();
2082 void ListMeshDistanceFields(bool bDumpAssetStats) const;
2083
2085 FRDGBuilder& GraphBuilder,
2087 FScene* Scene,
2090
2092 FRDGBuilder& GraphBuilder,
2094 const FSceneRenderUpdateInputs& SceneUpdateInputs,
2097
2099 {
2101 }
2102
2104 {
2105 return PendingAddOperations.Num() > 0 || PendingUpdateOperations.Num() > 0 || PendingRemoveOperations.Num() > 0;
2106 }
2107
2109 {
2111 }
2112
2114 {
2115 for (int32 RemoveIndex = 0; RemoveIndex < PendingRemoveOperations.Num(); ++RemoveIndex)
2116 {
2117 if (PendingRemoveOperations[RemoveIndex].Primitive == Primitive)
2118 {
2119 return true;
2120 }
2121 }
2122
2123 return false;
2124 }
2125
2127 {
2128 return ReadRequests.Num() > 0;
2129 }
2130
2131 inline bool CanUse16BitObjectIndices() const
2132 {
2133 return bCanUse16BitObjectIndices && (NumObjectsInBuffer < (1 << 16));
2134 }
2135
2137 {
2138 return ObjectBuffers;
2139 }
2140
2145
2149
2154
2155 // track indices that need to be updated using both an array and a set
2156 // array is used for fast iteration and support ParallelFor
2157 // set is used to prevent duplicate indices
2160
2164
2169
2173
2178
2184
2186
2195
2198
2201
2204
2205private:
2206
2207 void ProcessStreamingRequestsFromGPU(
2208 TArray<FDistanceFieldReadRequest>& NewReadRequests,
2210
2211 void ProcessReadRequests(
2214 TArray<FDistanceFieldReadRequest>& ReadRequestsToUpload,
2215 TArray<FDistanceFieldReadRequest>& ReadRequestsToCleanUp);
2216
2217 FRDGTexture* ResizeBrickAtlasIfNeeded(FRDGBuilder& GraphBuilder, FGlobalShaderMap* GlobalShaderMap);
2218
2219 bool ResizeIndirectionAtlasIfNeeded(FRDGBuilder& GraphBuilder, FGlobalShaderMap* GlobalShaderMap, FRDGTexture*& OutTexture);
2220
2222
2224
2225 void UploadAllAssetData(FRDGBuilder& GraphBuilder, FRDGBuffer* AssetDataBufferRDG);
2226
2227 void AsyncUpdate(FRHICommandListBase& RHICmdList, FDistanceFieldAsyncUpdateParameters& UpdateParameters);
2228
2229 void GenerateStreamingRequests(FRDGBuilder& GraphBuilder, const FSceneRenderUpdateInputs& SceneUpdateInputs);
2230
2232};
2233
2238
2258
2272
2288
2296
2302{
2303public:
2304
2307
2308 // FRenderResource interface
2309 virtual void InitRHI(FRHICommandListBase& RHICmdList);
2310 virtual void ReleaseRHI();
2311
2313 FIndirectLightingCacheAllocation* AllocatePrimitive(const FPrimitiveSceneInfo* PrimitiveSceneInfo, bool bUnbuiltPreview);
2314
2316 void ReleasePrimitive(FPrimitiveComponentId PrimitiveId);
2317
2319
2321 void UpdateCache(FScene* Scene, FSceneRenderer& Renderer, bool bAllowUnbuiltPreview);
2322
2325
2328
2331
2332 // Accessors
2333 FRHITexture* GetTexture0() { return Texture0->GetRHI(); }
2334 FRHITexture* GetTexture1() { return Texture1->GetRHI(); }
2335 FRHITexture* GetTexture2() { return Texture2->GetRHI(); }
2336
2337private:
2339 bool IndirectLightingAllowed(FScene* Scene, FSceneRenderer& Renderer) const;
2340
2341 void ProcessPrimitiveUpdate(FScene* Scene, FViewInfo& View, int32 PrimitiveIndex, bool bAllowUnbuiltPreview, bool bAllowVolumeSample, TMap<FIntVector, FBlockUpdateInfo>& OutBlocksToUpdate, TArray<FIndirectLightingCacheAllocation*>& OutTransitionsOverTimeToUpdate, TArray<FPrimitiveSceneInfo*>& OutPrimitivesToUpdateStaticMeshes);
2342
2344 void UpdateCachePrimitivesInternal(FScene* Scene, FSceneRenderer& Renderer, bool bAllowUnbuiltPreview, TMap<FIntVector, FBlockUpdateInfo>& OutBlocksToUpdate, TArray<FIndirectLightingCacheAllocation*>& OutTransitionsOverTimeToUpdate, TArray<FPrimitiveSceneInfo*>& OutPrimitivesToUpdateStaticMeshes);
2345
2347 void FinalizeUpdateInternal_RenderThread(FScene* Scene, FSceneRenderer& Renderer, TMap<FIntVector, FBlockUpdateInfo>& BlocksToUpdate, const TArray<FIndirectLightingCacheAllocation*>& TransitionsOverTimeToUpdate, TArray<FPrimitiveSceneInfo*>& PrimitivesToUpdateStaticMeshes);
2348
2350 bool UpdateCacheAllocation(
2351 const FBoxSphereBounds& Bounds,
2352 int32 BlockSize,
2353 bool bPointSample,
2354 bool bUnbuiltPreview,
2356 TMap<FIntVector, FBlockUpdateInfo>& BlocksToUpdate,
2357 TArray<FIndirectLightingCacheAllocation*>& TransitionsOverTimeToUpdate);
2358
2363 void UpdateCachePrimitive(
2365 FPrimitiveSceneInfo* PrimitiveSceneInfo,
2366 bool bAllowUnbuiltPreview,
2367 bool bAllowVolumeSample,
2368 TMap<FIntVector, FBlockUpdateInfo>& BlocksToUpdate,
2369 TArray<FIndirectLightingCacheAllocation*>& TransitionsOverTimeToUpdate,
2370 TArray<FPrimitiveSceneInfo*>& PrimitivesToUpdateStaticMeshes);
2371
2373 void UpdateBlocks(FScene* Scene, FViewInfo* DebugDrawingView, TMap<FIntVector, FBlockUpdateInfo>& BlocksToUpdate);
2374
2376 void UpdateTransitionsOverTime(const TArray<FIndirectLightingCacheAllocation*>& TransitionsOverTimeToUpdate, float DeltaWorldTime) const;
2377
2379 FIndirectLightingCacheAllocation* CreateAllocation(int32 BlockSize, const FBoxSphereBounds& Bounds, bool bPointSample, bool bUnbuiltPreview);
2380
2383 const FIndirectLightingCacheBlock& FindBlock(FIntVector TexelMin) const;
2384
2386 void DeallocateBlock(FIntVector Min, int32 Size);
2387 bool AllocateBlock(int32 Size, FIntVector& OutMin);
2388
2394
2396 void InterpolatePoint(
2397 FScene* Scene,
2402
2404 void InterpolateBlock(
2405 FScene* Scene,
2409
2414 void EncodeBlock(
2422 );
2423
2425 void CalculateBlockPositionAndSize(const FBoxSphereBounds& Bounds, int32 TexelSize, FVector& OutMin, FVector& OutSize) const;
2426
2428 void CalculateBlockScaleAndAdd(FIntVector InTexelMin, int32 AllocationTexelSize, FVector InMin, FVector InSize, FVector& OutScale, FVector& OutAdd, FVector& OutMinUV, FVector& OutMaxUV) const;
2429
2431 bool bUpdateAllCacheEntries;
2432
2434 int32 CacheSize;
2435
2440
2443
2445 FTextureLayout3d BlockAllocator;
2446
2447 int32 NextPointId;
2448
2451
2453};
2454
2468
2479
2501
2514
2519{
2520public:
2521
2525 void StartFrame(FScene* Scene);
2526
2531 {
2532 const FComponentVelocityData* VelocityData = ComponentData.Find(PrimitiveComponentId);
2533
2534 if (VelocityData && VelocityData->PrimitiveSceneInfo)
2535 {
2536 check(VelocityData->bPreviousLocalToWorldValid);
2537 VelocityData->LastFrameUsed = InternalFrameIndex;
2539 return true;
2540 }
2541
2542 return false;
2543 }
2544
2548 void UpdateTransform(FPrimitiveSceneInfo* PrimitiveSceneInfo, const FMatrix& LocalToWorld, const FMatrix& PreviousLocalToWorld)
2549 {
2550 check(PrimitiveSceneInfo->Proxy->HasDynamicTransform());
2551
2552 FComponentVelocityData& VelocityData = ComponentData.FindOrAdd(PrimitiveSceneInfo->PrimitiveComponentId);
2553 VelocityData.LocalToWorld = LocalToWorld;
2554 VelocityData.LastFrameUsed = InternalFrameIndex;
2555 VelocityData.LastFrameUpdated = InternalFrameIndex;
2556 VelocityData.PrimitiveSceneInfo = PrimitiveSceneInfo;
2557
2558 // If this transform state is newly added, use the passed in PreviousLocalToWorld for this frame
2559 if (!VelocityData.bPreviousLocalToWorldValid)
2560 {
2561 VelocityData.PreviousLocalToWorld = PreviousLocalToWorld;
2562 VelocityData.bPreviousLocalToWorldValid = true;
2563 }
2564 }
2565
2566 void RemoveFromScene(FPrimitiveComponentId PrimitiveComponentId, bool bImmediate)
2567 {
2568 if (bImmediate)
2569 {
2570 ComponentData.Remove(PrimitiveComponentId);
2571 }
2572 else
2573 {
2574 FComponentVelocityData* VelocityData = ComponentData.Find(PrimitiveComponentId);
2575
2576 if (VelocityData)
2577 {
2578 VelocityData->PrimitiveSceneInfo = nullptr;
2579 }
2580 }
2581 }
2582
2586 void OverridePreviousTransform(FPrimitiveComponentId PrimitiveComponentId, const FMatrix& PreviousLocalToWorld)
2587 {
2588 FComponentVelocityData* VelocityData = ComponentData.Find(PrimitiveComponentId);
2589 if (VelocityData)
2590 {
2591 VelocityData->PreviousLocalToWorld = PreviousLocalToWorld;
2592 VelocityData->bPreviousLocalToWorldValid = true;
2593 }
2594 }
2595
2597 {
2599 {
2600 FComponentVelocityData& VelocityData = It.Value();
2601 VelocityData.LocalToWorld.SetOrigin(VelocityData.LocalToWorld.GetOrigin() + Offset);
2603 }
2604 }
2605
2606private:
2607
2608 uint64 InternalFrameIndex = 0;
2610};
2611
2613{
2614public:
2616 : Scene(InScene)
2617 {
2618 }
2619
2650
2653
2656
2657 void ClearVisibilityState(FViewInfo& View);
2658
2659 bool IsActive() const { return (SceneNodes.Num() > 0); }
2660
2661private:
2662
2664 FScene* Scene;
2665
2668
2670 void ApplyNodeFadingToChildren(FSceneViewState* ViewState, FLODSceneNode& Node, FHLODSceneNodeVisibilityState& NodeVisibility, const bool bIsFading, const bool bIsFadingOut);
2671 void HideNodeChildren(FSceneViewState* ViewState, FLODSceneNode& Node);
2672};
2673
2674// Enable the DEBUG_CSM_CACHING to make the debugging CSM caching with RenderDoc more easier
2675#define DEBUG_CSM_CACHING 0
2676
2715
2716#if WITH_EDITOR
2718{
2719public:
2721
2723
2725
2726 //Hold the buffer array
2728
2735};
2736
2737// Reserved values for the stencil buffer that carry specific meaning
2739{
2740 enum Type : int32
2741 {
2742 NotSelected = 0,
2743 BSP = 1, // The outlines of all BSPs should be merged
2745 Nanite = 3, // Nanite can use only a single value
2746
2747 COUNT,
2748 };
2749}
2750
2751#endif //WITH_EDITOR
2752
2768
2769#if RHI_RAYTRACING
2770
2771enum class ERayTracingType : uint8;
2772
2773#endif
2774
2776{
2777 uint32 ViewUniqueId; // Zero if not view specific
2778 uint32 GPUIndex; // INDEX_NONE if not GPU specific
2779
2781 {
2782 return A.ViewUniqueId == B.ViewUniqueId && A.GPUIndex == B.GPUIndex;
2783 }
2784
2786 {
2787 return HashCombine(GetTypeHash(Key.ViewUniqueId), GetTypeHash(Key.GPUIndex));
2788 }
2789};
2790
2792
2794{
2795public:
2798
2799 FORCEINLINE explicit operator bool() const { return LumenSceneData != nullptr; }
2800 FORCEINLINE bool operator !() const { return LumenSceneData == nullptr; }
2801 FORCEINLINE FLumenSceneData* operator->() const { return LumenSceneData; }
2802 FORCEINLINE FLumenSceneData& operator*() const { return *LumenSceneData; }
2803
2804private:
2805 const FScene* Scene;
2806 FLumenSceneData* LumenSceneData;
2807 FLumenSceneDataMap::TConstIterator NextSceneData;
2808};
2809
2815{
2816 None = 0u
2817};
2819
2821{
2822 Invalidate,
2823 Transform,
2824 Color,
2825 MAX
2826};
2827
2830
2832
2833struct FUpdateLightTransformParameters : public FSceneLightInfoUpdates::TPayloadBase<ELightUpdateId::Transform, ELightDirtyFlags::None>
2834{
2837};
2838
2845
2850{
2851 // IDs of all lights before they were removed, IDs in this array may not be valid at all times when the change-set is used (depends on whether the callback site is before or after the given lights are removed from the scene).
2853 // IDs of all lights added to the scene, only available after all lights are added to the scene, may contain the same ID's as removed, as they may be reused.
2856 // Bit-array of at least size PreUpdateMaxIndex, with a bit set for each removed light
2860};
2861
2868
2875{
2876public:
2877
2880
2883
2886
2892
2897
2899
2903
2904#if RHI_RAYTRACING
2907
2910#endif
2911
2914
2918
2921
2932
2938
2947
2968#if RHI_RAYTRACING
2973 {
2974 bool bDrawInGame : 1;
2975 bool bRayTracingFarField : 1;
2976 bool bCastHiddenShadow : 1;
2977 bool bAffectIndirectLightingWhileHidden : 1;
2980 bool bUsesLightingChannels : 1;
2981 bool bCachedRaytracingDataDirty : 1 = true;
2983 Nanite::CoarseMeshStreamingHandle CoarseMeshStreamingHandle;
2985 };
2991 {
2992 FBoxSphereBounds Bounds;
2993 float MinDrawDistance = 0.0f;
2995 };
2997#endif
2998
3000
3001#if WITH_EDITOR
3004#endif
3005
3008
3010
3015 {
3016 FPrimitiveSceneProxyType(const FPrimitiveSceneProxy *PrimitiveSceneProxy);
3017 bool operator ==(const FPrimitiveSceneProxyType&) const = default;
3018
3021 };
3022
3029 /* During insertion and deletion, used to skip large chunks of items of the same type */
3031
3035
3041
3044
3047
3050
3053
3056
3059
3062
3065
3068
3069#if RHI_RAYTRACING
3072#endif
3073
3076
3079
3082
3085
3087 TRefCountPtr<IPooledRenderTarget> CapturedSkyRenderTarget; // Needs to be a IPooledRenderTarget because it must be created before the View uniform buffer is created.
3088
3091
3094
3097
3123
3134
3137
3142
3145
3148
3151
3153
3156
3159
3162
3165
3168
3171
3177
3180
3182
3184
3185#if RHI_RAYTRACING
3187 FRayTracingScene RayTracingScene;
3189
3191
3192 // Last valid RTPSO is saved, so it could be used as fallback in future frames if background PSO compilation is enabled.
3193 // This RTPSO can be used only if the only difference from previous PSO is the material hit shaders.
3195
3198
3201 {
3202 struct FTrackedSBT
3203 {
3205 bool bUsedThisFrame = false;
3206 FRayTracingPipelineState* LastValidPipelineState = nullptr; // Cached fallback pipeline state from last ViewFamily that created it
3207
3209 void Reset()
3210 {
3211 ID = INDEX_NONE;
3212 bUsedThisFrame = false;
3213 LastValidPipelineState = nullptr;
3214 }
3215 };
3216
3221 };
3222
3224#endif // RHI_RAYTRACING
3225
3228
3231
3234
3237
3241
3243
3246
3249
3252
3255
3258
3261
3264
3267
3270
3272
3274
3277
3280
3283
3287
3290
3293
3298
3301
3304
3307
3311
3314
3316
3320
3322
3326
3327 /* Array of registered compute work schedulers*/
3329
3332
3335
3338
3341
3343
3345
3347
3349
3351
3352#if WITH_EDITOR
3355#endif //WITH_EDITOR
3356
3357#if RHI_RAYTRACING
3359#endif
3360
3363
3366
3369
3370 virtual ~FScene();
3371
3372 FString GetFullWorldName() const { return FullWorldName; }
3373
3375
3389
3390
3395
3396 void Update(FRDGBuilder& GraphBuilder, const FUpdateParameters& Parameters);
3397
3398 // FSceneInterface interface.
3399 virtual void AddPrimitive(UPrimitiveComponent* Primitive) override;
3400 virtual void RemovePrimitive(UPrimitiveComponent* Primitive) override;
3401 virtual void ReleasePrimitive(UPrimitiveComponent* Primitive) override;
3406 virtual void UpdatePrimitiveTransform(UPrimitiveComponent* Primitive) override;
3407 virtual void UpdatePrimitiveInstances(UPrimitiveComponent* Primitive) override;
3409 virtual void UpdatePrimitiveOcclusionBoundsSlack(UPrimitiveComponent* Primitive, float NewSlack) override;
3410 virtual void UpdatePrimitiveDrawDistance(UPrimitiveComponent* Primitive, float MinDrawDistance, float MaxDrawDistance, float VirtualTextureMaxDrawDistance) override;
3411 virtual void UpdateInstanceCullDistance(UPrimitiveComponent* Primitive, float StartCullDistance, float EndCullDistance) override;
3412 virtual void UpdatePrimitiveAttachment(UPrimitiveComponent* Primitive) override;
3413 virtual void UpdateCustomPrimitiveData(UPrimitiveComponent* Primitive) override;
3414 virtual void UpdatePrimitiveDistanceFieldSceneData_GameThread(UPrimitiveComponent* Primitive) override;
3415 virtual FPrimitiveSceneInfo* GetPrimitiveSceneInfo(int32 PrimitiveIndex) const final;
3416 virtual FPrimitiveSceneInfo* GetPrimitiveSceneInfo(FPrimitiveComponentId PrimitiveId) const final;
3417 virtual FPrimitiveSceneInfo* GetPrimitiveSceneInfo(const FPersistentPrimitiveIndex& PersistentPrimitiveIndex) const final;
3418 virtual bool GetPreviousLocalToWorld(const FPrimitiveSceneInfo* PrimitiveSceneInfo, FMatrix& OutPreviousLocalToWorld) const override;
3419 virtual void AddLight(ULightComponent* Light) override;
3420 virtual void RemoveLight(ULightComponent* Light) override;
3421 virtual void AddInvisibleLight(ULightComponent* Light) override;
3422 virtual void SetSkyLight(FSkyLightSceneProxy* Light) override;
3423 virtual void DisableSkyLight(FSkyLightSceneProxy* Light) override;
3424 virtual bool HasSkyLightRequiringLightingBuild() const override;
3425 virtual bool HasAtmosphereLightRequiringLightingBuild() const override;
3426 virtual void AddDecal(UDecalComponent* Component) override;
3427 virtual void RemoveDecal(UDecalComponent* Component) override;
3428 virtual void UpdateDecalTransform(UDecalComponent* Decal) override;
3429 virtual void UpdateDecalFadeOutTime(UDecalComponent* Decal) override;
3430 virtual void UpdateDecalFadeInTime(UDecalComponent* Decal) override;
3436 virtual void ReleaseReflectionCubemap(UReflectionCaptureComponent* CaptureComponent) override;
3437 virtual void AddPlanarReflection(class UPlanarReflectionComponent* Component) override;
3440 virtual void UpdateSceneCaptureContents(class USceneCaptureComponent2D* CaptureComponent, ISceneRenderBuilder& SceneRenderBuilder) override;
3441 virtual void UpdateSceneCaptureContents(class USceneCaptureComponentCube* CaptureComponent, ISceneRenderBuilder& SceneRenderBuilder) override;
3442 virtual void UpdatePlanarReflectionContents(UPlanarReflectionComponent* CaptureComponent, FSceneRenderer& MainSceneRenderer, ISceneRenderBuilder& SceneRenderBuilder) override;
3444 virtual void ResetReflectionCaptures(bool bOnlyIfOOM) override;
3447 virtual void ValidateSkyLightRealTimeCapture(FRDGBuilder& GraphBuilder, const FViewInfo& View, FRDGTextureRef SceneColorTexture) override;
3448 virtual void ProcessAndRenderIlluminanceMeter(FRDGBuilder& GraphBuilder, TArrayView<FViewInfo> Views, FRDGTextureRef SceneColorTexture);
3449 virtual void AddPrecomputedLightVolume(const class FPrecomputedLightVolume* Volume) override;
3450 virtual void RemovePrecomputedLightVolume(const class FPrecomputedLightVolume* Volume) override;
3451 virtual bool HasPrecomputedVolumetricLightmap_RenderThread() const override;
3457 virtual void InvalidateRuntimeVirtualTexture(class URuntimeVirtualTextureComponent* Component, FBoxSphereBounds const& WorldBounds, EVTInvalidatePriority InvalidatePriority) override;
3458 virtual void RequestPreloadRuntimeVirtualTexture(class URuntimeVirtualTextureComponent* Component, FBoxSphereBounds const& WorldBounds, int32 Level) override;
3460 virtual void InvalidateLumenSurfaceCache_GameThread(UPrimitiveComponent* Component) override;
3461 virtual void GetPrimitiveUniformShaderParameters_RenderThread(const FPrimitiveSceneInfo* PrimitiveSceneInfo, bool& bHasPrecomputedVolumetricLightmap, FMatrix& PreviousLocalToWorld, int32& SingleCaptureIndex, bool& bOutputVelocity) const override;
3462 virtual void UpdateLightTransform(ULightComponent* Light) override;
3463 virtual void UpdateLightColorAndBrightness(ULightComponent* Light) override;
3464 virtual void UpdateLightProxy(ULightComponent* Light, TFunction<void(FLightSceneProxy*)>&& Func) override;
3465 virtual void AddExponentialHeightFog(uint64 Id, const FExponentialHeightFogDynamicState& State) override;
3466 virtual void RemoveExponentialHeightFog(uint64 Id) override;
3467 virtual bool HasAnyExponentialHeightFog() const override;
3468
3469 virtual void AddHairStrands(FHairStrandsInstance* Proxy) override;
3470 virtual void RemoveHairStrands(FHairStrandsInstance* Proxy) override;
3471
3472 virtual void GetLightIESAtlasSlot(const FLightSceneProxy* Proxy, FLightRenderParameters* Out) override;
3473 virtual void GetRectLightAtlasSlot(const FRectLightSceneProxy* Proxy, FLightRenderParameters* Out) override;
3474
3475 virtual void AddLocalFogVolume(class FLocalFogVolumeSceneProxy* FogProxy) override;
3476 virtual void RemoveLocalFogVolume(class FLocalFogVolumeSceneProxy* FogProxy) override;
3477 virtual bool HasAnyLocalFogVolume() const override;
3478
3479 virtual void AddSkyAtmosphere(FSkyAtmosphereSceneProxy* SkyAtmosphereSceneProxy, bool bStaticLightingBuilt) override;
3480 virtual void RemoveSkyAtmosphere(FSkyAtmosphereSceneProxy* SkyAtmosphereSceneProxy) override;
3483
3492
3495
3497 virtual void UnregisterAnimBank(const TConstArrayView<FAnimBankRecordHandle> Handles) override;
3498
3500 virtual void ResetPhysicsField() override;
3501 virtual void ShowPhysicsField() override;
3502 virtual void UpdatePhysicsField(FRDGBuilder& GraphBuilder, FViewInfo& View) override;
3503
3504 virtual void AddVolumetricCloud(FVolumetricCloudSceneProxy* VolumetricCloudSceneProxy) override;
3505 virtual void RemoveVolumetricCloud(FVolumetricCloudSceneProxy* VolumetricCloudSceneProxy) override;
3508
3512 virtual const TArray<FWindSourceSceneProxy*>& GetWindSources_RenderThread() const override;
3513 virtual void GetWindParameters(const FVector& Position, FVector& OutDirection, float& OutSpeed, float& OutMinGustAmt, float& OutMaxGustAmt) const override;
3514 virtual void GetWindParameters_GameThread(const FVector& Position, FVector& OutDirection, float& OutSpeed, float& OutMinGustAmt, float& OutMaxGustAmt) const override;
3515 virtual void GetDirectionalWindParameters(FVector& OutDirection, float& OutSpeed, float& OutMinGustAmt, float& OutMaxGustAmt) const override;
3516 virtual void AddSpeedTreeWind(FVertexFactory* VertexFactory, const UStaticMesh* StaticMesh) override;
3517 virtual void RemoveSpeedTreeWind_RenderThread(FVertexFactory* VertexFactory, const UStaticMesh* StaticMesh) override;
3518 virtual void UpdateSpeedTreeWind(double CurrentTime) override;
3519 virtual FRHIUniformBuffer* GetSpeedTreeUniformBuffer(const FVertexFactory* VertexFactory) const override;
3520 virtual void DumpUnbuiltLightInteractions( FOutputDevice& Ar ) const override;
3522
3523 virtual bool RequestGPUSceneUpdate(FPrimitiveSceneInfo& PrimitiveSceneInfo, EPrimitiveDirtyState PrimitiveDirtyState) override;
3524 virtual bool RequestUniformBufferUpdate(FPrimitiveSceneInfo& PrimitiveSceneInfo) override;
3525
3526 virtual void RefreshNaniteRasterBins(FPrimitiveSceneInfo& PrimitiveSceneInfo) override;
3527 virtual void ReloadNaniteFixedFunctionBins() override;
3528
3530
3533 {
3534 if (View.ViewLumenSceneData)
3535 {
3536 return View.ViewLumenSceneData;
3537 }
3538 else
3539 {
3541 }
3542 }
3544 {
3545 // Should we assert that this is only called for FViewInfo (meaning inside scene renderer)?
3546 if (View.bIsViewInfo)
3547 {
3548 return GetLumenSceneData((const FViewInfo&)View);
3549 }
3550 else
3551 {
3552 return FindLumenSceneData(View.State ? ((const FSceneViewState*)View.State)->GetShareOriginViewKey() : 0, View.GPUMask.GetFirstIndex());
3553 }
3554 }
3555
3556 virtual void AddPrimitive(FPrimitiveSceneDesc* Primitive) override;
3557 virtual void RemovePrimitive(FPrimitiveSceneDesc* Primitive) override;
3558 virtual void ReleasePrimitive(FPrimitiveSceneDesc* Primitive) override;
3560
3564
3566
3568
3571
3572 bool HasSkyAtmosphere() const
3573 {
3574 return (SkyAtmosphere != nullptr);
3575 }
3577 {
3578 return (VolumetricCloud != nullptr);
3579 }
3580
3582 {
3583 // If the second light is not null then we enable the second light.
3584 // We do not do any light1 to light0 remapping if light0 is null.
3585 return AtmosphereLights[1] != nullptr;
3586 }
3587
3588 // Reset all the light to default state "not being affected by atmosphere". Should only be called from render side.
3590
3597 virtual void GetRelevantLights( UPrimitiveComponent* Primitive, TArray<const ULightComponent*>* RelevantLights ) const override;
3598
3601
3603 virtual void UpdateStaticDrawLists() override;
3604
3606 virtual void UpdateCachedRenderStates(FPrimitiveSceneProxy* SceneProxy) override;
3607
3609 virtual void UpdatePrimitiveSelectedState_RenderThread(const FPrimitiveSceneInfo* PrimitiveSceneInfo, bool bIsSelected) override;
3610 virtual void UpdatePrimitiveVelocityState_RenderThread(FPrimitiveSceneInfo* PrimitiveSceneInfo, bool bIsBeingMoved) override;
3611
3612 virtual void UpdateEarlyZPassMode() override;
3613
3614 virtual void Release() override;
3615 virtual UWorld* GetWorld() const override { return World; }
3616
3619
3621
3623
3625
3627
3632
3637
3641 virtual bool RequiresHitProxies() const override;
3642
3643 SIZE_T GetSizeBytes() const;
3644
3648 virtual FScene* GetRenderScene() final { return this; }
3649 virtual const FScene* GetRenderScene() const final { return this; }
3650
3651 virtual void OnWorldCleanup() override;
3652
3653
3654 virtual void UpdateSceneSettings(AWorldSettings* WorldSettings) override;
3655
3656 virtual class FGPUSkinCache* GetGPUSkinCache() override
3657 {
3658 return GPUSkinCache;
3659 }
3660
3662 {
3663 return SkeletalMeshUpdater;
3664 }
3665
3670
3671#if RHI_RAYTRACING
3672 virtual void UpdateCachedRayTracingState(class FPrimitiveSceneProxy* SceneProxy) override;
3674 {
3676 }
3677#endif
3678
3682 virtual void SetFXSystem( class FFXSystemInterface* InFXSystem ) override;
3683
3687 virtual class FFXSystemInterface* GetFXSystem() override;
3688
3694 virtual void Export( FArchive& Ar ) const override;
3695
3697 {
3699
3701 {
3702 return *ExistingUniformBuffer;
3703 }
3704
3705 return nullptr;
3706 }
3707
3708 virtual void ApplyWorldOffset(const FVector& InOffset) override;
3709
3710 virtual void OnLevelAddedToWorld(const FName& InLevelName, UWorld* InWorld, bool bIsLightingScenario) override;
3711 virtual void OnLevelRemovedFromWorld(const FName& LevelRemovedName, UWorld* InWorld, bool bIsLightingScenario) override;
3712
3713 virtual bool HasAnyLights() const override
3714 {
3716 return NumVisibleLights_GameThread > 0 || NumEnabledSkylights_GameThread > 0;
3717 }
3718
3719 virtual bool IsEditorScene() const override { return bIsEditorScene; }
3720
3721 bool ShouldRenderSkylightInBasePass(bool bIsTranslucent) const;
3722
3727
3732
3735
3736#if WITH_EDITOR
3738
3740#endif //WITH_EDITOR
3741
3742 virtual void StartFrame() override
3743 {
3745 }
3746
3747 virtual void EndFrame(FRHICommandListImmediate& RHICmdList) override;
3748
3753 virtual uint32 GetFrameNumber() const override;
3754 inline uint32 GetFrameNumberRenderThread() const { return SceneFrameNumberRenderThread; }
3755
3756 virtual void IncrementFrameNumber() override;
3757
3759
3764
3773
3782
3791
3797
3798 FORCEINLINE int32 GetPrimitiveIndex(const FPersistentPrimitiveIndex& PersistentPrimitiveIndex) const
3799 {
3800 if (PersistentPrimitiveIndex.IsValid() && PersistentPrimitiveIndex.Index < PersistentPrimitiveIdToIndexMap.Num())
3801 {
3802 return PersistentPrimitiveIdToIndexMap[PersistentPrimitiveIndex.Index];
3803 }
3804 return INDEX_NONE;
3805 }
3806
3808 {
3809 return bForceNoPrecomputedLighting;
3810 }
3811
3816
3818 {
3820 CreateLightPrimitiveInteractionsTask.Wait();
3821 }
3822
3824 {
3825 return CreateLightPrimitiveInteractionsTask;
3826 }
3827
3829 {
3830 return GPUSkinUpdateTask;
3831 }
3832
3834 {
3835 return GPUSkinCacheTask;
3836 }
3837
3838 void AddGPUSkinCacheAsyncComputeWait(FRDGBuilder& GraphBuilder) const;
3839
3841 {
3843 CacheMeshDrawCommandsTask.Wait();
3844 }
3845
3847 {
3848 return CacheMeshDrawCommandsTask;
3849 }
3850
3852 {
3853 CSV_SCOPED_SET_WAIT_STAT(CacheNaniteMaterialBins);
3854 CacheNaniteMaterialBinsTask.Wait();
3855 }
3856
3858 {
3859 return CacheNaniteMaterialBinsTask;
3860 }
3861
3862#if RHI_RAYTRACING
3864 {
3867 }
3868
3870 {
3872 }
3873#endif
3874
3879
3880#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
3882#endif
3883
3884 template<typename TExtension>
3886 template<typename TExtension>
3888 template<typename TExtension>
3890 template<typename TExtension>
3892
3893 virtual bool AddCustomRenderPass(const FSceneViewFamily* ViewFamily, const FCustomRenderPassRendererInput& CustomRenderPassInput);
3894
3896
3914
3922
3924 void UpdatePrimitiveTransform_RenderThread(FPrimitiveSceneProxy* PrimitiveSceneProxy, const FBoxSphereBounds& WorldBounds, const FBoxSphereBounds& LocalBounds, const FMatrix& LocalToWorld, const FVector& OwnerPosition, const TOptional<FTransform>& PreviousTransform);
3925
3927 bool RequiresDebugMaterials() const { return PersistentViewStateDebugFlags != 0; }
3928
3931
3932protected:
3933
3934private:
3935 template<class T>
3936 void BatchAddPrimitivesInternal(TArrayView<T*> InPrimitives);
3937
3938 template<class T>
3939 void BatchRemovePrimitivesInternal(TArrayView<T*> InPrimitives);
3940
3941 template<class T>
3942 void BatchReleasePrimitivesInternal(TArrayView<T*> InPrimitives);
3943
3944 template<class T>
3945 void UpdatePrimitiveTransformInternal(T* Primitive);
3946
3947 [[nodiscard]] virtual IPrimitiveTransformUpdater* CreatePrimitiveTransformUpdater(int32 MaxPrimitives) override;
3948 virtual void UpdatePrimitiveTransforms(IPrimitiveTransformUpdater* PrimitiveTransformUpdater) override;
3949
3950 void RemoveViewLumenSceneData_RenderThread(FSceneViewStateInterface* ViewState);
3951 void RemoveViewState_RenderThread(FSceneViewStateInterface*);
3952
3956 void CheckPrimitiveArrays(int MaxTypeOffsetIndex = -1);
3957
3962 void AddPrimitiveSceneInfo_RenderThread(FPrimitiveSceneInfo* PrimitiveSceneInfo, const TOptional<FTransform>& PreviousTransform);
3963
3968 void RemovePrimitiveSceneInfo_RenderThread(FPrimitiveSceneInfo* PrimitiveSceneInfo);
3969
3970
3971 void UpdatePrimitiveOcclusionBoundsSlack_RenderThread(const FPrimitiveSceneProxy* PrimitiveSceneProxy, float NewSlack);
3972
3974
3976 void UpdatePrimitiveLightingAttachmentRoot(UPrimitiveComponent* Primitive);
3977
3978 void AssignAvailableShadowMapChannelForLight(FLightSceneInfo* LightSceneInfo);
3979
3984 void AddLightSceneInfo_RenderThread(FLightSceneInfo* LightSceneInfo);
3985
3991 void AddOrRemoveDecal_RenderThread(FDeferredDecalProxy* Component, bool bAdd);
3992
3997 void RemoveLightSceneInfo_RenderThread(FLightSceneInfo* LightSceneInfo);
3998
3999 void UpdateLightTransform_RenderThread(int32 LightId, FLightSceneInfo* LightSceneInfo, const struct FUpdateLightTransformParameters& Parameters);
4000
4005 void CaptureOrUploadReflectionCapture(UReflectionCaptureComponent* CaptureComponent, int32 ReflectionCaptureSize, bool bVerifyOnlyCapturing, bool bCapturingForMobile, bool bInsideTick);
4006
4008 void UpdateAllReflectionCaptures(const TCHAR* CaptureReason, int32 ReflectionCaptureSize, bool bVerifyOnlyCapturing, bool bCapturingForMobile, bool bInsideTick);
4009
4011 void UpdateStaticDrawLists_RenderThread(FRHICommandListImmediate& RHICmdList);
4012
4019 void ApplyWorldOffset_RenderThread(FRHICommandListBase& RHICmdList, const FVector& InOffset);
4020
4021 void ProcessAtmosphereLightRemoval_RenderThread(FLightSceneInfo* LightSceneInfo);
4022 void ProcessAtmosphereLightAddition_RenderThread(FLightSceneInfo* LightSceneInfo);
4023
4027 void UpdateLights(FRDGBuilder& GraphBuilder, FSceneExtensionsUpdaters& SceneExtensionsUpdaters);
4028
4029private:
4030 template <typename UpdatePayloadType>
4031 void UpdatePrimitiveInternal(FPrimitiveSceneProxy* SceneProxy, UpdatePayloadType &&InUpdatePayload);
4032
4033 template <typename UpdatePayloadType>
4035
4036 template <typename UpdatePayloadType>
4037 void UpdateLightInternal_RenderThread(FLightSceneProxy* LightSceneProxy, UpdatePayloadType&& InUpdatePayload);
4038
4043
4044 FString FullWorldName;
4045#if RHI_RAYTRACING
4048 template<typename RangeType>
4050#endif
4051
4053
4054 struct FLevelCommand
4055 {
4056 enum class EOp
4057 {
4058 Add,
4059 Remove
4060 };
4061
4062 FName Name;
4063 EOp Op;
4064 };
4065
4066 FScenePrimitiveUpdates PrimitiveUpdates;
4067 TArray<FLevelCommand> LevelCommands;
4068
4069 UE::Tasks::FTask CreateLightPrimitiveInteractionsTask;
4070 UE::Tasks::FTask GPUSkinUpdateTask;
4071 UE::Tasks::FTask GPUSkinCacheTask;
4072 UE::Tasks::FTask CacheMeshDrawCommandsTask;
4073 UE::Tasks::FTask CacheNaniteMaterialBinsTask;
4074#if RHI_RAYTRACING
4076#endif
4077
4078 FSceneLightInfoUpdates *SceneLightInfoUpdates;
4079
4081 uint64 PersistentViewStateDebugFlags;
4082
4087 int32 NumVisibleLights_GameThread;
4088
4093 int32 NumEnabledSkylights_GameThread;
4094
4096 uint32 SceneFrameNumber;
4097 uint32 SceneFrameNumberRenderThread;
4098
4099 uint32 LastUpdateFrameCounter = UINT32_MAX;
4100
4102 bool bForceNoPrecomputedLighting;
4103
4104 friend class FSceneViewState;
4105};
4106
4108{
4109 // Non-Surface domains can be applied to static meshes for thumbnails or material editor preview
4110 // Volume domain materials however must only be rendered in the voxelization pass
4111 return Domain != MD_Volume;
4112}
4113
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
int Volume
Definition AndroidPlatformMisc.cpp:380
#define FORCEINLINE
Definition AndroidPlatform.h:140
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
@ ForceInitToZero
Definition CoreMiscDefines.h:156
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
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
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 CSV_SCOPED_SET_WAIT_STAT(StatName)
Definition CsvProfiler.h:158
T * ToRawPtr(const TObjectPtr< T > &Ptr)
Definition ObjectPtr.h:1000
EDepthDrawingMode
Definition DepthRendering.h:21
#define NUM_ATMOSPHERE_LIGHTS
Definition EngineDefines.h:26
#define NUM_LIGHTING_CHANNELS
Definition EngineTypes.h:557
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
return true
Definition ExternalRpcRegistry.cpp:601
bool IsValidRef(const FVertexBufferAndSRV &Buffer)
Definition GPUSkinVertexFactory.h:92
@ GDF_Num
Definition GlobalDistanceField.h:21
#define FVector
Definition IOSSystemIncludes.h:8
EMaterialDomain
Definition MaterialDomain.h:13
UE::Math::TVector< float > FVector3f
Definition MathFwd.h:73
FInt32Point FIntPoint
Definition MathFwd.h:124
const bool
Definition NetworkReplayStreaming.h:178
FPixelFormatInfo GPixelFormats[PF_MAX]
Definition PixelFormat.cpp:31
EPixelFormat
Definition PixelFormat.h:16
@ PF_FloatRGBA
Definition PixelFormat.h:27
@ PF_A2B10G10R10
Definition PixelFormat.h:35
@ PF_R8G8B8A8
Definition PixelFormat.h:54
EPrimitiveDirtyState
Definition PrimitiveDirtyState.h:9
ERayTracingProxyType
Definition PrimitiveSceneProxy.h:278
#define TexCreate_RenderTargetable
Definition RHIDefinitions.h:1192
#define TexCreate_None
Definition RHIDefinitions.h:1191
#define TexCreate_UAV
Definition RHIDefinitions.h:1209
#define TexCreate_ShaderResource
Definition RHIDefinitions.h:1195
EShaderPlatform
Definition RHIShaderPlatform.h:11
#define DECLARE_GPU_STAT_NAMED_EXTERN(StatName, NameString)
Definition RealtimeGPUProfiler.h:260
TGlobalResource< FRenderTargetPool > GRenderTargetPool
Definition RenderTargetPool.cpp:13
EUpdateAllPrimitiveSceneInfosAsyncOps
Definition SceneInterface.h:85
ESequencerState
Definition SceneManagement.h:122
TMap< FPrimitiveComponentId, FPrimitiveFadingState > FPrimitiveFadingStateMap
Definition ScenePrivate.h:471
ELightDirtyFlags
Definition ScenePrivate.h:2815
void PrepareDistanceFieldScene(FRDGBuilder &GraphBuilder, FRDGExternalAccessQueue &ExternalAccessQueue, const FSceneRenderUpdateInputs &SceneUpdateInputs)
Definition DistanceFieldObjectManagement.cpp:976
ELightUpdateId
Definition ScenePrivate.h:2821
bool ShouldIncludeDomainInMeshPass(EMaterialDomain Domain)
Definition ScenePrivate.h:4107
TGlobalResource< FGlobalDistanceCullFadeUniformBuffer > GDistanceCullFadedInUniformBuffer
Definition RendererScene.cpp:213
TMap< FLumenSceneDataKey, FLumenSceneData * > FLumenSceneDataMap
Definition ScenePrivate.h:2791
uint32 GetTypeHash(const FPrimitiveOcclusionHistoryKey &Key)
Definition ScenePrivate.h:287
bool operator==(const FPrimitiveOcclusionHistoryKey &A, const FPrimitiveOcclusionHistoryKey &B)
Definition ScenePrivate.h:292
TGlobalResource< FGlobalDitherUniformBuffer > GDitherFadedInUniformBuffer
Definition RendererScene.cpp:216
FOcclusionRandomStream GOcclusionRandomStream
Definition SceneOcclusion.cpp:105
FFastVramConfig GFastVRamConfig
Definition SceneRendering.cpp:788
EShadingPath
Definition SceneUtils.h:24
#define SKY_IRRADIANCE_ENVIRONMENT_MAP_VEC4_COUNT
Definition SceneView.h:842
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
uint32 PointerHash(const void *Key)
Definition TypeHash.h:91
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
EVTInvalidatePriority
Definition VirtualTextureEnum.h:29
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
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
static INLINE_CANEVERRENDER bool CanEverRender()
Definition App.h:411
Definition Archive.h:1208
Definition ScenePrivate.h:2275
TArray< FPrimitiveSceneInfo * > Primitives
Definition ScenePrivate.h:2282
FAttachmentGroupSceneInfo()
Definition ScenePrivate.h:2284
FPrimitiveSceneInfo * ParentSceneInfo
Definition ScenePrivate.h:2279
Definition ScenePrivate.h:2261
FIndirectLightingCacheAllocation * Allocation
Definition ScenePrivate.h:2270
FIndirectLightingCacheBlock Block
Definition ScenePrivate.h:2269
FBlockUpdateInfo(const FIndirectLightingCacheBlock &InBlock, FIndirectLightingCacheAllocation *InAllocation)
Definition ScenePrivate.h:2264
Definition MeshPassProcessor.h:1914
Definition ScenePrivate.h:2678
FShadowMapRenderTargetsRefCounted ShadowMap
Definition ScenePrivate.h:2681
FCachedShadowMapData(const FWholeSceneProjectedShadowInitializer &InInitializer, float InLastUsedTime)
Definition ScenePrivate.h:2708
float LastUsedTime
Definition ScenePrivate.h:2682
void InvalidateCachedShadow()
Definition ScenePrivate.h:2701
bool bCachedShadowMapHasPrimitives
Definition ScenePrivate.h:2683
TBitArray StaticShadowSubjectPersistentPrimitiveIdMap
Definition ScenePrivate.h:2689
int32 LastFrameExtraStaticShadowSubjects
Definition ScenePrivate.h:2699
FVector PreShadowTranslation
Definition ScenePrivate.h:2692
bool bCachedShadowMapHasNaniteGeometry
Definition ScenePrivate.h:2684
FWholeSceneProjectedShadowInitializer Initializer
Definition ScenePrivate.h:2680
float MaxSubjectZ
Definition ScenePrivate.h:2693
FIntPoint ShadowBufferResolution
Definition ScenePrivate.h:2691
float MinSubjectZ
Definition ScenePrivate.h:2694
Definition ScenePrivate.h:1665
int32 CubemapIndex
Definition ScenePrivate.h:1668
bool operator==(const FCaptureComponentSceneState &Other) const
Definition ScenePrivate.h:1677
FCaptureComponentSceneState(int32 InCubemapIndex)
Definition ScenePrivate.h:1672
float AverageBrightness
Definition ScenePrivate.h:1670
Definition ScenePrivate.h:2504
FMatrix LocalToWorld
Definition ScenePrivate.h:2508
uint64 LastFrameUpdated
Definition ScenePrivate.h:2511
FMatrix PreviousLocalToWorld
Definition ScenePrivate.h:2509
uint64 LastFrameUsed
Definition ScenePrivate.h:2510
bool bPreviousLocalToWorldValid
Definition ScenePrivate.h:2512
FPrimitiveSceneInfo * PrimitiveSceneInfo
Definition ScenePrivate.h:2507
Definition DeferredDecalProxy.h:16
Definition IDelegateInstance.h:14
Definition ScenePrivate.h:1967
int32 ReversedMipIndex
Definition ScenePrivate.h:1976
FDistanceFieldAssetMipId(FSetElementId InAssetId, int32 InReversedMipIndex=0)
Definition ScenePrivate.h:1970
FSetElementId AssetId
Definition ScenePrivate.h:1975
Definition ScenePrivate.h:1981
FIntVector IndirectionDimensions
Definition ScenePrivate.h:1989
FDistanceFieldAssetMipRelocation(FIntVector InIndirectionDimensions, FIntVector InSrcPosition, FIntVector InDstPosition)
Definition ScenePrivate.h:1983
FIntVector SrcPosition
Definition ScenePrivate.h:1990
FIntVector DstPosition
Definition ScenePrivate.h:1991
Definition ScenePrivate.h:1996
FIntVector IndirectionDimensions
Definition ScenePrivate.h:2005
int32 IndirectionTableOffset
Definition ScenePrivate.h:2006
int32 NumBricks
Definition ScenePrivate.h:2008
FIntVector IndirectionAtlasOffset
Definition ScenePrivate.h:2007
FDistanceFieldAssetMipState()
Definition ScenePrivate.h:1999
TArray< int32, TInlineAllocator< 4 > > AllocatedBlocks
Definition ScenePrivate.h:2009
Definition ScenePrivate.h:2013
TArray< FDistanceFieldAssetMipState, TInlineAllocator< 3 > > ReversedMips
Definition ScenePrivate.h:2025
int32 WantedNumMips
Definition ScenePrivate.h:2024
const FDistanceFieldVolumeData * BuiltData
Definition ScenePrivate.h:2022
FDistanceFieldAssetState()
Definition ScenePrivate.h:2016
int32 RefCount
Definition ScenePrivate.h:2023
Definition ScenePrivate.h:2045
int32 GetAllocatedSize() const
Definition ScenePrivate.h:2056
int32 GetMaxSize() const
Definition ScenePrivate.h:2051
void Allocate(int32 NumBlocks, TArray< int32, TInlineAllocator< 4 > > &OutBlocks)
Definition DistanceFieldStreaming.cpp:460
Definition DistanceFieldLightingShared.h:55
Definition ScenePrivate.h:2071
FReadBuffer IndirectionUploadDataBuffer
Definition ScenePrivate.h:2177
TRefCountPtr< FRDGPooledBuffer > IndirectionTable
Definition ScenePrivate.h:2171
void AddPrimitive(FPrimitiveSceneInfo *InPrimitive)
Definition RendererScene.cpp:560
bool HasPendingRemovePrimitive(const FPrimitiveSceneInfo *Primitive) const
Definition ScenePrivate.h:2113
void VerifyIntegrity()
Definition RendererScene.cpp:675
void UpdateDistanceFieldObjectBuffers(FRDGBuilder &GraphBuilder, FRDGExternalAccessQueue &ExternalAccessQueue, FScene *Scene, TArray< FDistanceFieldAssetMipId > &DistanceFieldAssetAdds, TArray< FSetElementId > &DistanceFieldAssetRemoves)
Definition DistanceFieldObjectManagement.cpp:491
FReadBuffer BrickUploadCoordinatesBuffer
Definition ScenePrivate.h:2182
bool HasPendingUploads() const
Definition ScenePrivate.h:2098
FRDGScatterUploadBuffer UploadHeightFieldBoundsBuffer
Definition ScenePrivate.h:2151
TRefCountPtr< IPooledRenderTarget > DistanceFieldBrickVolumeTexture
Definition ScenePrivate.h:2180
bool HasPendingHeightFieldOperations() const
Definition ScenePrivate.h:2108
FReadBuffer BrickUploadDataBuffer
Definition ScenePrivate.h:2183
FDistanceFieldObjectBuffers * HeightFieldObjectBuffers
Definition ScenePrivate.h:2148
FRDGAsyncScatterUploadBuffer IndirectionTableUploadBuffer
Definition ScenePrivate.h:2172
FRDGScatterUploadBuffer UploadDistanceFieldBoundsBuffer
Definition ScenePrivate.h:2153
TSet< FPrimitiveSceneInfo * > PendingAddOperations
Definition ScenePrivate.h:2191
FDistanceFieldBlockAllocator DistanceFieldAtlasBlockAllocator
Definition ScenePrivate.h:2179
TSparseSet< FDistanceFieldAssetState, TFDistanceFieldAssetStateFuncs > AssetStateArray
Definition ScenePrivate.h:2161
FRDGScatterUploadBuffer AssetDataUploadBuffer
Definition ScenePrivate.h:2163
TRefCountPtr< IPooledRenderTarget > IndirectionAtlas
Definition ScenePrivate.h:2174
bool CanUse16BitObjectIndices() const
Definition ScenePrivate.h:2131
TArray< FPrimitiveAndInstance > PrimitiveInstanceMapping
Definition ScenePrivate.h:2188
int32 HFVisibilityAtlasGenerattion
Definition ScenePrivate.h:2200
TArray< FRHIGPUBufferReadback * > StreamingRequestReadbackBuffers
Definition ScenePrivate.h:2165
void Release()
Definition RendererScene.cpp:658
bool bCanUse16BitObjectIndices
Definition ScenePrivate.h:2203
uint32 MaxStreamingReadbackBuffers
Definition ScenePrivate.h:2166
TArray< int32 > IndicesToUpdateInObjectBuffers
Definition ScenePrivate.h:2158
~FDistanceFieldSceneData()
Definition DistanceFieldStreaming.cpp:577
FRDGScatterUploadBuffer UploadDistanceFieldDataBuffer
Definition ScenePrivate.h:2152
FIntVector BrickTextureDimensionsInBricks
Definition ScenePrivate.h:2181
bool HasPendingStreaming() const
Definition ScenePrivate.h:2126
TSet< FPrimitiveSceneInfo * > PendingUpdateOperations
Definition ScenePrivate.h:2192
TArray< FBox > PrimitiveModifiedBounds[GDF_Num]
Definition ScenePrivate.h:2194
int32 NumObjectsInBuffer
Definition ScenePrivate.h:2146
void ListMeshDistanceFields(bool bDumpAssetStats) const
Definition DistanceFieldStreaming.cpp:1689
TArray< FHeightFieldPrimitiveRemoveInfo > PendingHeightFieldRemoveOps
Definition ScenePrivate.h:2197
int32 HeightFieldAtlasGeneration
Definition ScenePrivate.h:2199
FRDGScatterUploadBuffer UploadHeightFieldDataBuffer
Definition ScenePrivate.h:2150
uint32 ReadbackBuffersWriteIndex
Definition ScenePrivate.h:2167
bool HasPendingOperations() const
Definition ScenePrivate.h:2103
TRefCountPtr< FRDGPooledBuffer > AssetDataBuffer
Definition ScenePrivate.h:2162
TArray< FPrimitiveRemoveInfo > PendingRemoveOperations
Definition ScenePrivate.h:2193
void RemovePrimitive(FPrimitiveSceneInfo *InPrimitive)
Definition RendererScene.cpp:609
bool bTrackAllPrimitives
Definition ScenePrivate.h:2202
TArray< FPrimitiveSceneInfo * > HeightfieldPrimitives
Definition ScenePrivate.h:2189
void UpdatePrimitive(FPrimitiveSceneInfo *InPrimitive)
Definition RendererScene.cpp:593
FTextureLayout3d IndirectionAtlasLayout
Definition ScenePrivate.h:2175
TArray< FDistanceFieldReadRequest > ReadRequests
Definition ScenePrivate.h:2185
TSet< int32 > IndicesToUpdateInObjectBuffersSet
Definition ScenePrivate.h:2159
FDistanceFieldSceneData(FDistanceFieldSceneData &&)
FDistanceFieldObjectBuffers * ObjectBuffers
Definition ScenePrivate.h:2147
void UpdateDistanceFieldAtlas(FRDGBuilder &GraphBuilder, FRDGExternalAccessQueue &ExternalAccessQueue, const FSceneRenderUpdateInputs &SceneUpdateInputs, TArray< FDistanceFieldAssetMipId > &DistanceFieldAssetAdds, TArray< FSetElementId > &DistanceFieldAssetRemoves)
Definition DistanceFieldStreaming.cpp:1419
uint32 ReadbackBuffersNumPending
Definition ScenePrivate.h:2168
friend class FDistanceFieldStreamingUpdateTask
Definition ScenePrivate.h:2231
FReadBuffer IndirectionUploadIndicesBuffer
Definition ScenePrivate.h:2176
const FDistanceFieldObjectBuffers * GetHeightFieldObjectBuffers() const
Definition ScenePrivate.h:2141
FGrowOnlySpanAllocator IndirectionTableAllocator
Definition ScenePrivate.h:2170
TSet< FPrimitiveSceneInfo * > PendingHeightFieldAddOps
Definition ScenePrivate.h:2196
const FDistanceFieldObjectBuffers * GetCurrentObjectBuffers() const
Definition ScenePrivate.h:2136
Definition DistanceFieldAtlas.h:241
Type
Definition RHIResources.h:412
Definition SceneCore.h:147
Definition FXSystem.h:131
Definition SceneRendering.h:309
Definition GPUSceneWriter.h:91
Definition GPUScene.h:217
Definition GPUSkinCache.h:126
Definition ScenePrivate.h:370
void InitContents()
Definition ScenePrivate.h:372
Definition ScenePrivate.h:436
TArray< FBox > PrimitiveModifiedBounds
Definition ScenePrivate.h:438
Definition ScenePrivate.h:442
const class FDistanceFieldSceneData * LastUsedSceneDataForFullUpdate
Definition ScenePrivate.h:467
FVector3f CachedClipmapCenter
Definition ScenePrivate.h:460
FInt64Vector LastPartialUpdateOriginInPages
Definition ScenePrivate.h:457
FGlobalDistanceFieldCacheTypeState Cache[GDF_Num]
Definition ScenePrivate.h:464
float CacheClipmapInfluenceRadius
Definition ScenePrivate.h:462
FGlobalDistanceFieldClipmapState()
Definition ScenePrivate.h:445
uint32 CacheMostlyStaticSeparately
Definition ScenePrivate.h:458
FInt64Vector FullUpdateOriginInPages
Definition ScenePrivate.h:456
float CachedClipmapExtent
Definition ScenePrivate.h:461
Definition ScenePrivate.h:388
void InitContents()
Definition ScenePrivate.h:390
Definition GlobalRenderResources.h:216
Definition GlobalShader.h:173
Definition GrowOnlySpanAllocator.h:8
Definition ScenePrivate.h:524
bool IsNodeFading(const int32 PrimIndex) const
Definition ScenePrivate.h:532
TBitArray ForcedVisiblePrimitiveMap
Definition ScenePrivate.h:563
float FOVDistanceScaleSq
Definition ScenePrivate.h:566
float TemporalLODSyncTime
Definition ScenePrivate.h:565
TBitArray PrimitiveFadingOutLODMap
Definition ScenePrivate.h:562
bool IsValidPrimitiveIndex(const int32 PrimIndex) const
Definition ScenePrivate.h:556
bool IsNodeFadingOut(const int32 PrimIndex) const
Definition ScenePrivate.h:538
bool IsNodeForcedHidden(const int32 PrimIndex) const
Definition ScenePrivate.h:550
TBitArray ForcedHiddenPrimitiveMap
Definition ScenePrivate.h:564
bool IsNodeForcedVisible(const int32 PrimIndex) const
Definition ScenePrivate.h:544
FHLODVisibilityState()
Definition ScenePrivate.h:526
uint16 UpdateCount
Definition ScenePrivate.h:567
TBitArray PrimitiveFadingLODMap
Definition ScenePrivate.h:561
Definition SceneRendering.h:397
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SceneOcclusion.cpp:815
Definition ScenePrivate.h:1826
FHairTransientResources * TransientResources
Definition ScenePrivate.h:1829
TArray< FHairStrandsInstance * > RegisteredProxies
Definition ScenePrivate.h:1828
Definition ScenePrivate.h:1953
FHeightFieldPrimitiveRemoveInfo(const FPrimitiveSceneInfo *InPrimitive)
Definition ScenePrivate.h:1955
FBox WorldBounds
Definition ScenePrivate.h:1962
Definition PrimitiveSceneInfo.h:61
Definition ScenePrivate.h:2241
FIndirectLightingCacheBlock()
Definition ScenePrivate.h:2244
FVector Size
Definition ScenePrivate.h:2255
bool bHasEverBeenUpdated
Definition ScenePrivate.h:2256
FIntVector MinTexel
Definition ScenePrivate.h:2252
FVector Min
Definition ScenePrivate.h:2254
int32 TexelSize
Definition ScenePrivate.h:2253
Definition ScenePrivate.h:2302
FRHITexture * GetTexture2()
Definition ScenePrivate.h:2335
void UpdateCache(FScene *Scene, FSceneRenderer &Renderer, bool bAllowUnbuiltPreview)
Definition IndirectLightingCache.cpp:456
FRHITexture * GetTexture0()
Definition ScenePrivate.h:2333
FIndirectLightingCacheAllocation * FindPrimitiveAllocation(FPrimitiveComponentId PrimitiveId) const
Definition IndirectLightingCache.cpp:376
void ReleasePrimitive(FPrimitiveComponentId PrimitiveId)
Definition IndirectLightingCache.cpp:359
FIndirectLightingCacheAllocation * AllocatePrimitive(const FPrimitiveSceneInfo *PrimitiveSceneInfo, bool bUnbuiltPreview)
Definition IndirectLightingCache.cpp:325
void SetLightingCacheDirty(FScene *Scene, const FPrecomputedLightVolume *Volume)
Definition IndirectLightingCache.cpp:808
virtual void InitRHI(FRHICommandListBase &RHICmdList)
Definition IndirectLightingCache.cpp:157
void FinalizeCacheUpdates(FScene *Scene, FSceneRenderer &Renderer, FILCUpdatePrimTaskData &TaskData)
Definition IndirectLightingCache.cpp:449
void StartUpdateCachePrimitivesTask(FScene *Scene, FSceneRenderer &Renderer, bool bAllowUnbuiltPreview, FILCUpdatePrimTaskData &OutTaskData)
Definition IndirectLightingCache.cpp:436
FRHITexture * GetTexture1()
Definition ScenePrivate.h:2334
virtual void ReleaseRHI()
Definition IndirectLightingCache.cpp:180
Definition ScenePrivate.h:319
void ReleaseQuery(uint32 FrameNumber, int32 NumBufferedFrames)
Definition ScenePrivate.h:340
FRHIRenderQuery * GetPastQuery(uint32 FrameNumber, int32 NumBufferedFrames)
Definition ScenePrivate.h:346
void ReleaseStaleQueries(uint32 FrameNumber, int32 NumBufferedFrames)
Definition ScenePrivate.h:325
void SetCurrentQuery(uint32 FrameNumber, FRHIPooledRenderQuery &&NewQuery, int32 NumBufferedFrames)
Definition ScenePrivate.h:357
Definition InstanceCullingManager.h:45
Definition InstanceCullingOcclusionQuery.h:21
Definition ScenePrivate.h:2613
void AddChildNode(FPrimitiveComponentId ParentId, FPrimitiveSceneInfo *ChildSceneInfo)
Definition SceneVisibility.cpp:6052
void RemoveChildNode(FPrimitiveComponentId ParentId, FPrimitiveSceneInfo *ChildSceneInfo)
Definition SceneVisibility.cpp:6076
void ClearVisibilityState(FViewInfo &View)
Definition SceneVisibility.cpp:6101
void UpdateVisibilityStates(FViewInfo &View, UE::Tasks::FTaskEvent &FlushCachedShadowsTaskEvent)
Definition SceneVisibility.cpp:6131
void UpdateNodeSceneInfo(FPrimitiveComponentId NodeId, FPrimitiveSceneInfo *SceneInfo)
Definition SceneVisibility.cpp:6093
bool IsActive() const
Definition ScenePrivate.h:2659
FLODSceneTree(FScene *InScene)
Definition ScenePrivate.h:2615
Definition LightSceneInfo.h:36
Definition LightSceneInfo.h:208
Definition LightSceneProxy.h:43
Definition LocalFogVolumeSceneProxy.h:12
Definition ScenePrivate.h:2794
FORCEINLINE FLumenSceneData * operator->() const
Definition ScenePrivate.h:2801
FORCEINLINE FLumenSceneData & operator*() const
Definition ScenePrivate.h:2802
FORCEINLINE bool operator!() const
Definition ScenePrivate.h:2800
FLumenSceneDataIterator & operator++()
Definition LumenScene.cpp:831
Definition LumenSceneData.h:1002
Definition LumenViewState.h:327
Definition ParameterCollection.h:25
Definition MegaLightsViewState.h:12
Definition NameTypes.h:1900
Definition NameTypes.h:617
Definition NaniteShared.h:717
Definition NaniteShared.h:884
Definition NaniteVisibility.h:82
Definition ScenePrivate.h:681
void AddPrimitive(const FPrimitiveOcclusionHistoryKey &PrimitiveKey, const FVector &BoundsOrigin, const FVector &BoundsBoxExtent, FGlobalDynamicVertexBuffer &DynamicVertexBuffer)
Definition SceneOcclusion.cpp:1796
~FOcclusionFeedback()
Definition SceneOcclusion.cpp:1653
FOcclusionFeedback()
Definition SceneOcclusion.cpp:1645
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SceneOcclusion.cpp:1657
void EndOcclusionScope(FRDGBuilder &GraphBuilder)
Definition SceneOcclusion.cpp:1701
virtual void ReleaseRHI() override
Definition SceneOcclusion.cpp:1672
void SubmitOcclusionDraws(FRHICommandList &RHICmdList, FViewInfo &View)
Definition SceneOcclusion.cpp:1878
bool IsOccluded(const FPrimitiveOcclusionHistoryKey &PrimitiveKey) const
Definition ScenePrivate.h:706
void ReadbackResults(FRHICommandListImmediate &RHICmdList)
Definition SceneOcclusion.cpp:1722
void AdvanceFrame(uint32 OcclusionFrameCounter)
Definition SceneOcclusion.cpp:1712
FRDGBuffer * GetGPUFeedbackBuffer() const
Definition ScenePrivate.h:701
void BeginOcclusionScope(FRDGBuilder &GraphBuilder)
Definition SceneOcclusion.cpp:1688
@ MaxBufferedOcclusionFrames
Definition ScenePrivateBase.h:25
static uint32 GetQueryLookupIndex(int32 CurrentFrame, int32 NumBufferedFrames)
Definition ScenePrivateBase.h:32
static uint32 GetQueryIssueIndex(int32 CurrentFrame, int32 NumBufferedFrames)
Definition ScenePrivateBase.h:42
Definition ScenePrivate.h:474
float GetFraction()
Definition ScenePrivate.h:493
FOcclusionRandomStream()
Definition ScenePrivate.h:479
Definition OutputDevice.h:133
Definition ScenePrivate.h:2754
TUniformBufferRef< FMobileReflectionCaptureShaderParameters > MobileSkyReflectionUniformBuffer
Definition ScenePrivate.h:2766
void Initialize()
Definition RendererScene.cpp:1081
FPersistentUniformBuffers()=default
void Clear()
Definition RendererScene.cpp:1070
TUniformBufferRef< FMobileDirectionalLightShaderParameters > MobileDirectionalLightUniformBuffers[NUM_LIGHTING_CHANNELS+1]
Definition ScenePrivate.h:2765
Definition PhysicsFieldComponent.h:293
Definition RendererInterface.h:597
Definition PlanarReflectionSceneProxy.h:88
Definition PrecomputedLightVolume.h:151
Definition Level.h:240
Definition PrecomputedVolumetricLightmap.h:148
Definition PrecomputedVolumetricLightmap.h:223
FPrecomputedVolumetricLightmapData * Data
Definition PrecomputedVolumetricLightmap.h:245
Definition ScenePrivate.h:1870
FPrimitiveAndInstance(const FMatrix &InLocalToWorld, const FBox &InWorldBounds, FPrimitiveSceneInfo *InPrimitive, int32 InInstanceIndex)
Definition ScenePrivate.h:1872
FORCEINLINE void SetTransformAndBounds(const FMatrix &InLocalToWorld, const FBox &InWorldBounds)
Definition ScenePrivate.h:1888
FVector Origin
Definition ScenePrivate.h:1881
FORCEINLINE FBox GetWorldBounds() const
Definition ScenePrivate.h:1920
int32 InstanceIndex
Definition ScenePrivate.h:1886
FRenderBounds WorldBoundsRelativeToOrigin
Definition ScenePrivate.h:1884
FPrimitiveSceneInfo * Primitive
Definition ScenePrivate.h:1879
FVector3f TransformRows[3]
Definition ScenePrivate.h:1882
FORCEINLINE FMatrix GetLocalToWorld() const
Definition ScenePrivate.h:1898
Definition PrimitiveComponentId.h:12
Definition ScenePrivate.h:405
bool bIsVisible
Definition ScenePrivate.h:429
FDistanceCullFadeUniformBufferRef UniformBuffer
Definition ScenePrivate.h:420
FVector2D FadeTimeScaleBias
Definition ScenePrivate.h:417
FPrimitiveFadingState()
Definition ScenePrivate.h:407
bool bValid
Definition ScenePrivate.h:432
float EndTime
Definition ScenePrivate.h:426
uint32 FrameNumber
Definition ScenePrivate.h:423
Definition ScenePrivate.h:112
FPrimitiveOcclusionHistory(FPrimitiveComponentId InPrimitiveId, int32 SubQuery)
Definition ScenePrivate.h:185
void SetCurrentQuery(uint32 FrameNumber, FRHIRenderQuery *NewQuery, int32 NumBufferedFrames, bool bGrouped, bool bNeedsScan)
Definition ScenePrivate.h:243
uint32 LastConsideredFrameNumber
Definition ScenePrivate.h:122
uint32 LastTestFrameNumber
Definition ScenePrivate.h:121
bool bGroupedQuery[FOcclusionQueryHelpers::MaxBufferedOcclusionFrames]
Definition ScenePrivate.h:149
FRHIRenderQuery * GetQueryForReading(uint32 FrameNumber, int32 NumBufferedFrames, int32 LagTolerance, bool &bOutGrouped) const
Definition ScenePrivate.h:228
uint8 WasOccludedLastFrame
Definition ScenePrivate.h:145
FPrimitiveComponentId PrimitiveId
Definition ScenePrivate.h:115
uint32 PendingOcclusionQueryFrames[FOcclusionQueryHelpers::MaxBufferedOcclusionFrames]
Definition ScenePrivate.h:119
int32 CustomIndex
Definition ScenePrivate.h:140
float LastPixelsPercentage
Definition ScenePrivate.h:135
uint8 OcclusionStateWasDefiniteLastFrame
Definition ScenePrivate.h:146
FRHIRenderQuery * PendingOcclusionQuery[FOcclusionQueryHelpers::MaxBufferedOcclusionFrames]
Definition ScenePrivate.h:118
float LastConsideredTime
Definition ScenePrivate.h:129
float LastProvenVisibleTime
Definition ScenePrivate.h:126
uint8 BecameEligibleForQueryCooldown
Definition ScenePrivate.h:143
uint32 LastQuerySubmitFrame() const
Definition ScenePrivate.h:254
FPrimitiveOcclusionHistory()
Definition ScenePrivate.h:207
uint32 HZBTestIndex
Definition ScenePrivate.h:123
Definition ScenePrivate.h:1928
FPrimitiveRemoveInfo(const FPrimitiveSceneInfo *InPrimitive)
Definition ScenePrivate.h:1930
bool bOftenMoving
Definition ScenePrivate.h:1945
const FDistanceFieldVolumeData * DistanceFieldData
Definition ScenePrivate.h:1949
const FPrimitiveSceneInfo * Primitive
Definition ScenePrivate.h:1943
TArray< int32, TInlineAllocator< 1 > > DistanceFieldInstanceIndices
Definition ScenePrivate.h:1947
Definition PrimitiveSceneInfo.h:266
FPrimitiveComponentId PrimitiveComponentId
Definition PrimitiveSceneInfo.h:279
FPrimitiveSceneProxy * Proxy
Definition PrimitiveSceneInfo.h:273
static const uint32 MaxCachedReflectionCaptureProxies
Definition PrimitiveSceneInfo.h:337
Definition PrimitiveSceneProxy.h:296
virtual void GetDistanceFieldAtlasData(const class FDistanceFieldVolumeData *&OutDistanceFieldData, float &SelfShadowBias) const
Definition PrimitiveSceneProxy.h:559
bool HasDynamicTransform() const
Definition PrimitiveSceneProxy.h:920
Definition ShadowRendering.h:279
Definition UnifiedBuffer.h:371
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphUtils.h:1272
Definition RenderGraphResources.h:1196
Definition UnifiedBuffer.h:479
Definition RenderGraphResources.h:571
Definition RHICommandList.h:455
Definition RHICommandList.h:4626
Definition RHICommandList.h:3819
Definition RHIGPUReadback.h:116
Definition RHIGPUReadback.h:139
Definition RHIResources.h:2452
void ReleaseQuery()
Definition RHIResources.h:2498
FRHIRenderQuery * GetQuery() const
Definition RHIResources.h:2471
Definition RHIResources.h:2444
Definition RHIResources.h:2153
Definition RHIResources.h:1232
Definition RayTracingMeshDrawCommands.h:121
Definition RHIResources.h:4982
Definition PipelineStateCache.cpp:1285
Definition RectLightSceneProxy.h:16
Definition UObjectGlobals.h:2492
Definition MapBuildDataRegistry.h:195
Definition ReflectionCaptureProxy.h:31
uint32 Guid
Definition ReflectionCaptureProxy.h:48
Definition ScenePrivate.h:1625
void ResizeCubemapArrayGPU(uint32 InMaxCubemaps, int32 CubemapSize, const TArray< int32 > &IndexRemapping)
Definition ReflectionEnvironment.cpp:533
int32 GetCubemapSize() const
Definition ScenePrivate.h:1650
void ReleaseCubeArray()
Definition ReflectionEnvironment.cpp:179
virtual void ReleaseRHI() override
Definition ReflectionEnvironment.cpp:185
const TRefCountPtr< IPooledRenderTarget > & GetRenderTarget() const
Definition ScenePrivate.h:1652
FReflectionEnvironmentCubemapArray(ERHIFeatureLevel::Type InFeatureLevel)
Definition ScenePrivate.h:1628
bool IsValid() const
Definition ScenePrivate.h:1651
int32 CubemapSize
Definition ScenePrivate.h:1657
int32 GetMaxCubemaps() const
Definition ScenePrivate.h:1649
void UpdateMaxCubemaps(uint32 InMaxCubemaps, int32 CubemapSize)
Definition ReflectionEnvironment.cpp:590
void Reset()
Definition ReflectionEnvironment.cpp:610
uint32 MaxCubemaps
Definition ScenePrivate.h:1656
TRefCountPtr< IPooledRenderTarget > ReflectionEnvs
Definition ScenePrivate.h:1658
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition ReflectionEnvironment.cpp:148
Definition ScenePrivate.h:1753
bool AllocatedReflectionCaptureStateHasChanged
Definition ScenePrivate.h:1763
TBitArray CubemapArraySlotsUsed
Definition ScenePrivate.h:1779
int32 NumBoxCaptures
Definition ScenePrivate.h:1783
int32 ReflectionCaptureSizeGameThread
Definition ScenePrivate.h:1800
TSparseArray< UReflectionCaptureComponent * > AllocatedReflectionCapturesGameThread
Definition ScenePrivate.h:1794
FReflectionEnvironmentSceneData(ERHIFeatureLevel::Type InFeatureLevel)
Definition ScenePrivate.h:1803
void ResizeCubemapArrayGPU(uint32 InMaxCubemaps, int32 InCubemapSize)
Definition ReflectionEnvironment.cpp:434
int32 DesiredReflectionCaptureSizeGameThread
Definition ScenePrivate.h:1801
TUniformBufferRef< FReflectionCaptureShaderData > ReflectionCaptureUniformBuffer
Definition ScenePrivate.h:1787
bool DoesAllocatedDataNeedUpdate(int32 DesiredMaxCubemaps, int32 DesiredCaptureSize) const
Definition ReflectionEnvironment.cpp:423
TUniformBufferRef< FMobileReflectionCaptureShaderData > MobileReflectionCaptureUniformBuffer
Definition ScenePrivate.h:1788
bool bRegisteredReflectionCapturesHasChanged
Definition ScenePrivate.h:1760
int32 MaxAllocatedReflectionCubemapsGameThread
Definition ScenePrivate.h:1797
FReflectionCaptureCache AllocatedReflectionCaptureState
Definition ScenePrivate.h:1776
TArray< FReflectionCaptureSortData > SortedCaptures
Definition ScenePrivate.h:1782
TArray< FReflectionCaptureProxy * > RegisteredReflectionCaptures
Definition ScenePrivate.h:1766
void SetGameThreadTrackingData(int32 MaxAllocatedCubemaps, int32 CaptureSize, int32 DesiredCaptureSize)
Definition ReflectionEnvironment.cpp:416
FReflectionEnvironmentCubemapArray CubemapArray
Definition ScenePrivate.h:1773
int32 NumSphereCaptures
Definition ScenePrivate.h:1784
TArray< FSphere > RegisteredReflectionCapturePositionAndRadius
Definition ScenePrivate.h:1767
Definition RenderResource.h:37
static RENDERCORE_API FRHICommandListBase & GetImmediateCommandList()
Definition RenderResource.cpp:173
Definition UnrealClient.h:30
Definition RuntimeVirtualTextureSceneProxy.h:15
Definition SceneExtensions.h:205
Definition SceneExtensions.h:147
TDerivedExtension * GetExtensionPtr()
Definition SceneExtensions.h:160
TDerivedExtension & GetExtension()
Definition SceneExtensions.h:177
Definition SceneInterface.h:604
Definition SceneInterface.h:106
virtual void UpdateAllPrimitiveSceneInfos(FRDGBuilder &GraphBuilder, EUpdateAllPrimitiveSceneInfosAsyncOps AsyncOps=EUpdateAllPrimitiveSceneInfosAsyncOps::None)=0
virtual void UpdateCachedRayTracingState(class FPrimitiveSceneProxy *SceneProxy)
Definition SceneInterface.h:747
Definition ScenePrimitiveUpdates.h:129
Definition ScenePrimitiveUpdates.h:116
Definition SceneRendering.h:2080
Definition ScenePrivate.h:2519
void StartFrame(FScene *Scene)
Definition RendererScene.cpp:3330
void OverridePreviousTransform(FPrimitiveComponentId PrimitiveComponentId, const FMatrix &PreviousLocalToWorld)
Definition ScenePrivate.h:2586
void ApplyOffset(FVector Offset)
Definition ScenePrivate.h:2596
bool GetComponentPreviousLocalToWorld(FPrimitiveComponentId PrimitiveComponentId, FMatrix &OutPreviousLocalToWorld) const
Definition ScenePrivate.h:2530
void RemoveFromScene(FPrimitiveComponentId PrimitiveComponentId, bool bImmediate)
Definition ScenePrivate.h:2566
void UpdateTransform(FPrimitiveSceneInfo *PrimitiveSceneInfo, const FMatrix &LocalToWorld, const FMatrix &PreviousLocalToWorld)
Definition ScenePrivate.h:2548
Definition SceneView.h:2212
bool bWorldIsPaused
Definition SceneView.h:2393
FGameTime Time
Definition SceneView.h:2327
Definition SceneManagement.h:132
uint8 bValidEyeAdaptationBuffer
Definition SceneManagement.h:279
Definition ScenePrivate.h:750
FProjectedShadowKey(FPrimitiveComponentId InPrimitiveId, const ULightComponent *InLight, int32 InSplitIndex, bool bInTranslucentShadow)
Definition ScenePrivate.h:760
bool operator==(const FProjectedShadowKey &Other) const
Definition ScenePrivate.h:753
friend uint32 GetTypeHash(const FSceneViewState::FProjectedShadowKey &Key)
Definition ScenePrivate.h:768
Definition ScenePrivate.h:746
const TArray< uint8 > * CachedVisibilityChunk
Definition ScenePrivate.h:811
uint32 FrameIndex
Definition ScenePrivate.h:974
virtual void OnStartPostProcessing(FSceneView &CurrentView) override
Definition ScenePrivate.h:1434
float GetLastEyeAdaptationExposure() const
Definition ScenePrivate.h:1322
FHZBOcclusionTester HZBOcclusionTests
Definition ScenePrivate.h:802
FRDGPooledBuffer * GetCurrentEyeAdaptationBuffer(FRDGBuilder &GraphBuilder)
Definition ScenePrivate.h:1295
FMegaLightsViewState MegaLights
Definition ScenePrivate.h:1005
FShaderPrintStateData ShaderPrintStateData
Definition ScenePrivate.h:1147
uint32 OcclusionFrameCounter
Definition ScenePrivate.h:825
bool IsShadowOccluded(FSceneViewState::FProjectedShadowKey ShadowKey, int32 NumBufferedFrames) const
Definition SceneOcclusion.cpp:283
int32 CachedVisibilityChunkIndex
Definition ScenePrivate.h:814
bool bLumenSceneDataAdded
Definition ScenePrivate.h:1151
int32 CachedVisibilityBucketIndex
Definition ScenePrivate.h:813
TRefCountPtr< IPooledRenderTarget > Spectral
Definition ScenePrivate.h:1041
uint32 GetFrameIndex(uint32 Pow2Modulus) const
Definition ScenePrivate.h:1161
TRefCountPtr< FRDGPooledBuffer > ConstantsBuffer
Definition ScenePrivate.h:1042
void SetValidTonemappingLUT(bool bValid=true)
Definition ScenePrivate.h:1351
TMap< FSimpleLightId, int32 > SimpleLightIdToForwardLightIndex
Definition ScenePrivate.h:1027
virtual FRDGTextureRef GetVolumetricCloudTexture(FRDGBuilder &GraphBuilder) override
Definition ScenePrivate.h:1130
uint64 GetGPUSizeBytes(bool bLogSizes=false) const
Definition SceneViewState.cpp:428
virtual void ReleaseRHI() override
Definition RendererScene.cpp:412
virtual FTemporalLODState & GetTemporalLODState() override
Definition ScenePrivate.h:1559
FRHITexture * TextureRHI
Definition ScenePrivate.h:1070
void SetupDistanceFieldTemporalOffset(const FSceneViewFamily &Family)
Definition ScenePrivate.h:1198
FHairStrandsViewStateData HairStrandsViewStateData
Definition ScenePrivate.h:1145
void UpdateLastRenderTime(const FSceneViewFamily &Family)
Definition ScenePrivate.h:1225
FIntPoint ImageSize
Definition ScenePrivate.h:1053
virtual FVector2f GetVolumetricCloudTextureUVScale() const override
Definition ScenePrivate.h:1135
virtual void ResetViewState()
Definition ScenePrivate.h:1187
FSubstrateViewDebugData & GetSubstrateViewDebugData()
Definition ScenePrivate.h:1407
TUniquePtr< FForwardLightingViewResources > ForwardLightingResources
Definition ScenePrivate.h:1104
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition ScenePrivate.h:1413
uint32 GetShareOriginViewKey() const
Definition ScenePrivate.h:1579
FScene * Scene
Definition ScenePrivate.h:793
uint32 GetOcclusionFrameCounter() const
Definition ScenePrivate.h:1584
FRHITexture * GetExposureCompensationCurveLUT() const
Definition ScenePrivate.h:1337
FTemporalLODState TemporalLODState
Definition ScenePrivate.h:1121
void UpdateEyeAdaptationLastExposureFromBuffer()
Definition ScenePrivate.h:1306
uint32 GetDistanceFieldTemporalSampleIndex() const
Definition ScenePrivate.h:1211
FMatrix44f PrevViewMatrixForOcclusionQuery
Definition ScenePrivate.h:821
FVector VolumetricCloudShadowmapPreviousAnchorPoint[NUM_ATMOSPHERE_LIGHTS]
Definition ScenePrivate.h:1127
FVector2f PrevLightScatteringViewGridUVToViewRectVolumeUV
Definition ScenePrivate.h:1107
int32 CachedVisibilityHandlerId
Definition ScenePrivate.h:812
float GetTemporalLODTransition() const override
Definition ScenePrivate.h:1569
FVector VolumetricCloudShadowmapPreviousAtmosphericLightPos[NUM_ATMOSPHERE_LIGHTS]
Definition ScenePrivate.h:1126
void EnqueueEyeAdaptationExposureBufferReadback(FRDGBuilder &GraphBuilder)
Definition ScenePrivate.h:1314
double LastRenderTime
Definition ScenePrivate.h:818
virtual SIZE_T GetSizeBytes() const override
Definition SceneOcclusion.cpp:321
uint32 bIsFreezing
Definition ScenePrivate.h:834
FTextureRHIRef Texture
Definition ScenePrivate.h:931
TMap< FPrimitiveComponentId, FHLODSceneNodeVisibilityState > HLODSceneNodeVisibilityStates
Definition ScenePrivate.h:851
float LightScatteringHistoryPreExposure
Definition ScenePrivate.h:1106
uint32 GetFrameIndex() const
Definition ScenePrivate.h:1168
FGlintShadingLUTsStateData GlintShadingLUTsData
Definition ScenePrivate.h:1149
float PreExposure
Definition ScenePrivate.h:854
void TrimHistoryRenderTargets(const FScene *InScene)
Definition LightShaftRendering.cpp:667
TSet< FPrimitiveComponentId > FrozenPrimitives
Definition ScenePrivate.h:843
const uint8 * ResolvePrecomputedVisibilityData(FViewInfo &View, const FScene *InScene)
Definition SceneOcclusion.cpp:148
virtual void SetSequencerState(ESequencerState InSequencerState) override
Definition ScenePrivate.h:1592
virtual float GetPreExposure() const override
Definition ScenePrivate.h:1444
FOcclusionFeedback OcclusionFeedback
Definition ScenePrivate.h:803
uint32 ShareOriginUniqueID
Definition ScenePrivate.h:786
FHLODVisibilityState HLODVisibilityState
Definition ScenePrivate.h:850
uint32 GetViewKey() const override
Definition ScenePrivate.h:1574
struct FSceneViewState::FOcclusion Occlusion
TRefCountPtr< IPooledRenderTarget > LightScatteringHistory
Definition ScenePrivate.h:1112
TMap< int32, TRDGUniformBufferRef< FAdaptiveVolumetricShadowMapUniformBufferParameters > > AdaptiveVolumetricShadowMapUniformBufferMap
Definition ScenePrivate.h:1018
virtual void ActivateFrozenViewMatrices(FSceneView &SceneView) override
Definition ScenePrivate.h:1534
FTranslucencyLightingViewState TranslucencyLighting
Definition ScenePrivate.h:1010
void UpdateMotionBlurTimeScale(const FViewInfo &View)
Definition SceneVisibility.cpp:5558
bool bUpdateLastExposure
Definition ScenePrivate.h:857
FRHITexture * PhysicalRHI
Definition ScenePrivate.h:1045
uint32 GetOutputFrameIndex() const
Definition ScenePrivate.h:1181
TMap< int32, FIndividualOcclusionHistory > PlanarReflectionOcclusionHistories
Definition ScenePrivate.h:830
IPooledRenderTarget * GetTonemappingLUT(FRHICommandList &RHICmdList, const int32 LUTSize, const bool bUseVolumeLUT, const bool bNeedUAV, const bool bNeedFloatOutput)
Definition ScenePrivate.h:1385
TMap< int32, int32 > LightSceneIdToForwardLightIndex
Definition ScenePrivate.h:1024
uint32 UniqueID
Definition ScenePrivate.h:780
float GetLastAverageLocalExposure() const
Definition ScenePrivate.h:1327
struct FSceneViewState::@1801 FilmGrainCache
TRDGUniformBufferRef< FAdaptiveVolumetricShadowMapUniformBufferParameters > AdaptiveVolumetricCameraMapUniformBuffer
Definition ScenePrivate.h:1017
void UpdateExposureCompensationCurveLUT(FRHICommandList &RHICmdList, UCurveFloat *Curve)
Definition PostProcessEyeAdaptation.cpp:742
TRefCountPtr< IPooledRenderTarget > SubsurfaceScatteringQualityHistoryRT
Definition ScenePrivate.h:1002
virtual FVector2f GetVolumetricCloudTextureUVMax() const override
Definition ScenePrivate.h:1140
FStochasticLightingViewState StochasticLighting
Definition ScenePrivate.h:1008
uint32 bIsFrozenViewMatricesCached
Definition ScenePrivate.h:840
void UpdateTemporalLODTransition(const FViewInfo &View)
Definition ScenePrivate.h:1242
FLumenViewState Lumen
Definition ScenePrivate.h:1004
float GetLastAverageSceneLuminance() const
Definition ScenePrivate.h:1332
FVector2f VolumetricFogPrevUVMax
Definition ScenePrivate.h:1109
uint32 GetOutputFrameIndex(uint32 Pow2Modulus) const
Definition ScenePrivate.h:1174
float MotionBlurTargetDeltaTime
Definition ScenePrivate.h:820
FTemporalAAHistory LightShaftOcclusionHistory
Definition ScenePrivate.h:993
TPimplPtr< DiaphragmDOF::FDOFViewState > DepthOfFieldState
Definition ScenePrivate.h:1074
TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > FrustumVoxelGridUniformBuffer
Definition ScenePrivate.h:1014
FVector2f VolumetricFogPrevUVMaxForTemporalBlend
Definition ScenePrivate.h:1110
uint32 PendingPrevFrameNumber
Definition ScenePrivate.h:816
int32 TemporalAASampleIndex
Definition ScenePrivate.h:965
FRDGPooledBuffer * GetCurrentEyeAdaptationBuffer() const override final
Definition ScenePrivate.h:1288
float MotionBlurTimeScale
Definition ScenePrivate.h:819
TRefCountPtr< FPersistentGlobalDistanceFieldData > GlobalDistanceFieldData
Definition ScenePrivate.h:1116
FVector2f VolumetricFogPrevViewGridRectUVToResourceUV
Definition ScenePrivate.h:1108
virtual void SystemMemoryMirrorBackup(FSceneViewStateSystemMemoryMirror *SystemMemoryMirror) override final
Definition SceneViewState.cpp:830
TMap< FSceneViewState::FProjectedShadowKey, FRHIPooledRenderQuery > ShadowKeyOcclusionQueryMap
Definition ScenePrivate.h:795
virtual bool HasLumenSceneData() const override
Definition SceneViewState.cpp:575
TRefCountPtr< IPooledRenderTarget > DistanceFieldAOHistoryRT
Definition ScenePrivate.h:998
FSamplerStateRHIRef LandscapeWeightmapSamplerCache
Definition ScenePrivate.h:1081
uint32 OutputFrameIndex
Definition ScenePrivate.h:980
IPooledRenderTarget * GetTonemappingLUT() const
Definition ScenePrivate.h:1402
TArray< ShadowKeyOcclusionQueryMap, TInlineAllocator< FOcclusionQueryHelpers::MaxBufferedOcclusionFrames > > ShadowOcclusionQueryMaps
Definition ScenePrivate.h:796
virtual void RestoreUnfrozenViewMatrices(FSceneView &SceneView) override
Definition ScenePrivate.h:1546
FFrameBasedOcclusionQueryPool PrimitiveOcclusionQueryPool
Definition ScenePrivate.h:800
FPreviousViewInfo PrevFrameViewInfo
Definition ScenePrivate.h:990
FAdaptiveVolumetricShadowMapUniformBufferParameters * AdaptiveVolumetricCameraMapUniformBufferParameters
Definition ScenePrivate.h:1016
uint32 PhysicalMipLevel
Definition ScenePrivate.h:1056
bool HasValidTonemappingLUT() const
Definition ScenePrivate.h:1346
virtual const FViewMatrices * GetFrozenViewMatrices() const override
Definition ScenePrivate.h:1525
FVector VolumetricCloudShadowmapPreviousAtmosphericLightDir[NUM_ATMOSPHERE_LIGHTS]
Definition ScenePrivate.h:1128
float LandscapeCachedMipBias
Definition ScenePrivate.h:1078
TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > OrthoVoxelGridUniformBuffer
Definition ScenePrivate.h:1013
FRenderQueryPoolRHIRef OcclusionQueryPool
Definition ScenePrivate.h:799
FVolumetricRenderTargetViewStateData VolumetricCloudRenderTarget
Definition ScenePrivate.h:1123
float Scale
Definition ScenePrivate.h:1050
virtual UMaterialInstanceDynamic * GetReusableMID(class UMaterialInterface *InSource) override
Definition ScenePrivate.h:1450
virtual void ClearMIDPool(FStringView MidParentRootPath={}) override
Definition ScenePrivate.h:1501
FSamplerStateRHIRef MaterialTextureBilinearClampedSamplerCache
Definition ScenePrivate.h:1080
FPersistentSkyAtmosphereData PersistentSkyAtmosphereData
Definition ScenePrivate.h:805
FIntRect DistanceFieldAOHistoryViewRect
Definition ScenePrivate.h:997
float MaterialTextureCachedMipBias
Definition ScenePrivate.h:1077
uint32 PrevFrameNumber
Definition ScenePrivate.h:817
TMap< const ULightComponent *, TUniquePtr< FTemporalAAHistory > > LightShaftBloomHistoryRTs
Definition ScenePrivate.h:995
UCurveFloat * Curve
Definition ScenePrivate.h:932
float LumenSurfaceCacheResolution
Definition ScenePrivate.h:1152
FSamplerStateRHIRef MaterialTextureBilinearWrapedSamplerCache
Definition ScenePrivate.h:1079
void TrimOcclusionHistory(float CurrentTime, float MinHistoryTime, float MinQueryTime, int32 FrameNumber)
Definition SceneOcclusion.cpp:262
virtual ESequencerState GetSequencerState() override
Definition ScenePrivate.h:1597
bool IsRoundRobinEnabled() const
Definition ScenePrivate.h:1276
virtual uint32 GetCurrentTemporalAASampleIndex() const
Definition ScenePrivate.h:1155
TRefCountPtr< IPooledRenderTarget > DistanceFieldIrradianceHistoryRT
Definition ScenePrivate.h:999
FMatrix VolumetricCloudShadowmapPreviousTranslatedWorldToLightClipMatrix[NUM_ATMOSPHERE_LIGHTS]
Definition ScenePrivate.h:1125
static FPooledRenderTargetDesc CreateLUTRenderTarget(const int32 LUTSize, const bool bUseVolumeLUT, const bool bNeedUAV, const bool bNeedFloatOutput)
Definition ScenePrivate.h:1356
FPrimitiveFadingStateMap PrimitiveFadingStates
Definition ScenePrivate.h:828
FVector PrevViewOriginForOcclusionQuery
Definition ScenePrivate.h:822
FTemporalRenderTargetState VolumetricCloudShadowRenderTarget[NUM_ATMOSPHERE_LIGHTS]
Definition ScenePrivate.h:1124
virtual void RemoveLumenSceneData(FSceneInterface *InScene) override
Definition SceneViewState.cpp:554
FIntVector VolumetricFogPrevResourceGridSize
Definition ScenePrivate.h:1111
TRefCountPtr< IPooledRenderTarget > PrevLightScatteringConservativeDepthTexture
Definition ScenePrivate.h:1113
virtual void SystemMemoryMirrorRestore(FSceneViewStateSystemMemoryMirror *SystemMemoryMirror) override final
Definition SceneViewState.cpp:851
virtual const FTemporalLODState & GetTemporalLODState() const override
Definition ScenePrivate.h:1564
virtual FSceneViewState * GetConcreteViewState() override
Definition ScenePrivate.h:1423
void UpdateRoundRobin(const bool bUseRoundRobin)
Definition ScenePrivate.h:1271
virtual void AddLumenSceneData(FSceneInterface *InScene, float SurfaceCacheResolution) override
Definition SceneViewState.cpp:496
ESequencerState SequencerState
Definition ScenePrivate.h:1119
virtual RENDERER_API void Destroy() override
Definition SceneOcclusion.cpp:308
void SwapEyeAdaptationBuffers()
Definition ScenePrivate.h:1301
struct FSceneViewState::@1800 BloomFFTKernel
virtual void AddReferencedObjects(FReferenceCollector &Collector) override
Definition ScenePrivate.h:1428
TMap< int32, TRDGUniformBufferRef< FBeerShadowMapUniformBufferParameters > > BeerShadowMapUniformBufferMap
Definition ScenePrivate.h:1020
virtual void SetExposureCompensationCurve(UCurveFloat *NewCurve) override
Definition PostProcessEyeAdaptation.cpp:710
uint32 bIsFrozen
Definition ScenePrivate.h:837
TArray< uint8 > DecompressedVisibilityChunk
Definition ScenePrivate.h:808
FViewMatrices CachedViewMatrices
Definition ScenePrivate.h:846
Definition SceneView.h:1425
FSceneViewStateInterface * State
Definition SceneView.h:1429
FViewMatrices ViewMatrices
Definition SceneView.h:1464
bool bIsViewInfo
Definition SceneView.h:1626
FRHIGPUMask GPUMask
Definition SceneView.h:1507
Definition ScenePrivate.h:2875
float DefaultMaxDistanceFieldOcclusionDistance
Definition ScenePrivate.h:3344
virtual FScene * GetRenderScene() final
Definition ScenePrivate.h:3648
virtual void OnLevelRemovedFromWorld(const FName &LevelRemovedName, UWorld *InWorld, bool bIsLightingScenario) override
Definition RendererScene.cpp:4582
virtual void RemoveExponentialHeightFog(uint64 Id) override
Definition RendererScene.cpp:3684
virtual FSkyAtmosphereRenderSceneInfo * GetSkyAtmosphereSceneInfo() override
Definition ScenePrivate.h:3481
virtual void AddPrecomputedLightVolume(const class FPrecomputedLightVolume *Volume) override
Definition RendererScene.cpp:3057
virtual void UpdateCachedRenderStates(FPrimitiveSceneProxy *SceneProxy) override
Definition RendererScene.cpp:4145
FSceneVelocityData VelocityData
Definition ScenePrivate.h:3321
FCachedPassMeshDrawList CachedDrawLists[EMeshPass::Num]
Definition ScenePrivate.h:2902
FLODSceneTree SceneLODHierarchy
Definition ScenePrivate.h:3334
virtual void ValidateSkyLightRealTimeCapture(FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureRef SceneColorTexture) override
Definition ReflectionEnvironmentRealTimeCapture.cpp:282
TScenePrimitiveArray< FPrimitiveBounds > PrimitiveBounds
Definition ScenePrivate.h:2955
virtual void ReloadNaniteFixedFunctionBins() override
Definition RendererScene.cpp:781
virtual void UpdateInstanceCullDistance(UPrimitiveComponent *Primitive, float StartCullDistance, float EndCullDistance) override
Definition RendererScene.cpp:1752
TArray< FDeferredDecalProxy * > Decals
Definition ScenePrivate.h:3155
virtual void RemovePrimitive(UPrimitiveComponent *Primitive) override
Definition RendererScene.cpp:1987
virtual void AddWindSource(UWindDirectionalSourceComponent *WindComponent) override
Definition RendererScene.cpp:3707
TRefCountPtr< IPooledRenderTarget > CapturedSkyRenderTarget
Definition ScenePrivate.h:3087
virtual void UpdateEarlyZPassMode() override
Definition RendererScene.cpp:4292
virtual void UpdateAllPrimitiveSceneInfos(FRDGBuilder &GraphBuilder, EUpdateAllPrimitiveSceneInfosAsyncOps AsyncOps=EUpdateAllPrimitiveSceneInfosAsyncOps::None) override
Definition RendererScene.cpp:5146
void FlushDirtyRuntimeVirtualTextures()
Definition RendererScene.cpp:3275
virtual void AllocateReflectionCaptures(const TArray< UReflectionCaptureComponent * > &NewCaptures, const TCHAR *CaptureReason, bool bVerifyOnlyCapturing, bool bCapturingForMobile, bool bInsideTick) override
Definition ReflectionEnvironmentCapture.cpp:833
virtual void AddSpeedTreeWind(FVertexFactory *VertexFactory, const UStaticMesh *StaticMesh) override
Definition RendererScene.cpp:3892
virtual void UpdateDecalFadeOutTime(UDecalComponent *Decal) override
Definition RendererScene.cpp:2562
TSparseArray< FStaticMeshBatch * > StaticMeshes
Definition ScenePrivate.h:3251
int32 NumMobileMovableDirectionalLights_RenderThread
Definition ScenePrivate.h:3319
const FReflectionCaptureProxy * FindClosestReflectionCapture(FVector Position) const
Definition RendererScene.cpp:2906
virtual void ReleaseReflectionCubemap(UReflectionCaptureComponent *CaptureComponent) override
Definition RendererScene.cpp:2866
virtual void UpdatePrimitiveInstancesFromCompute(FPrimitiveSceneDesc *Primitive, FGPUSceneWriteDelegate &&DataWriterGPU) override
Definition RendererScene.cpp:1776
FNaniteShadingCommands NaniteShadingCommands[ENaniteMeshPass::Num]
Definition ScenePrivate.h:2913
TArray< TRefCountPtr< IPooledRenderTarget > > PrevAtlasHZBs
Definition ScenePrivate.h:3239
virtual void GetRectLightAtlasSlot(const FRectLightSceneProxy *Proxy, FLightRenderParameters *Out) override
Definition RendererScene.cpp:2740
virtual void RemoveSpeedTreeWind_RenderThread(FVertexFactory *VertexFactory, const UStaticMesh *StaticMesh) override
Definition RendererScene.cpp:3920
virtual void SetPhysicsField(class FPhysicsFieldSceneProxy *PhysicsFieldSceneProxy) override
Definition RendererScene.cpp:2446
virtual void UpdatePlanarReflectionTransform(UPlanarReflectionComponent *Component) override
Definition PlanarReflectionRendering.cpp:672
virtual void StartFrame() override
Definition ScenePrivate.h:3742
virtual const FSkyAtmosphereRenderSceneInfo * GetSkyAtmosphereSceneInfo() const override
Definition ScenePrivate.h:3482
FScenePrimitiveOctree PrimitiveOctree
Definition ScenePrivate.h:3300
FExclusiveDepthStencil::Type CachedDefaultBasePassDepthStencilAccess
Definition ScenePrivate.h:3055
void AddGPUSkinCacheAsyncComputeWait(FRDGBuilder &GraphBuilder) const
Definition RendererScene.cpp:6627
FLightSceneInfo * AtmosphereLights[NUM_ATMOSPHERE_LIGHTS]
Definition ScenePrivate.h:3150
float DynamicIndirectShadowsSelfShadowingIntensity
Definition ScenePrivate.h:3348
FDistanceFieldSceneData DistanceFieldSceneData
Definition ScenePrivate.h:3227
virtual void AllocateAndCaptureFrameSkyEnvMap(FRDGBuilder &GraphBuilder, FSceneRenderer &SceneRenderer, FViewInfo &MainView, bool bShouldRenderSkyAtmosphere, bool bShouldRenderVolumetricCloud, FInstanceCullingManager &InstanceCullingManager, FRDGExternalAccessQueue &ExternalAccessQueue) override
Definition ReflectionEnvironmentRealTimeCapture.cpp:340
virtual void SetFXSystem(class FFXSystemInterface *InFXSystem) override
Definition RendererScene.cpp:711
FORCEINLINE FCachedShadowMapData & GetCachedShadowMapDataRef(int32 LightID, int32 ShadowMapIndex=0)
Definition ScenePrivate.h:3765
void FindClosestReflectionCaptures(FVector Position, const FReflectionCaptureProxy *(&SortedByDistanceOUT)[FPrimitiveSceneInfo::MaxCachedReflectionCaptureProxies]) const
Definition RendererScene.cpp:2975
virtual void GetRelevantLights(UPrimitiveComponent *Primitive, TArray< const ULightComponent * > *RelevantLights) const override
Definition RendererScene.cpp:4085
TArray< class FWindSourceSceneProxy * > WindSources
Definition ScenePrivate.h:3279
FLumenSceneData * GetLumenSceneData(const FViewInfo &View) const
Definition ScenePrivate.h:3532
virtual void UpdatePrimitiveDistanceFieldSceneData_GameThread(UPrimitiveComponent *Primitive) override
Definition RendererScene.cpp:1953
virtual void AddRuntimeVirtualTexture(class URuntimeVirtualTextureComponent *Component) override
Definition RendererScene.cpp:3193
virtual class FSkeletalMeshUpdater * GetSkeletalMeshUpdater() override
Definition ScenePrivate.h:3661
virtual TConstArrayView< FPrimitiveComponentId > GetScenePrimitiveComponentIds() const final
Definition ScenePrivate.h:3728
virtual class FFXSystemInterface * GetFXSystem() override
Definition RendererScene.cpp:719
virtual FVolumetricCloudRenderSceneInfo * GetVolumetricCloudSceneInfo() override
Definition ScenePrivate.h:3506
TExtension & GetExtension()
Definition ScenePrivate.h:3889
void WaitForCacheMeshDrawCommandsTask()
Definition ScenePrivate.h:3840
TArray< FTypeOffsetTableEntry > TypeOffsetTable
Definition ScenePrivate.h:3030
uint32 GetCachedTransmittanceAndMultiScatteringLUTsVersion() const
Definition ScenePrivate.h:3484
virtual void IncrementFrameNumber() override
Definition RendererScene.cpp:7008
virtual void RemoveLocalFogVolume(class FLocalFogVolumeSceneProxy *FogProxy) override
Definition LocalFogVolumeRendering.cpp:272
FVector4f MobileSkyLightRealTimeCaptureIrradianceEnvironmentMap[SKY_IRRADIANCE_ENVIRONMENT_MAP_VEC4_COUNT]
Definition ScenePrivate.h:3141
uint32 PrimitivesAlwaysVisibleOffset
Definition ScenePrivate.h:2946
EDepthDrawingMode EarlyZPassMode
Definition ScenePrivate.h:3046
virtual const FVolumetricCloudRenderSceneInfo * GetVolumetricCloudSceneInfo() const override
Definition ScenePrivate.h:3507
virtual void UpdateStaticDrawLists() override
Definition RendererScene.cpp:4133
virtual void AddHairStrands(FHairStrandsInstance *Proxy) override
Definition RendererScene.cpp:2652
TArray< int32 > PersistentPrimitiveIdToIndexMap
Definition ScenePrivate.h:3009
TRefCountPtr< IPooledRenderTarget > RealTimeReflectionCaptureCamera360APLutTexture
Definition ScenePrivate.h:3084
void LumenInvalidateSurfaceCacheForPrimitive(FPrimitiveSceneInfo *InPrimitive)
Definition LumenScene.cpp:757
FORCEINLINE const FCachedShadowMapData & GetCachedShadowMapDataRef(int32 LightID, int32 ShadowMapIndex=0) const
Definition ScenePrivate.h:3774
virtual void AddDecal(UDecalComponent *Component) override
Definition RendererScene.cpp:2493
class FGPUSkinCache * GPUSkinCache
Definition ScenePrivate.h:3324
FGPUScene GPUScene
Definition ScenePrivate.h:3183
static void GetEarlyZPassMode(ERHIFeatureLevel::Type InFeatureLevel, EDepthDrawingMode &OutZPassMode, bool &bOutEarlyZPassMovable)
Definition RendererScene.cpp:4317
TArray< FLocalFogVolumeSceneProxy * > LocalFogVolumes
Definition ScenePrivate.h:3271
virtual void AddExponentialHeightFog(uint64 Id, const FExponentialHeightFogDynamicState &State) override
Definition RendererScene.cpp:3672
TMap< const UStaticMesh *, struct FSpeedTreeWindComputation * > SpeedTreeWindComputationMap
Definition ScenePrivate.h:3285
void DebugRender(TArrayView< FViewInfo > Views)
Definition RendererScene.cpp:7018
TRefCountPtr< IPooledRenderTarget > ConvolvedSkyRenderTarget[2]
Definition ScenePrivate.h:3090
TMap< FVertexFactory *, const UStaticMesh * > SpeedTreeVertexFactoryMap
Definition ScenePrivate.h:3286
virtual void UpdatePhysicsField(FRDGBuilder &GraphBuilder, FViewInfo &View) override
Definition RendererScene.cpp:2481
virtual bool GetPreviousLocalToWorld(const FPrimitiveSceneInfo *PrimitiveSceneInfo, FMatrix &OutPreviousLocalToWorld) const override
Definition RendererScene.cpp:3325
FLinearColor PathTracingSkylightColor
Definition ScenePrivate.h:3133
const class FPlanarReflectionSceneProxy * FindClosestPlanarReflection(const FBoxSphereBounds &Bounds) const
Definition RendererScene.cpp:2935
bool HasSkyAtmosphere() const
Definition ScenePrivate.h:3572
class FInstanceCullingOcclusionQueryRenderer * InstanceCullingOcclusionQueryRenderer
Definition ScenePrivate.h:3895
FLumenSceneData * DefaultLumenSceneData
Definition ScenePrivate.h:3229
FORCEINLINE int32 GetPrimitiveIndex(const FPersistentPrimitiveIndex &PersistentPrimitiveIndex) const
Definition ScenePrivate.h:3798
virtual void BatchRemovePrimitives(TArrayView< UPrimitiveComponent * > InPrimitives) override
Definition RendererScene.cpp:2059
virtual void UnregisterAnimBank(const TConstArrayView< FAnimBankRecordHandle > Handles) override
Definition RendererScene.cpp:2712
virtual void BatchReleasePrimitives(TArrayView< UPrimitiveComponent * > InPrimitives) override
Definition RendererScene.cpp:2134
virtual void UpdateSceneCaptureContents(class USceneCaptureComponent2D *CaptureComponent, ISceneRenderBuilder &SceneRenderBuilder) override
Definition SceneCaptureRendering.cpp:1078
virtual void AddSparseVolumeTextureViewer(FSparseVolumeTextureViewerSceneProxy *SVTV) override
Definition SparseVolumeTextureViewerSceneProxy.cpp:13
virtual void RemoveReflectionCapture(UReflectionCaptureComponent *Component) override
Definition RendererScene.cpp:2786
TExtension * GetExtensionPtr()
Definition ScenePrivate.h:3885
virtual bool IsEditorScene() const override
Definition ScenePrivate.h:3719
virtual void UpdatePrimitiveSelectedState_RenderThread(const FPrimitiveSceneInfo *PrimitiveSceneInfo, bool bIsSelected) override
Definition RendererScene.cpp:1884
volatile int32 NumUnbuiltReflectionCaptures
Definition ScenePrivate.h:3315
virtual void ProcessAndRenderIlluminanceMeter(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > Views, FRDGTextureRef SceneColorTexture)
Definition IlluminanceMeter.cpp:102
virtual void RemoveDecal(UDecalComponent *Component) override
Definition RendererScene.cpp:2519
virtual void GetDirectionalWindParameters(FVector &OutDirection, float &OutSpeed, float &OutMinGustAmt, float &OutMaxGustAmt) const override
Definition RendererScene.cpp:3858
FVolumetricLightmapSceneData VolumetricLightmapSceneData
Definition ScenePrivate.h:3181
FSceneExtensions SceneExtensions
Definition ScenePrivate.h:3362
FORCEINLINE TArray< FCachedShadowMapData > * GetCachedShadowMapDatas(int32 LightID)
Definition ScenePrivate.h:3760
virtual void RemoveSkyAtmosphere(FSkyAtmosphereSceneProxy *SkyAtmosphereSceneProxy) override
Definition SkyAtmosphereRendering.cpp:612
TQueue< TSharedPtr< FRHIGPUBufferReadback > > MobileSkyLightRealTimeCaptureIrradianceReadBackQueries
Definition ScenePrivate.h:3139
SIZE_T GetSizeBytes() const
Definition RendererScene.cpp:789
class FFXSystemInterface * FXSystem
Definition ScenePrivate.h:2882
virtual void UpdatePlanarReflectionContents(UPlanarReflectionComponent *CaptureComponent, FSceneRenderer &MainSceneRenderer, ISceneRenderBuilder &SceneRenderBuilder) override
Definition PlanarReflectionRendering.cpp:442
virtual void UpdatePrimitivesDrawnInGame_RenderThread(TArrayView< FPrimitiveSceneProxy * > PrimitiveSceneProxies, bool bDrawnInGame) override
Definition RendererScene.cpp:1804
virtual bool RequestGPUSceneUpdate(FPrimitiveSceneInfo &PrimitiveSceneInfo, EPrimitiveDirtyState PrimitiveDirtyState) override
Definition RendererScene.cpp:766
FLumenSceneDataIterator GetLumenSceneDataIterator() const
Definition ScenePrivate.h:3812
TBitArray PrimitivesNeedingStaticMeshUpdate
Definition ScenePrivate.h:3006
virtual void RemovePrecomputedVolumetricLightmap(const class FPrecomputedVolumetricLightmap *Volume) override
Definition RendererScene.cpp:3167
virtual void GetWindParameters_GameThread(const FVector &Position, FVector &OutDirection, float &OutSpeed, float &OutMinGustAmt, float &OutMaxGustAmt) const override
Definition RendererScene.cpp:3823
bool bRuntimeVirtualTexturePrimitiveHideGame
Definition ScenePrivate.h:3310
TBitArray PrimitivesNeedingUniformBufferUpdate
Definition ScenePrivate.h:3007
virtual void GetReflectionCaptureData(UReflectionCaptureComponent *Component, class FReflectionCaptureData &OutCaptureData) override
Definition ReflectionEnvironmentCapture.cpp:1123
FSceneLightOctree LocalShadowCastingLightOctree
Definition ScenePrivate.h:3295
FLightSceneInfo * SimpleDirectionalLight
Definition ScenePrivate.h:3144
FLumenSceneDataMap PerViewOrGPULumenSceneData
Definition ScenePrivate.h:3230
virtual void UpdateDecalTransform(UDecalComponent *Decal) override
Definition RendererScene.cpp:2539
TScenePrimitiveArray< FMatrix > PrimitiveTransforms
Definition ScenePrivate.h:2951
virtual void UpdatePrimitiveInstances(UPrimitiveComponent *Primitive) override
Definition RendererScene.cpp:1757
virtual bool HasAtmosphereLightRequiringLightingBuild() const override
Definition RendererScene.cpp:2413
virtual void InvalidatePathTracedOutput(PathTracing::EInvalidateReason InvalidateReason=PathTracing::EInvalidateReason::Uncategorized) override
Definition RendererScene.cpp:3297
const TExtension * GetExtensionPtr() const
Definition ScenePrivate.h:3887
bool GetForceNoPrecomputedLighting() const
Definition ScenePrivate.h:3807
TArray< FLightSceneInfo *, TInlineAllocator< 4 > > DirectionalLights
Definition ScenePrivate.h:3152
FSpanAllocator PersistentPrimitiveIdAllocator
Definition ScenePrivate.h:3350
LightFunctionAtlas::FLightFunctionAtlasSceneData LightFunctionAtlasSceneData
Definition ScenePrivate.h:3342
int32 GetMaxPersistentPrimitiveIndex() const
Definition ScenePrivate.h:3796
virtual void AddPlanarReflection(class UPlanarReflectionComponent *Component) override
Definition PlanarReflectionRendering.cpp:642
TMap< FName, TArray< FPrimitiveSceneInfo * > > PrimitivesNeedingLevelUpdateNotification
Definition ScenePrivate.h:2999
virtual void RemoveWindSource(UWindDirectionalSourceComponent *WindComponent) override
Definition RendererScene.cpp:3728
virtual bool HasAnyLocalFogVolume() const override
Definition LocalFogVolumeRendering.cpp:284
static FExclusiveDepthStencil::Type GetDefaultBasePassDepthStencilAccess(ERHIFeatureLevel::Type InFeatureLevel)
Definition RendererScene.cpp:4300
virtual void UpdateLightColorAndBrightness(ULightComponent *Light) override
Definition RendererScene.cpp:3505
TArray< FSkyLightSceneProxy * > SkyLightStack
Definition ScenePrivate.h:3136
virtual void BatchUpdateDecals(TArray< FDeferredDecalUpdateParams > &&UpdateParams) override
Definition RendererScene.cpp:2614
virtual void UpdateParameterCollections(const TArray< FMaterialParameterCollectionInstanceResource * > &InParameterCollections) override
Definition RendererScene.cpp:746
volatile int32 NumUncachedStaticLightingInteractions
Definition ScenePrivate.h:3313
uint32 CachedTransmittanceAndMultiScatteringLUTsVersion
Definition ScenePrivate.h:3260
virtual bool HasAnyLights() const override
Definition ScenePrivate.h:3713
TMap< int32, TArray< FCachedShadowMapData > > CachedShadowMaps
Definition ScenePrivate.h:3236
float GlobalDistanceFieldViewDistance
Definition ScenePrivate.h:3346
virtual void InvalidateLumenSurfaceCache_GameThread(UPrimitiveComponent *Component) override
Definition RendererScene.cpp:3308
virtual bool HasAnyExponentialHeightFog() const override
Definition RendererScene.cpp:3702
void SetCachedTransmittanceAndMultiScatteringLUTsVersion(uint32 NewTransmittanceAndMultiScatteringLUTsVersion)
Definition ScenePrivate.h:3488
virtual FPrimitiveSceneInfo * GetPrimitiveSceneInfo(int32 PrimitiveIndex) const final
Definition RendererScene.cpp:1962
TArray< FPrimitiveSceneProxy * > PrimitiveSceneProxies
Definition ScenePrivate.h:2953
void LumenUpdatePrimitive(FPrimitiveSceneInfo *InPrimitive)
Definition LumenScene.cpp:737
FVolumetricCloudRenderSceneInfo * VolumetricCloud
Definition ScenePrivate.h:3266
virtual void ReleasePrimitive(UPrimitiveComponent *Primitive) override
Definition RendererScene.cpp:2090
virtual void BatchAddPrimitives(TArrayView< UPrimitiveComponent * > InPrimitives) override
Definition RendererScene.cpp:1477
virtual void RemoveVolumetricCloud(FVolumetricCloudSceneProxy *VolumetricCloudSceneProxy) override
Definition VolumetricCloudRendering.cpp:596
FHairStrandsSceneData HairStrandsSceneData
Definition ScenePrivate.h:3167
virtual void RemoveSparseVolumeTextureViewer(FSparseVolumeTextureViewerSceneProxy *SVTV) override
Definition SparseVolumeTextureViewerSceneProxy.cpp:25
virtual const TArray< FWindSourceSceneProxy * > & GetWindSources_RenderThread() const override
Definition RendererScene.cpp:3782
TArray< class FPlanarReflectionSceneProxy * > PlanarReflections
Definition ScenePrivate.h:3160
virtual void GetRuntimeVirtualTextureHidePrimitiveMask(uint8 &bHideMaskEditor, uint8 &bHideMaskGame) const override
Definition RendererScene.cpp:3256
virtual TConstArrayView< FPrimitiveSceneProxy * > GetPrimitiveSceneProxies() const final
Definition ScenePrivate.h:3723
virtual void UpdateSpeedTreeWind(double CurrentTime) override
Definition RendererScene.cpp:3944
FLightSceneInfo * MobileDirectionalLights[NUM_LIGHTING_CHANNELS]
Definition ScenePrivate.h:3147
virtual void UpdateSceneSettings(AWorldSettings *WorldSettings) override
Definition RendererScene.cpp:693
virtual bool RequiresHitProxies() const override
Definition RendererScene.cpp:4217
TArray< UWindDirectionalSourceComponent * > WindComponents_GameThread
Definition ScenePrivate.h:3282
FSceneLightSceneInfoUpdateDelegate OnPreLightSceneInfoUpdate
Definition ScenePrivate.h:3907
FString GetFullWorldName() const
Definition ScenePrivate.h:3372
virtual void OnLevelAddedToWorld(const FName &InLevelName, UWorld *InWorld, bool bIsLightingScenario) override
Definition RendererScene.cpp:4563
virtual TArray< FAnimBankRecordHandle > RegisterAnimBank(const TConstArrayView< struct FAnimBankDesc > Descs) override
Definition RendererScene.cpp:2679
virtual void GetLightIESAtlasSlot(const FLightSceneProxy *Proxy, FLightRenderParameters *Out) override
Definition RendererScene.cpp:2731
TRefCountPtr< FRDGPooledBuffer > SkyIrradianceEnvironmentMap
Definition ScenePrivate.h:3078
FNaniteVisibility NaniteVisibility[ENaniteMeshPass::Num]
Definition ScenePrivate.h:2920
TArray< TRefCountPtr< IPooledRenderTarget > > PrevAtlasCompleteHZBs
Definition ScenePrivate.h:3240
virtual void AddLocalFogVolume(class FLocalFogVolumeSceneProxy *FogProxy) override
Definition LocalFogVolumeRendering.cpp:259
TArray< class UPlanarReflectionComponent * > PlanarReflections_GameThread
Definition ScenePrivate.h:3161
virtual void SetPrecomputedVisibility(const FPrecomputedVisibilityHandler *InPrecomputedVisibilityHandler) override
Definition RendererScene.cpp:4107
virtual void RemoveHairStrands(FHairStrandsInstance *Proxy) override
Definition RendererScene.cpp:2661
const UE::Tasks::FTask & GetCacheMeshDrawCommandsTask() const
Definition ScenePrivate.h:3846
DECLARE_MULTICAST_DELEGATE_TwoParams(FSceneLightSceneInfoUpdateDelegate, FRDGBuilder &, const FLightSceneChangeSet &)
TScenePrimitiveArray< FBoxSphereBounds > PrimitiveOcclusionBounds
Definition ScenePrivate.h:2965
virtual void RequestPreloadRuntimeVirtualTexture(class URuntimeVirtualTextureComponent *Component, FBoxSphereBounds const &WorldBounds, int32 Level) override
Definition RendererScene.cpp:3284
FTextureLayout PreshadowCacheLayout
Definition ScenePrivate.h:3248
TArray< FVolumetricCloudSceneProxy * > VolumetricCloudStack
Definition ScenePrivate.h:3269
TMap< FGuid, FUniformBufferRHIRef > ParameterCollections
Definition ScenePrivate.h:3331
TRefCountPtr< IPooledRenderTarget > PathTracingSkylightPdf
Definition ScenePrivate.h:3132
void LumenAddPrimitive(FPrimitiveSceneInfo *InPrimitive)
Definition LumenScene.cpp:699
virtual void AddPrimitive(UPrimitiveComponent *Primitive) override
Definition RendererScene.cpp:1302
TArray< const FPrecomputedLightVolume * > PrecomputedLightVolumes
Definition ScenePrivate.h:3176
virtual void UpdateDecalFadeInTime(UDecalComponent *Decal) override
Definition RendererScene.cpp:2588
FViewSceneChangeSet * ProcessViewChanges(FRDGBuilder &GraphBuilder, TConstArrayView< FViewInfo * > AllViews)
Definition RendererScene.cpp:5159
bool IsSecondAtmosphereLightEnabled()
Definition ScenePrivate.h:3581
TRefCountPtr< IPooledRenderTarget > RealTimeReflectionCaptureSkyAtmosphereViewLutTexture
Definition ScenePrivate.h:3081
virtual void AddInvisibleLight(ULightComponent *Light) override
Definition RendererScene.cpp:2332
bool ShouldRenderSkylightInBasePass(bool bIsTranslucent) const
Definition RendererScene.cpp:6597
virtual void DumpUnbuiltLightInteractions(FOutputDevice &Ar) const override
Definition RendererScene.cpp:4364
virtual void UpdateReflectionCaptureTransform(UReflectionCaptureComponent *Component) override
Definition RendererScene.cpp:2829
void ResetAtmosphereLightsProperties()
Definition SkyAtmosphereRendering.cpp:640
virtual void AddLight(ULightComponent *Light) override
Definition RendererScene.cpp:2295
int32 ConvolvedSkyRenderTargetReadyIndex
Definition ScenePrivate.h:3093
TMap< FPrimitiveComponentId, FAttachmentGroupSceneInfo > AttachmentGroups
Definition ScenePrivate.h:3289
void UpdatePrimitiveTransform_RenderThread(FPrimitiveSceneProxy *PrimitiveSceneProxy, const FBoxSphereBounds &WorldBounds, const FBoxSphereBounds &LocalBounds, const FMatrix &LocalToWorld, const FVector &OwnerPosition, const TOptional< FTransform > &PreviousTransform)
Definition RendererScene.cpp:1525
bool bRequiresHitProxies
Definition ScenePrivate.h:3303
virtual void OnWorldCleanup() override
Definition RendererScene.cpp:803
const UE::Tasks::FTask & GetCreateLightPrimitiveInteractionsTask() const
Definition ScenePrivate.h:3823
FSubstrateSceneData SubstrateSceneData
Definition ScenePrivate.h:3340
const class FPlanarReflectionSceneProxy * GetForwardPassGlobalPlanarReflection() const
Definition RendererScene.cpp:2963
virtual void UpdateWindSource(UWindDirectionalSourceComponent *WindComponent) override
Definition RendererScene.cpp:3749
FORCEINLINE const FCachedShadowMapData * GetCachedShadowMapData(int32 LightID, int32 ShadowMapIndex=0) const
Definition ScenePrivate.h:3783
virtual ~FScene()
Definition RendererScene.cpp:1226
TArray< TRefCountPtr< FProjectedShadowInfo > > CachedPreshadows
Definition ScenePrivate.h:3245
TRefCountPtr< IPooledRenderTarget > PathTracingSkylightTexture
Definition ScenePrivate.h:3131
TArray< FString > OverflowingDynamicShadowedLights
Definition ScenePrivate.h:3043
FOITSceneData OITSceneData
Definition ScenePrivate.h:3170
TRefCountPtr< IPooledRenderTarget > PreShadowCacheDepthZ
Definition ScenePrivate.h:3242
FIndirectLightingCache IndirectLightingCache
Definition ScenePrivate.h:3179
UWorld * World
Definition ScenePrivate.h:2879
virtual void UpdatePrimitiveVelocityState_RenderThread(FPrimitiveSceneInfo *PrimitiveSceneInfo, bool bIsBeingMoved) override
Definition RendererScene.cpp:4691
FReflectionEnvironmentSceneData ReflectionSceneData
Definition ScenePrivate.h:3164
TArray< FCustomRenderPassRendererInput > CustomRenderPassRendererInputs
Definition ScenePrivate.h:3365
virtual void UpdateSkyCaptureContents(const USkyLightComponent *CaptureComponent, bool bCaptureEmissiveOnly, UTextureCube *SourceCubemap, FTexture *OutProcessedTexture, float &OutAverageBrightness, FSHVectorRGB3 &OutIrradianceEnvironmentMap, TArray< FFloat16Color > *OutRadianceMap, FLinearColor *SpecifiedCubemapColorScale) override
Definition ReflectionEnvironmentCapture.cpp:1740
void WaitForCreateLightPrimitiveInteractionsTask()
Definition ScenePrivate.h:3817
virtual class FGPUSkinCache * GetGPUSkinCache() override
Definition ScenePrivate.h:3656
bool RequiresDebugMaterials() const
Definition ScenePrivate.h:3927
TArray< FPrimitiveSceneInfo * > DynamicIndirectCasterPrimitives
Definition ScenePrivate.h:3158
virtual bool AddCustomRenderPass(const FSceneViewFamily *ViewFamily, const FCustomRenderPassRendererInput &CustomRenderPassInput)
Definition RendererScene.cpp:7028
FLightSceneInfoCompactSparseArray InvisibleLights
Definition ScenePrivate.h:3040
struct FScene::FRealTimeSlicedReflectionCapture RealTimeSlicedReflectionCapture
TSparseArray< int32 > PersistentViewStateUniqueIDs
Definition ScenePrivate.h:2891
void DumpMeshDrawCommandMemoryStats()
Definition RendererScene.cpp:894
const UE::Tasks::FTask & GetGPUSkinCacheTask() const
Definition ScenePrivate.h:3833
TArray< FPrimitiveFlagsCompact > PrimitiveFlagsCompact
Definition ScenePrivate.h:2957
virtual void RemoveRuntimeVirtualTexture(class URuntimeVirtualTextureComponent *Component) override
Definition RendererScene.cpp:3235
virtual void ResetPhysicsField() override
Definition RendererScene.cpp:2470
virtual void UpdateLightTransform(ULightComponent *Light) override
Definition RendererScene.cpp:3500
int32 NumMobileStaticAndCSMLights_RenderThread
Definition ScenePrivate.h:3318
int32 GetMaxPersistentViewId() const
Definition ScenePrivate.h:2896
virtual bool HasPrecomputedVolumetricLightmap_RenderThread() const override
Definition RendererScene.cpp:3145
virtual void GetComputeTaskWorkers(TArray< class IComputeTaskWorker * > &OutWorkers) const override
Definition ScenePrivate.h:3666
int64 GetCachedWholeSceneShadowMapsSize() const
Definition RendererScene.cpp:3037
virtual void AddPrecomputedVolumetricLightmap(const class FPrecomputedVolumetricLightmap *Volume, bool bIsPersistentLevel) override
Definition RendererScene.cpp:3156
TArray< class IComputeTaskWorker * > ComputeTaskWorkers
Definition ScenePrivate.h:3328
virtual void InvalidateRuntimeVirtualTexture(class URuntimeVirtualTextureComponent *Component, FBoxSphereBounds const &WorldBounds, EVTInvalidatePriority InvalidatePriority) override
Definition RendererScene.cpp:3262
const FPrecomputedVisibilityHandler * PrecomputedVisibilityHandler
Definition ScenePrivate.h:3292
bool bEarlyZPassMovable
Definition ScenePrivate.h:3049
void LumenRemovePrimitive(FPrimitiveSceneInfo *InPrimitive, int32 PrimitiveIndex)
Definition LumenScene.cpp:778
const TExtension & GetExtension() const
Definition ScenePrivate.h:3891
virtual void ResetReflectionCaptures(bool bOnlyIfOOM) override
Definition ReflectionEnvironmentCapture.cpp:1059
TArray< uint32 > PrimitiveOctreeIndex
Definition ScenePrivate.h:2961
FStateBucketMap CachedMeshDrawCommandStateBuckets[EMeshPass::Num]
Definition ScenePrivate.h:2901
bool bCachedSkyLightRealTimeCapture
Definition ScenePrivate.h:3061
FVirtualShadowMapArrayCacheManager * GetVirtualShadowMapCache()
Definition RendererScene.cpp:7058
TArray< FPrimitiveVisibilityId > PrimitiveVisibilityIds
Definition ScenePrivate.h:2959
virtual void SetSkyLight(FSkyLightSceneProxy *Light) override
Definition RendererScene.cpp:2362
TMap< FPrimitiveComponentId, FPrimitiveSceneInfo * > LandscapeToNaniteProxyMap
Definition ScenePrivate.h:3233
TArray< FPrimitiveComponentId > PrimitiveComponentIds
Definition ScenePrivate.h:2967
FExclusiveDepthStencil::Type DefaultBasePassDepthStencilAccess
Definition ScenePrivate.h:3052
bool CanSampleSkyLightRealTimeCaptureData() const
Definition RendererScene.cpp:5153
virtual void RemovePrecomputedLightVolume(const class FPrecomputedLightVolume *Volume) override
Definition RendererScene.cpp:3069
TSparseArray< FRuntimeVirtualTextureSceneProxy * > RuntimeVirtualTextures
Definition ScenePrivate.h:3337
FSkyAtmosphereRenderSceneInfo * SkyAtmosphere
Definition ScenePrivate.h:3257
virtual void UpdateLightProxy(ULightComponent *Light, TFunction< void(FLightSceneProxy *)> &&Func) override
Definition RendererScene.cpp:3513
virtual void ApplyWorldOffset(const FVector &InOffset) override
Definition RendererScene.cpp:4432
bool bCachedShouldRenderSkylightInBasePass
Definition ScenePrivate.h:3058
bool bScenesPrimitivesNeedStaticMeshElementUpdate
Definition ScenePrivate.h:3064
FNaniteRasterPipelines NaniteRasterPipelines[ENaniteMeshPass::Num]
Definition ScenePrivate.h:2916
virtual void GetPrimitiveUniformShaderParameters_RenderThread(const FPrimitiveSceneInfo *PrimitiveSceneInfo, bool &bHasPrecomputedVolumetricLightmap, FMatrix &PreviousLocalToWorld, int32 &SingleCaptureIndex, bool &bOutputVelocity) const override
Definition RendererScene.cpp:3360
virtual void UpdateCustomPrimitiveData(UPrimitiveComponent *Primitive) override
Definition RendererScene.cpp:1938
virtual const FScene * GetRenderScene() const final
Definition ScenePrivate.h:3649
bool HasVolumetricCloud() const
Definition ScenePrivate.h:3576
TArray< int32 > DirectionalShadowCastingLightIDs
Definition ScenePrivate.h:3297
class FSkeletalMeshUpdater * SkeletalMeshUpdater
Definition ScenePrivate.h:3325
TArray< FSceneViewState * > ViewStates
Definition ScenePrivate.h:2885
virtual void DisableSkyLight(FSkyLightSceneProxy *Light) override
Definition RendererScene.cpp:2382
virtual void AddReflectionCapture(UReflectionCaptureComponent *Component) override
Definition RendererScene.cpp:2752
FLightSceneInfoCompactSparseArray Lights
Definition ScenePrivate.h:3034
virtual void UpdatePrimitiveTransform(UPrimitiveComponent *Primitive) override
Definition RendererScene.cpp:1556
void GetRelevantLights_RenderThread(const FPrimitiveSceneProxy *PrimitiveSceneProxy, TArray< const FLightSceneProxy * > &OutRelevantLights) const
Definition RendererScene.cpp:4042
virtual void RemoveLight(ULightComponent *Light) override
Definition RendererScene.cpp:3631
virtual FRHIUniformBuffer * GetSpeedTreeUniformBuffer(const FVertexFactory *VertexFactory) const override
Definition RendererScene.cpp:4016
bool bRuntimeVirtualTexturePrimitiveHideEditor
Definition ScenePrivate.h:3309
virtual void RemovePlanarReflection(UPlanarReflectionComponent *Component) override
Definition PlanarReflectionRendering.cpp:657
TArray< FSparseVolumeTextureViewerSceneProxy * > SparseVolumeTextureViewers
Definition ScenePrivate.h:3273
const UE::Tasks::FTask & GetGPUSkinUpdateTask() const
Definition ScenePrivate.h:3828
FSkyLightSceneProxy * SkyLight
Definition ScenePrivate.h:3075
FSceneLightSceneInfoUpdateDelegate OnPostLightSceneInfoUpdate
Definition ScenePrivate.h:3913
bool bIsEditorScene
Definition ScenePrivate.h:3306
virtual void ShowPhysicsField() override
Definition RendererScene.cpp:2458
virtual void AddVolumetricCloud(FVolumetricCloudSceneProxy *VolumetricCloudSceneProxy) override
Definition VolumetricCloudRendering.cpp:577
const UE::Tasks::FTask & GetCacheNaniteMaterialBinsTask() const
Definition ScenePrivate.h:3857
TArray< FPrimitiveSceneInfo * > Primitives
Definition ScenePrivate.h:2949
virtual uint32 GetFrameNumber() const override
Definition RendererScene.cpp:6996
virtual bool HasSkyLightRequiringLightingBuild() const override
Definition RendererScene.cpp:2408
FLumenSceneData * GetLumenSceneData(const FSceneView &View) const
Definition ScenePrivate.h:3543
virtual void RefreshNaniteRasterBins(FPrimitiveSceneInfo &PrimitiveSceneInfo) override
Definition RendererScene.cpp:776
FRHIUniformBuffer * GetParameterCollectionBuffer(const FGuid &InId) const
Definition ScenePrivate.h:3696
TAtomic< uint32 > PathTracingInvalidationCounter
Definition ScenePrivate.h:3067
virtual void AddSkyAtmosphere(FSkyAtmosphereSceneProxy *SkyAtmosphereSceneProxy, bool bStaticLightingBuilt) override
Definition SkyAtmosphereRendering.cpp:588
TArray< FSkyAtmosphereSceneProxy * > SkyAtmosphereStack
Definition ScenePrivate.h:3263
FLumenSceneData * FindLumenSceneData(uint32 ViewKey, uint32 GPUIndex) const
Definition RendererScene.cpp:724
void WaitForCacheNaniteMaterialBinsTask()
Definition ScenePrivate.h:3851
TArray< uint8 > PrimitiveOcclusionFlags
Definition ScenePrivate.h:2963
FPersistentUniformBuffers UniformBuffers
Definition ScenePrivate.h:2898
virtual void UpdatePrimitiveDrawDistance(UPrimitiveComponent *Primitive, float MinDrawDistance, float MaxDrawDistance, float VirtualTextureMaxDrawDistance) override
Definition RendererScene.cpp:1747
class FPhysicsFieldSceneProxy * PhysicsField
Definition ScenePrivate.h:3276
uint32 GetFrameNumberRenderThread() const
Definition ScenePrivate.h:3754
virtual void GetWindParameters(const FVector &Position, FVector &OutDirection, float &OutSpeed, float &OutMinGustAmt, float &OutMaxGustAmt) const override
Definition RendererScene.cpp:3788
virtual void Release() override
Definition RendererScene.cpp:4222
virtual UWorld * GetWorld() const override
Definition ScenePrivate.h:3615
FNaniteShadingPipelines NaniteShadingPipelines[ENaniteMeshPass::Num]
Definition ScenePrivate.h:2917
virtual void UpdatePrimitiveAttachment(UPrimitiveComponent *Primitive) override
Definition RendererScene.cpp:1912
virtual void UpdatePrimitiveOcclusionBoundsSlack(UPrimitiveComponent *Primitive, float NewSlack) override
Definition RendererScene.cpp:1742
virtual bool RequestUniformBufferUpdate(FPrimitiveSceneInfo &PrimitiveSceneInfo) override
Definition RendererScene.cpp:771
TArray< FExponentialHeightFogSceneInfo > ExponentialFogs
Definition ScenePrivate.h:3254
Definition SetUtilities.h:95
Definition SceneRendering.h:1841
void Release()
Definition SceneRendering.h:1893
Definition SkeletalMeshUpdater.h:398
Definition SkyAtmosphereRendering.h:138
Definition SkyAtmosphereSceneProxy.h:16
Definition SkyLightSceneProxy.h:17
Definition SpanAllocator.h:15
int32 GetMaxSize() const
Definition SpanAllocator.h:80
Definition SparseVolumeTextureViewerSceneProxy.h:22
Definition StaticMeshBatch.h:16
Definition StochasticLightingViewState.h:8
Definition VolumetricRenderTargetViewStateData.h:138
Definition TextureLayout3d.h:16
Definition TextureLayout.h:24
Definition RenderResource.h:354
Definition RefCounting.h:283
Definition TranslucentLightingViewState.h:11
Definition IndirectLightingCache.cpp:390
Definition VertexFactory.h:661
Definition SceneRendering.h:1132
FLumenSceneData * ViewLumenSceneData
Definition SceneRendering.h:1533
FSceneViewState * ViewState
Definition SceneRendering.h:1143
Definition VirtualShadowMapCacheManager.h:259
Definition VolumetricCloudRendering.h:85
Definition VolumetricCloudProxy.h:21
Definition ScenePrivate.h:1833
FVector4f IndirectLightingSHCoefficients2
Definition ScenePrivate.h:1837
FVector4f IndirectLightingSHCoefficients0[3]
Definition ScenePrivate.h:1835
uint32 LastUsedSceneFrameNumber
Definition ScenePrivate.h:1841
FVector4f IndirectLightingSHCoefficients1[3]
Definition ScenePrivate.h:1836
FVector4f IndirectLightingSHSingleCoefficient
Definition ScenePrivate.h:1838
float DirectionalLightShadowing
Definition ScenePrivate.h:1840
FVector4f PointSkyBentNormal
Definition ScenePrivate.h:1839
Definition ScenePrivate.h:1845
FPrecomputedVolumetricLightmapData GlobalVolumetricLightmapData
Definition ScenePrivate.h:1861
void AddLevelVolume(const class FPrecomputedVolumetricLightmap *InVolume, EShadingPath ShadingPath, bool bIsPersistentLevel)
Definition RendererScene.cpp:3081
TMap< FVector, FVolumetricLightmapInterpolation > CPUInterpolationCache
Definition ScenePrivate.h:1859
FVolumetricLightmapSceneData(FScene *InScene)
Definition ScenePrivate.h:1848
void RemoveLevelVolume(const class FPrecomputedVolumetricLightmap *InVolume)
Definition RendererScene.cpp:3096
bool HasData() const
Definition RendererScene.cpp:3122
const FPrecomputedVolumetricLightmap * GetLevelVolumetricLightmap() const
Definition RendererScene.cpp:3111
Definition VolumetricRenderTargetViewStateData.h:17
FRDGTextureRef GetDstVolumetricReconstructRT(FRDGBuilder &GraphBuilder)
Definition VolumetricRenderTarget.cpp:439
FVector2f GetDstVolumetricReconstructUVScale() const
Definition VolumetricRenderTarget.cpp:513
FVector2f GetDstVolumetricReconstructUVMax() const
Definition VolumetricRenderTarget.cpp:519
Definition SceneManagement.h:1047
Definition SceneRenderBuilderInterface.h:52
Definition Renderer.Build.cs:6
Definition ContainerAllocationPolicies.h:1392
Definition ArrayView.h:139
Definition Array.h:670
SizeType Remove(const ElementType &Item)
Definition Array.h:3091
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
UE_FORCEINLINE_HINT SizeType AddUnique(ElementType &&Item)
Definition Array.h:2993
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition Atomic.h:538
UE_FORCEINLINE_HINT int32 Num() const
Definition BitArray.h:1466
UE_FORCEINLINE_HINT bool IsValidIndex(int32 InIndex) const
Definition BitArray.h:1450
FORCENOINLINE void SetRange(int32 Index, int32 NumBitsToSet, bool Value)
Definition BitArray.h:887
Definition AndroidPlatformMisc.h:14
Definition RenderResource.h:543
Definition UnrealString.h.inl:34
Definition Queue.h:48
Definition RenderGraphResources.h:251
Definition RefCounting.h:454
UE_FORCEINLINE_HINT ReferencedType * GetReference() const
Definition RefCounting.h:584
UE_FORCEINLINE_HINT bool IsValid() const
Definition RefCounting.h:594
UE_FORCEINLINE_HINT void SafeRelease()
Definition RefCounting.h:599
Definition ScenePrivateBase.h:55
Definition SceneUpdateCommandQueue.h:28
Definition ContainerAllocationPolicies.h:894
int32 GetMaxIndex() const
Definition SparseArray.h:460
Definition SparseArray.h:524
Definition UniformBuffer.h:29
void SetContents(FRHICommandListBase &RHICmdList, const FDistanceCullFadeUniformShaderParameters &NewContents)
Definition UniformBuffer.h:49
Definition UniquePtr.h:107
Definition CurveFloat.h:31
Definition Task.h:236
bool Wait(FTimespan Timeout) const
Definition Task.h:76
Definition InstancedStaticMeshComponent.h:158
Definition MaterialInstanceDynamic.h:15
Definition MaterialInterface.h:296
Definition ReflectionCaptureComponent.h:30
Definition RuntimeVirtualTextureComponent.h:41
Definition StaticMesh.h:593
Definition TextureCube.h:15
Definition WindDirectionalSourceComponent.h:24
Definition World.h:918
int32 RemoveIf(RangeType &Range, Predicate Pred)
Definition RemoveIf.h:21
Definition DiaphragmDOF.cpp:698
@ Num
Definition MeshPassProcessor.h:86
@ Num
Definition PrimitiveSceneInfo.h:249
Definition ScenePrivate.h:2484
Type
Definition ScenePrivate.h:2486
@ HasSubprimitiveQueries
Definition ScenePrivate.h:2496
@ IsForceHidden
Definition ScenePrivate.h:2498
@ CanBeOccluded
Definition ScenePrivate.h:2490
@ AllowApproximateOcclusion
Definition ScenePrivate.h:2492
@ HasPrecomputedVisibility
Definition ScenePrivate.h:2494
@ None
Definition ScenePrivate.h:2488
Type
Definition PawnAction_Move.h:11
Type
Definition RHIFeatureLevel.h:20
const TCHAR * Name
Definition OodleDataCompression.cpp:30
const int32 MaxClipmaps
Definition GlobalDistanceFieldConstants.h:10
Definition SkinnedMeshComponent.h:50
int16 CoarseMeshStreamingHandle
Definition PrimitiveSceneProxy.h:55
EInvalidateReason
Definition PathTracingOutputInvalidateReason.h:8
int32 FGeometryGroupHandle
Definition SceneManagement.h:74
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition SetUtilities.h:23
TCallTraits< FDistanceFieldAssetState >::ParamType ElementInitType
Definition SetUtilities.h:26
TCallTraits< const FDistanceFieldVolumeData * >::ParamType KeyInitType
Definition SetUtilities.h:25
static RHI_API const FClearValueBinding Transparent
Definition RHIResources.h:362
Definition SceneTypes.h:30
Definition DoubleFloat.h:75
Definition DistanceFieldStreaming.cpp:515
Definition DistanceFieldStreaming.cpp:492
Definition ExponentialHeightFogStateStream.h:30
ETextureCreateFlags CombineLUTs
Definition SceneRendering.h:2989
double GetRealTimeSeconds() const
Definition GameTime.h:35
Definition GlintShadingLUTs.h:15
Definition ScenePrivate.h:634
uint32 ReadbackBuffersNumPending
Definition ScenePrivate.h:643
FGlobalDistanceFieldStreamingReadback()
Definition ScenePrivate.h:635
uint32 MaxPendingStreamingReadbackBuffers
Definition ScenePrivate.h:641
uint32 ReadbackBuffersWriteIndex
Definition ScenePrivate.h:642
TArray< TUniquePtr< FRHIGPUBufferReadback > > PendingStreamingReadbackBuffers
Definition ScenePrivate.h:640
Definition GlobalRenderResources.h:195
Definition Guid.h:109
Definition ScenePrivate.h:572
FHLODSceneNodeVisibilityState()
Definition ScenePrivate.h:573
uint16 UpdateCount
Definition ScenePrivate.h:581
uint16 bIsFading
Definition ScenePrivate.h:586
uint16 bIsVisible
Definition ScenePrivate.h:585
uint16 bWasVisible
Definition ScenePrivate.h:584
Definition HairStrandsInterface.h:216
Definition HairStrandsData.h:456
Definition HairStrandsInterface.h:435
Definition ScenePrivate.h:2290
FGraphEventRef TaskRef
Definition ScenePrivate.h:2291
TMap< FIntVector, FBlockUpdateInfo > OutBlocksToUpdate
Definition ScenePrivate.h:2292
TArray< FIndirectLightingCacheAllocation * > OutTransitionsOverTimeToUpdate
Definition ScenePrivate.h:2293
TArray< FPrimitiveSceneInfo * > OutPrimitivesToUpdateStaticMeshes
Definition ScenePrivate.h:2294
Definition PrimitiveSceneDesc.h:112
Definition ScenePrivate.h:2622
void AddChild(FPrimitiveSceneInfo *NewChild)
Definition ScenePrivate.h:2634
FLODSceneNode()
Definition ScenePrivate.h:2629
TArray< FPrimitiveSceneInfo * > ChildrenSceneInfos
Definition ScenePrivate.h:2624
FPrimitiveSceneInfo * SceneInfo
Definition ScenePrivate.h:2627
void RemoveChild(FPrimitiveSceneInfo *ChildToDelete)
Definition ScenePrivate.h:2642
Definition SceneManagement.h:1192
Definition ScenePrivate.h:2850
TConstArrayView< int32 > RemovedLightIds
Definition ScenePrivate.h:2852
TConstArrayView< int32 > AddedLightIds
Definition ScenePrivate.h:2854
FSceneLightInfoUpdates & SceneLightInfoUpdates
Definition ScenePrivate.h:2855
int32 PostUpdateMaxIndex
Definition ScenePrivate.h:2859
const TBitArray< SceneRenderingAllocator > & RemovedLightsMask
Definition ScenePrivate.h:2857
int32 PreUpdateMaxIndex
Definition ScenePrivate.h:2858
Definition Color.h:48
Definition ScenePrivate.h:2776
uint32 ViewUniqueId
Definition ScenePrivate.h:2777
friend FORCEINLINE uint32 GetTypeHash(const FLumenSceneDataKey &Key)
Definition ScenePrivate.h:2785
uint32 GPUIndex
Definition ScenePrivate.h:2778
friend FORCEINLINE bool operator==(const FLumenSceneDataKey &A, const FLumenSceneDataKey &B)
Definition ScenePrivate.h:2780
static constexpr UE_FORCEINLINE_HINT bool IsPowerOfTwo(T Value)
Definition UnrealMathUtility.h:519
Definition NaniteShared.h:936
Definition OIT.h:65
Definition ScenePrivate.h:647
TArray< int32 > DeferredUpdatesForMeshSDFStreaming[GDF_Num]
Definition ScenePrivate.h:650
int32 UpdateIndex
Definition ScenePrivate.h:658
FGlobalDistanceFieldStreamingReadback StreamingReadback[GDF_Num]
Definition ScenePrivate.h:666
FGlobalDistanceFieldClipmapState ClipmapState[GlobalDistanceField::MaxClipmaps]
Definition ScenePrivate.h:657
bool bFirstFrame
Definition ScenePrivate.h:653
TArray< int32 > DeferredUpdates[GDF_Num]
Definition ScenePrivate.h:649
TRefCountPtr< IPooledRenderTarget > MipTexture
Definition ScenePrivate.h:675
TRefCountPtr< FRDGPooledBuffer > PageObjectGridBuffer
Definition ScenePrivate.h:672
bool bInitializedOrigins
Definition ScenePrivate.h:655
TRefCountPtr< IPooledRenderTarget > CoverageAtlasTexture
Definition ScenePrivate.h:671
bool bUpdateViewOrigin
Definition ScenePrivate.h:660
TRefCountPtr< FRDGPooledBuffer > PageFreeListBuffer
Definition ScenePrivate.h:669
TRefCountPtr< IPooledRenderTarget > PageTableCombinedTexture
Definition ScenePrivate.h:673
FVector CameraVelocityOffset
Definition ScenePrivate.h:659
int32 UpdateFrame
Definition ScenePrivate.h:652
FVector LastViewOrigin
Definition ScenePrivate.h:661
TRefCountPtr< FRDGPooledBuffer > PageFreeListAllocatorBuffer
Definition ScenePrivate.h:668
TRefCountPtr< IPooledRenderTarget > PageAtlasTexture
Definition ScenePrivate.h:670
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:362
TRefCountPtr< IPooledRenderTarget > PageTableLayerTextures[GDF_Num]
Definition ScenePrivate.h:674
bool bPendingReset
Definition ScenePrivate.h:656
Definition MeshPassProcessor.h:1559
int32 Index
Definition MeshPassProcessor.h:1561
bool IsValid() const
Definition MeshPassProcessor.h:1560
Definition ScenePrivate.h:609
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:93
TRefCountPtr< IPooledRenderTarget > GetCurrentCameraAerialPerspectiveVolume()
Definition RendererScene.cpp:282
FPersistentSkyAtmosphereData()
Definition RendererScene.cpp:241
void InitialiseOrNextFrame(ERHIFeatureLevel::Type FeatureLevel, FPooledRenderTargetDesc &AerialPerspectiveDesc, FRHICommandListImmediate &RHICmdList, bool bSeparatedAtmosphereMieRayLeigh)
Definition RendererScene.cpp:250
TRefCountPtr< IPooledRenderTarget > GetCurrentCameraAerialPerspectiveVolumeMieOnly()
Definition RendererScene.cpp:287
TRefCountPtr< IPooledRenderTarget > GetCurrentCameraAerialPerspectiveVolumeRayOnly()
Definition RendererScene.cpp:292
Definition RendererInterface.h:81
static FPooledRenderTargetDesc Create2DDesc(FIntPoint InExtent, EPixelFormat InFormat, const FClearValueBinding &InClearValue, ETextureCreateFlags InFlags, ETextureCreateFlags InTargetableFlags, bool bInForceSeparateTargetAndShaderResource, uint8 InNumMips=1, bool InAutowritable=true, bool InCreateRTWriteMask=false, bool InCreateFmask=false)
Definition RendererInterface.h:95
const TCHAR * DebugName
Definition RendererInterface.h:410
ETextureCreateFlags Flags
Definition RendererInterface.h:414
FIntPoint Extent
Definition RendererInterface.h:420
uint16 Depth
Definition RendererInterface.h:422
Definition SceneRendering.h:975
Definition ScenePrivate.h:2459
float MinDrawDistance
Definition ScenePrivate.h:2462
float MaxDrawDistance
Definition ScenePrivate.h:2464
FBoxSphereBounds BoxSphereBounds
Definition ScenePrivate.h:2460
float MaxCullDistance
Definition ScenePrivate.h:2466
Definition ScenePrivate.h:299
FPrimitiveOcclusionHistoryKey KeyInitType
Definition ScenePrivate.h:300
static bool Matches(KeyInitType A, KeyInitType B)
Definition ScenePrivate.h:307
static KeyInitType GetSetKey(const FPrimitiveOcclusionHistory &Element)
Definition ScenePrivate.h:302
static uint32 GetKeyHash(KeyInitType Key)
Definition ScenePrivate.h:312
Definition ScenePrivate.h:271
FPrimitiveOcclusionHistoryKey(FPrimitiveComponentId InPrimitiveId, int32 InCustomIndex)
Definition ScenePrivate.h:280
int32 CustomIndex
Definition ScenePrivate.h:273
FPrimitiveComponentId PrimitiveId
Definition ScenePrivate.h:272
FPrimitiveOcclusionHistoryKey(const FPrimitiveOcclusionHistory &Element)
Definition ScenePrivate.h:275
Definition PrimitiveSceneDesc.h:26
Definition ScenePrivate.h:2473
int32 ByteIndex
Definition ScenePrivate.h:2475
uint8 BitMask
Definition ScenePrivate.h:2477
Definition MultiGPU.h:33
constexpr uint32 GetFirstIndex() const
Definition MultiGPU.h:115
Definition RandomStream.h:20
Definition RHIUtilities.h:361
Definition ScenePrivate.h:1710
FCaptureComponentSceneState SceneState
Definition ScenePrivate.h:1712
int32 RefCount
Definition ScenePrivate.h:1711
Definition ScenePrivate.h:1717
TMap< FGuid, FReflectionCaptureCacheEntry > CaptureData
Definition ScenePrivate.h:1748
void RegisterComponentMapBuildDataId(const UReflectionCaptureComponent *Component)
Definition ReflectionEnvironment.cpp:368
int32 GetKeys(TArray< FGuid > &OutKeys) const
Definition ReflectionEnvironment.cpp:304
const FCaptureComponentSceneState & FindChecked(const UReflectionCaptureComponent *Component) const
Definition ReflectionEnvironment.cpp:249
void UnregisterComponentMapBuildDataId(const UReflectionCaptureComponent *Component)
Definition ReflectionEnvironment.cpp:411
void Empty()
Definition ReflectionEnvironment.cpp:314
FCaptureComponentSceneState * AddReference(const UReflectionCaptureComponent *Component)
Definition ReflectionEnvironment.cpp:284
TMap< const UReflectionCaptureComponent *, FGuid > RegisteredComponentMapBuildDataIds
Definition ScenePrivate.h:1746
bool RemapRegisteredComponentMapBuildDataId(const UReflectionCaptureComponent *Component)
Definition ReflectionEnvironment.cpp:373
Definition ScenePrivate.h:1684
FMatrix44f BoxTransform
Definition ScenePrivate.h:1686
FVector4f CaptureOffsetAndAverageBrightness
Definition ScenePrivate.h:1692
uint32 Guid
Definition ScenePrivate.h:1687
FReflectionCaptureProxy * CaptureProxy
Definition ScenePrivate.h:1693
FVector4f BoxScales
Definition ScenePrivate.h:1691
int32 CubemapIndex
Definition ScenePrivate.h:1688
FVector4f CaptureProperties
Definition ScenePrivate.h:1690
bool operator<(const FReflectionCaptureSortData &Other) const
Definition ScenePrivate.h:1695
float Radius
Definition ScenePrivate.h:1689
FDFVector3 Position
Definition ScenePrivate.h:1685
Definition RenderTransform.h:272
FBox ToBox() const
Definition RenderTransform.h:301
Definition SceneRendering.h:2692
Definition SceneViewStateSystemMemory.h:22
Definition ScenePrivate.h:1607
TSet< FPrimitiveOcclusionHistory, FPrimitiveOcclusionHistoryKeyFuncs > PrimitiveOcclusionHistorySet
Definition ScenePrivate.h:1609
TArray< FRHIRenderQuery *, TInlineAllocator< FOcclusionQueryHelpers::MaxBufferedOcclusionFrames > > LastOcclusionQueryArray
Definition ScenePrivate.h:1612
uint32 NumRequestedQueries
Definition ScenePrivate.h:1615
Definition ScenePrivate.h:3015
bool operator==(const FPrimitiveSceneProxyType &) const =default
SIZE_T ProxyTypeHash
Definition ScenePrivate.h:3019
bool bIsAlwaysVisible
Definition ScenePrivate.h:3020
Definition ScenePrivate.h:2934
TArray< FPrimitiveUpdateParams > Params
Definition ScenePrivate.h:2936
Definition ScenePrivate.h:2923
TOptional< FTransform > PreviousTransform
Definition ScenePrivate.h:2929
FScene * Scene
Definition ScenePrivate.h:2924
FBoxSphereBounds WorldBounds
Definition ScenePrivate.h:2926
FVector AttachmentRootPosition
Definition ScenePrivate.h:2930
FBoxSphereBounds LocalBounds
Definition ScenePrivate.h:2927
FPrimitiveSceneProxy * PrimitiveSceneProxy
Definition ScenePrivate.h:2925
FMatrix LocalToWorld
Definition ScenePrivate.h:2928
Definition ScenePrivate.h:3099
uint32 GpusHandledThisFrame
Definition ScenePrivate.h:3118
int32 StateSubStep
Definition ScenePrivate.h:3112
uint32 GpusWithFullCube
Definition ScenePrivate.h:3115
enum FScene::FRealTimeSlicedReflectionCapture::EFirstFrameState FirstFrameState
uint64 FrameNumber
Definition ScenePrivate.h:3121
EFirstFrameState
Definition ScenePrivate.h:3102
int32 State
Definition ScenePrivate.h:3109
Definition ScenePrivate.h:3024
FTypeOffsetTableEntry(const FPrimitiveSceneProxyType &InPrimitiveSceneProxyType, uint32 InOffset)
Definition ScenePrivate.h:3025
FPrimitiveSceneProxyType PrimitiveSceneProxyType
Definition ScenePrivate.h:3026
uint32 Offset
Definition ScenePrivate.h:3027
Definition ScenePrivate.h:3377
struct FScene::FUpdateParameters::@1812 Callbacks
TFunction< void(const UE::Tasks::FTask &)> PostStaticMeshUpdate
Definition ScenePrivate.h:3385
bool bDestruction
Definition ScenePrivate.h:3381
UE::Tasks::FTask GPUSceneUpdateTaskPrerequisites
Definition ScenePrivate.h:3380
EUpdateAllPrimitiveSceneInfosAsyncOps AsyncOps
Definition ScenePrivate.h:3379
FViewSceneChangeSet * ViewUpdateChangeSet
Definition ScenePrivate.h:3378
Definition ScenePrivate.h:590
TRefCountPtr< FRDGPooledBuffer > EntryBuffer
Definition ScenePrivate.h:592
bool bIsLocked
Definition ScenePrivate.h:594
FVector PreViewTranslation
Definition ScenePrivate.h:593
void Release()
Definition ScenePrivate.h:596
TRefCountPtr< FRDGPooledBuffer > StateBuffer
Definition ScenePrivate.h:591
Definition Substrate.h:92
Definition Substrate.h:184
Definition SceneRendering.h:840
Definition SceneManagement.h:93
ENGINE_API void UpdateTemporalLODTransition(const FSceneView &View, float LastRenderTime)
Definition SceneManagement.cpp:77
float GetTemporalLODTransition(float LastRenderTime) const
Definition SceneManagement.h:109
Definition ScenePrimitiveUpdates.h:72
Definition ScenePrivate.h:2840
float NewVolumetricScatteringIntensity
Definition ScenePrivate.h:2843
float NewIndirectLightingScale
Definition ScenePrivate.h:2842
FLinearColor NewColor
Definition ScenePrivate.h:2841
Definition ScenePrivate.h:2834
FVector4 Position
Definition ScenePrivate.h:2836
FMatrix LightToWorld
Definition ScenePrivate.h:2835
Definition SceneView.h:317
Definition ScenePrivate.h:2863
TArray< FPersistentViewId > RemovedViewIds
Definition ScenePrivate.h:2865
bool bIsRequiresDebugMaterialChanged
Definition ScenePrivate.h:2866
TArray< FPersistentViewId, SceneRenderingAllocator > AddedViewIds
Definition ScenePrivate.h:2864
Definition RendererInterface.h:494
FRHITexture * GetRHI() const
Definition RendererInterface.h:520
Definition LightFunctionAtlas.h:48
Definition ScenePrivate.h:2029
static bool Matches(KeyInitType A, KeyInitType B)
Definition ScenePrivate.h:2034
static FORCEINLINE uint32 GetKeyHash(KeyInitType Key)
Definition ScenePrivate.h:2038
static FORCEINLINE KeyInitType GetSetKey(ElementInitType Element)
Definition ScenePrivate.h:2030
Definition Optional.h:131
Definition PimplPtr.h:50
Definition SceneUpdateCommandQueue.h:51
Definition SceneUpdateCommandQueue.h:460
Definition BoxSphereBounds.h:25
UE_FORCEINLINE_HINT TBox< T > GetBox() const
Definition BoxSphereBounds.h:226
UE_FORCEINLINE_HINT TBox< T > ShiftBy(const TVector< T > &Offset) const
Definition Box.h:352
Definition IntPoint.h:25
Definition IntVector.h:22
static const TIntVector3 ZeroValue
Definition IntVector.h:45
T M[4][4]
Definition Matrix.h:49
TVector< T > GetOrigin() const
Definition Matrix.inl:641
void SetOrigin(const TVector< T > &NewOrigin)
Definition Matrix.inl:701
T Z
Definition Vector.h:68
T Y
Definition Vector.h:65
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79
T X
Definition Vector.h:62