UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PrimitiveSceneInfo.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 PrimitiveSceneInfo.h: Primitive scene info definitions.
5=============================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
12#include "HitProxies.h"
15#include "PrimitiveDirtyState.h"
16#include "RendererInterface.h"
19
21
28class FScene;
29class FViewInfo;
30class UPrimitiveComponent;
38
40struct FNaniteRasterBin;
45
46template<typename ElementType,typename OctreeSemantics> class TOctree2;
47
48namespace Nanite
49{
51}
52
53namespace RayTracing
54{
56 using GeometryGroupHandle UE_DEPRECATED(5.6, "Use FGeometryGroupHandle instead.") = FGeometryGroupHandle;
57}
58
61{
62public:
63
65 Add(FVector(0, 0, 0)),
66 Scale(FVector(0, 0, 0)),
67 MinUV(FVector(0, 0, 0)),
68 MaxUV(FVector(0, 0, 0)),
69 MinTexel(FIntVector(-1, -1, -1)),
71 TargetPosition(FVector(0, 0, 0)),
73 TargetSkyBentNormal(FVector4f(0, 0, 1, 1)),
81 {
82 for (int32 VectorIndex = 0; VectorIndex < 3; VectorIndex++) // RGB
83 {
84 TargetSamplePacked0[VectorIndex] = FVector4f(0, 0, 0, 0);
85 SingleSamplePacked0[VectorIndex] = FVector4f(0, 0, 0, 0);
86 TargetSamplePacked1[VectorIndex] = FVector4f(0, 0, 0, 0);
87 SingleSamplePacked1[VectorIndex] = FVector4f(0, 0, 0, 0);
88 }
89 TargetSamplePacked2 = FVector4f(0, 0, 0, 0);
90 SingleSamplePacked2 = FVector4f(0, 0, 0, 0);
91 }
92
95
98
101
104
107
110
113
115 FVector4f TargetSamplePacked0[3]; // { { R.C0, R.C1, R.C2, R.C3 }, { G.C0, G.C1, G.C2, G.C3 }, { B.C0, B.C1, B.C2, B.C3 } }
116 FVector4f TargetSamplePacked1[3]; // { { R.C4, R.C5, R.C6, R.C7 }, { G.C4, G.C5, G.C6, G.C7 }, { B.C4, B.C5, B.C6, B.C7 } }
117 FVector4f TargetSamplePacked2; // { R.C8, R.C8, R.C8, R.C8 }
118
121
124
127
129 FVector4f SingleSamplePacked0[3]; // { { R.C0, R.C1, R.C2, R.C3 }, { G.C0, G.C1, G.C2, G.C3 }, { B.C0, B.C1, B.C2, B.C3 } }
130 FVector4f SingleSamplePacked1[3]; // { { R.C4, R.C5, R.C6, R.C7 }, { G.C4, G.C5, G.C6, G.C7 }, { B.C4, B.C5, B.C6, B.C7 } }
131 FVector4f SingleSamplePacked2; // { R.C8, R.C8, R.C8, R.C8 }
132
135
138
141
144
147
149
150 void SetDirty()
151 {
152 bIsDirty = true;
153 }
154
155 bool IsValid() const
156 {
157 return MinTexel.X >= 0 && MinTexel.Y >= 0 && MinTexel.Z >= 0 && AllocationTexelSize > 0;
158 }
159
173};
174
198
215
237
240
252
254{
255 RasterCommands = (1U << 1U),
256 RayTracingCommands = (1U << 2U),
257
259};
261
266{
267 friend class FSceneRenderer;
268 friend struct FViewDebugInfo;
269public:
271
274
280
286
291
294
297
300
304
307
313
320
325
330
333
336
339
342
345
348
351
354
357
360
363
365 FPrimitiveSceneInfo(UPrimitiveComponent* InPrimitive,FScene* InScene);
367
370
373
376
380
383 {
384 return bIndirectLightingCacheBufferDirty;
385 }
386
389
392
395
398
400 void RemoveStaticMeshes();
401
404
407
409 void LinkAttachmentGroup();
410
413
416
423
426
429
436
442
445
451 inline int32 GetIndex() const { return PackedIndex; }
456 inline const int32* GetIndexAddress() const { return &PackedIndex; }
457
459 inline bool IsIndexValid() const { return PackedIndex != INDEX_NONE && PackedIndex != MAX_int32; }
460
471 inline FPersistentPrimitiveIndex GetPersistentIndex() const { return PersistentIndex; }
472
478 void ApplyWorldOffset(FRHICommandListBase& RHICmdList, FVector InOffset);
479
481 {
482 if (!bIndirectLightingCacheBufferDirty)
483 {
484 bIndirectLightingCacheBufferDirty = true;
485 }
486 }
487
489
492
495
496 int32 GetInstanceSceneDataOffset() const { return InstanceSceneDataOffset; }
497 int32 GetNumInstanceSceneDataEntries() const { return NumInstanceSceneDataEntries; }
498
499 int32 GetInstancePayloadDataOffset() const { return InstancePayloadDataOffset; }
500 int32 GetInstancePayloadDataStride() const { return InstancePayloadDataStride; }
501
502 int32 GetLightmapDataOffset() const { return LightmapDataOffset; }
503 int32 GetNumLightmapDataEntries() const { return NumLightmapDataEntries; }
504
506 bool NeedsReflectionCaptureUpdate() const;
507
510
513
515 void UpdateComponentLastRenderTime(float CurrentWorldTime, bool bUpdateLastRenderTimeOnScreen);
516
519
521 FPrimitiveRuntimeVirtualTextureLodInfo const& GetRuntimeVirtualTextureLodInfo() const { return RuntimeVirtualTextureLodInfo; }
522
525
526#if RHI_RAYTRACING
528
530
533
535
537#endif
538
540 FString GetFullnameForDebuggingOnly() const;
543 UE_DEPRECATED(5.7, "Unused")
545 {
546 return false;
547 }
548
549 inline FMeshDrawCommandPrimitiveIdInfo GetMDCIdInfo() const { return FMeshDrawCommandPrimitiveIdInfo(PackedIndex, PersistentIndex, InstanceSceneDataOffset);}
550
551 UPrimitiveComponent* GetComponentForDebugOnly() const;
553
554 bool HasInstanceDataBuffers() const { return InstanceSceneDataBuffersInternal != nullptr; }
555
560
566
568 const FPrimitiveSceneInfoData* GetSceneData() const { return SceneData; }
569
570private:
571
573
575 friend class FScene;
576
581 int32 PackedIndex;
582
586 FPersistentPrimitiveIndex PersistentIndex;
587
594 IPrimitiveComponent* PrimitiveComponentInterfaceForDebuggingOnly;
595
599 FPrimitiveSceneInfoData* SceneData;
600
602 FPrimitiveRuntimeVirtualTextureLodInfo RuntimeVirtualTextureLodInfo;
603
605 bool bNeedsUniformBufferUpdate : 1;
606
608 bool bIndirectLightingCacheBufferDirty : 1;
609
611 bool bRegisteredLightmapVirtualTextureProducerCallback : 1;
612
614 bool bRegisteredWithVelocityData : 1;
615
617 bool bNaniteRasterBinsRenderCustomDepth : 1;
618
620 bool bPendingAddToScene : 1;
621
623 bool bPendingAddStaticMeshes : 1;
624
626 bool bPendingDelete : 1 = false;
627
629 bool bPendingFlushRuntimeVirtualTexture : 1;
630
631public:
634
637
640
643
644#if RHI_RAYTRACING
647 UE_DEPRECATED(5.7, "Use DynamicRayTracingInstanceCachedData or GetRayTracingLODData(...) instead.")
655
657 {
658 uint8 Mask = 0;
659 uint8 bForceOpaque : 1 = false;
660 uint8 bDoubleSided : 1 = false;
661 uint8 bReverseCulling : 1 = false;
662 uint8 bAnySegmentsDecal : 1 = false;
663 uint8 bAllSegmentsDecal : 1 = false;
664 uint8 bAllSegmentsTranslucent : 1 = false;
665 };
668
669 struct FRayTracingLODData
670 {
671 FRayTracingSBTAllocation* SBTAllocation = nullptr;
680 };
681
683 {
684 return RayTracingLODData.Num();
685 }
686
688 {
689 return RayTracingLODData[Index];
690 }
691
692 UE_DEPRECATED(5.7, "Cached Ray Tracing Instances are stored directly in FRayTracingScene. Use GetBaseRayTracingInstanceIndex()/GetDecalRayTracingInstanceIndex() instead.")
694 {
695 return {};
696 }
697
699 {
701 }
702
704 {
706 }
707
709 {
710 RayTracingLODData = MoveTemp(LODData);
711 }
712
714
715 UE_DEPRECATED(5.7, "Please provide SegmentCount.")
717 {
718 SetCachedRayTracingInstanceGeometryRHI(GeometryRHI, GeometryRHI->GetInitializer().Segments.Num());
719 }
720
721 UE_DEPRECATED(5.7, "No longer necessary.")
723
724private:
725
726 // Allocate the RayTracing SBT ranges for all the setup LODs
728
731
732 // for cached static instances (hot path), we only cache data for one LOD, so inline allocator avoids cache misses.
734
737#endif // RHI_RAYTRACING
738
739private:
740 // Don't access this directly, even internally unless you are sure what you're up to. Use GetInstanceSceneDataBuffers() which handles thread safety.
741 const FInstanceSceneDataBuffers *InstanceSceneDataBuffersInternal = nullptr;
742 FInstanceDataUpdateTaskInfo *InstanceDataUpdateTaskInfo = nullptr;
743
745 int32 LevelUpdateNotificationIndex;
746
748 int32 InstanceSceneDataOffset;
749
751 int32 NumInstanceSceneDataEntries;
752
754 int32 InstancePayloadDataOffset;
755
757 int32 InstancePayloadDataStride;
758
760 int32 LightmapDataOffset;
761
763 int32 NumLightmapDataEntries;
764
766 FRHICommandListBase& RHICmdList,
770 uint32 SceneFrameNumber,
771 class FVolumetricLightmapSceneData* VolumetricLightmapSceneData);
772
775
777 void RemoveCachedMeshDrawCommands();
778
780 static void CacheNaniteMaterialBins(FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos);
781
783 void RemoveCachedNaniteMaterialBins();
784
785#if RHI_RAYTRACING
787
788 // Cache pointer to FRayTracingGeometry used by cached ray tracing instance
789 // since primitives using ERayTracingPrimitiveFlags::CacheInstances don't fill the StaticRayTracingGeometries array above
791
794
797
799#endif
800
801public:
805};
806
809{
811 enum { MaxElementsPerLeaf = 256 };
813 enum { MaxNodeDepth = 12 };
814
816
821
823 {
824 return A.PrimitiveSceneInfo == B.PrimitiveSceneInfo;
825 }
826
828 {
829 Element.PrimitiveSceneInfo->OctreeId = Id;
830 SetOctreeNodeIndex(Element, Id);
831 }
832
834 {
835 Element.Bounds.Origin+= Offset;
836 }
837
839};
840
841#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
842#include "MeshPassProcessor.h"
843#endif
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
return true
Definition ExternalRpcRegistry.cpp:601
UE::Math::TVector4< float > FVector4f
Definition MathFwd.h:75
const bool
Definition NetworkReplayStreaming.h:178
#define MAX_int32
Definition NumericLimits.h:25
EPrimitiveDirtyState
Definition PrimitiveDirtyState.h:9
TOctree2< FPrimitiveSceneInfoCompact, struct FPrimitiveOctreeSemantics > FScenePrimitiveOctree
Definition PrimitiveSceneInfo.h:239
EUpdateStaticMeshFlags
Definition PrimitiveSceneInfo.h:254
ERayTracingPrimitiveFlags
Definition PrimitiveSceneProxy.h:236
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Offset
Definition VulkanMemory.cpp:4033
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RenderDeferredCleanup.h:11
Definition HitProxies.h:86
Definition PrimitiveSceneInfo.h:61
void SetParameters(FIntVector InMinTexel, int32 InAllocationTexelSize, FVector InScale, FVector InAdd, FVector InMinUV, FVector InMaxUV, bool bInPointSample, bool bInUnbuiltPreview)
Definition PrimitiveSceneInfo.h:160
FIntVector MinTexel
Definition PrimitiveSceneInfo.h:106
bool bIsDirty
Definition PrimitiveSceneInfo.h:146
FVector4f TargetSkyBentNormal
Definition PrimitiveSceneInfo.h:123
FVector4f TargetSamplePacked0[3]
Definition PrimitiveSceneInfo.h:115
int32 AllocationTexelSize
Definition PrimitiveSceneInfo.h:109
bool IsValid() const
Definition PrimitiveSceneInfo.h:155
FVector4f TargetSamplePacked1[3]
Definition PrimitiveSceneInfo.h:116
void SetDirty()
Definition PrimitiveSceneInfo.h:150
FIndirectLightingCacheAllocation()
Definition PrimitiveSceneInfo.h:64
FVector4f SingleSamplePacked1[3]
Definition PrimitiveSceneInfo.h:130
FVector4f TargetSamplePacked2
Definition PrimitiveSceneInfo.h:117
float CurrentDirectionalShadowing
Definition PrimitiveSceneInfo.h:134
float TargetDirectionalShadowing
Definition PrimitiveSceneInfo.h:120
FVector Scale
Definition PrimitiveSceneInfo.h:97
bool bUnbuiltPreview
Definition PrimitiveSceneInfo.h:148
FVector Add
Definition PrimitiveSceneInfo.h:94
bool bHasEverUpdatedSingleSample
Definition PrimitiveSceneInfo.h:140
FVector4f CurrentSkyBentNormal
Definition PrimitiveSceneInfo.h:137
FVector4f SingleSamplePacked2
Definition PrimitiveSceneInfo.h:131
FVector MaxUV
Definition PrimitiveSceneInfo.h:103
FVector MinUV
Definition PrimitiveSceneInfo.h:100
bool bPointSample
Definition PrimitiveSceneInfo.h:143
FVector TargetPosition
Definition PrimitiveSceneInfo.h:112
FVector4f SingleSamplePacked0[3]
Definition PrimitiveSceneInfo.h:129
FVector SingleSamplePosition
Definition PrimitiveSceneInfo.h:126
Definition ScenePrivate.h:2302
Definition InstanceDataSceneProxy.h:425
Definition InstanceDataSceneProxy.h:135
Definition SceneCore.h:23
Definition UnrealType.h:3087
Definition GenericOctreePublic.h:15
Definition PlanarReflectionSceneProxy.h:88
Definition PrimitiveComponentId.h:12
Definition PrimitiveSceneInfo.h:201
int32 VisibilityId
Definition PrimitiveSceneInfo.h:209
float MaxDrawDistance
Definition PrimitiveSceneInfo.h:207
FPrimitiveSceneProxy * Proxy
Definition PrimitiveSceneInfo.h:204
FPrimitiveFlagsCompact PrimitiveFlagsCompact
Definition PrimitiveSceneInfo.h:210
FCompactBoxSphereBounds Bounds
Definition PrimitiveSceneInfo.h:205
float MinDrawDistance
Definition PrimitiveSceneInfo.h:206
FPrimitiveSceneInfo * PrimitiveSceneInfo
Definition PrimitiveSceneInfo.h:203
Definition PrimitiveSceneInfo.h:266
void FreeGPUSceneInstances()
Definition PrimitiveSceneInfo.cpp:1729
FBoxSphereBounds GetAttachmentGroupBounds() const
Definition PrimitiveSceneInfo.cpp:2425
void GatherLightingAttachmentGroupPrimitives(TArray< FPrimitiveSceneInfo *, SceneRenderingAllocator > &OutChildSceneInfos)
Definition PrimitiveSceneInfo.cpp:2346
bool NeedsReflectionCaptureUpdate() const
Definition PrimitiveSceneInfo.cpp:2544
FPrimitiveComponentId PrimitiveComponentId
Definition PrimitiveSceneInfo.h:279
bool bVisibleInRealTimeSkyCapture
Definition PrimitiveSceneInfo.h:639
const FReflectionCaptureProxy * CachedReflectionCaptureProxies[MaxCachedReflectionCaptureProxies]
Definition PrimitiveSceneInfo.h:338
void LinkLODParentComponent()
Definition PrimitiveSceneInfo.cpp:2234
void RequestStaticMeshUpdate()
Definition PrimitiveSceneInfo.cpp:2158
bool bWritesRuntimeVirtualTexture
Definition PrimitiveSceneInfo.h:642
void CacheReflectionCaptures()
Definition PrimitiveSceneInfo.cpp:2551
int32 GetLightmapDataOffset() const
Definition PrimitiveSceneInfo.h:502
void UpdateComponentLastRenderTime(float CurrentWorldTime, bool bUpdateLastRenderTimeOnScreen)
Definition PrimitiveSceneInfo.cpp:2575
void RemoveCachedReflectionCaptures()
Definition PrimitiveSceneInfo.cpp:2567
HHitProxy * DefaultDynamicHitProxy
Definition PrimitiveSceneInfo.h:344
bool IsIndexValid() const
Definition PrimitiveSceneInfo.h:459
static void AllocateGPUSceneInstances(FScene *Scene, const TArrayView< FPrimitiveSceneInfo * > &SceneInfos)
Definition PrimitiveSceneInfo.cpp:1685
bool NeedsIndirectLightingCacheBufferUpdate()
Definition PrimitiveSceneInfo.h:382
FPersistentPrimitiveIndex GetPersistentIndex() const
Definition PrimitiveSceneInfo.h:471
float GpuLodInstanceRadius
Definition PrimitiveSceneInfo.h:362
FHitProxyId DefaultDynamicHitProxyId
Definition PrimitiveSceneInfo.h:347
void RemoveFromScene(bool bUpdateStaticDrawLists)
Definition PrimitiveSceneInfo.cpp:2010
void FlushRuntimeVirtualTexture()
Definition PrimitiveSceneInfo.cpp:2207
uint32 GetMemoryFootprint()
Definition PrimitiveSceneInfo.cpp:2446
RENDERER_API int32 UpdateStaticLightingBuffer()
Definition PrimitiveSceneInfo.cpp:1650
TArray< FNaniteMaterialSlot > NaniteMaterialSlots[ENaniteMeshPass::Num]
Definition PrimitiveSceneInfo.h:303
TArray< class FCachedMeshDrawCommandInfo > StaticMeshCommandInfos
Definition PrimitiveSceneInfo.h:293
static void AddToScene(FScene *Scene, TArrayView< FPrimitiveSceneInfo * > SceneInfos)
Definition PrimitiveSceneInfo.cpp:1796
void MarkIndirectLightingCacheBufferDirty()
Definition PrimitiveSceneInfo.h:480
int32 GetInstancePayloadDataStride() const
Definition PrimitiveSceneInfo.h:500
const FPrimitiveSceneInfoData * GetSceneData() const
Definition PrimitiveSceneInfo.h:568
void UnlinkAttachmentGroup()
Definition PrimitiveSceneInfo.cpp:2279
static RENDERER_API FPrimitiveSceneInfoEvent OnGPUSceneInstancesFreed
Definition PrimitiveSceneInfo.h:804
RENDERER_API void RefreshNaniteRasterBins()
Definition PrimitiveSceneInfo.cpp:2320
int32 GetNumLightmapDataEntries() const
Definition PrimitiveSceneInfo.h:503
class FLightPrimitiveInteraction * LightList
Definition PrimitiveSceneInfo.h:353
TArray< int32, TInlineAllocator< 1 > > DistanceFieldInstanceIndices
Definition PrimitiveSceneInfo.h:332
void UnlinkLODParentComponent()
Definition PrimitiveSceneInfo.cpp:2242
bool bNeedsCachedReflectionCaptureUpdate
Definition PrimitiveSceneInfo.h:633
FOctreeElementId2 OctreeId
Definition PrimitiveSceneInfo.h:306
RENDERER_API const FInstanceSceneDataBuffers * GetInstanceSceneDataBuffers() const
Definition PrimitiveSceneInfo.cpp:2177
int32 GetInstancePayloadDataOffset() const
Definition PrimitiveSceneInfo.h:499
void RemoveStaticMeshes()
Definition PrimitiveSceneInfo.cpp:1985
FScene * Scene
Definition PrimitiveSceneInfo.h:356
static void AddStaticMeshes(FRHICommandListBase &RHICmdList, FScene *Scene, TArrayView< FPrimitiveSceneInfo * > SceneInfos, bool bCacheMeshDrawCommands=true)
Definition PrimitiveSceneInfo.cpp:1578
FString GetFullnameForDebuggingOnly() const
Definition PrimitiveSceneInfo.cpp:2606
RENDERER_API const FMeshBatch * GetMeshBatch(int8 InLODIndex) const
Definition PrimitiveSceneInfo.cpp:2534
FPrimitiveRuntimeVirtualTextureLodInfo const & GetRuntimeVirtualTextureLodInfo() const
Definition PrimitiveSceneInfo.h:521
const FIndirectLightingCacheAllocation * IndirectLightingCacheAllocation
Definition PrimitiveSceneInfo.h:312
FString GetOwnerActorNameOrLabelForDebuggingOnly() const
Definition PrimitiveSceneInfo.cpp:2616
float LastRenderTime
Definition PrimitiveSceneInfo.h:350
bool bShouldRenderInMainPass
Definition PrimitiveSceneInfo.h:636
static void UpdateStaticMeshes(FScene *Scene, TArrayView< FPrimitiveSceneInfo * > SceneInfos, EUpdateStaticMeshFlags UpdateFlags, bool bReAddToDrawLists=true)
Definition PrimitiveSceneInfo.cpp:2088
RENDERER_API void GetStaticMeshesLODRange(int8 &OutMinLOD, int8 &OutMaxLOD) const
Definition PrimitiveSceneInfo.cpp:2521
RENDERER_API bool RequestUniformBufferUpdate()
Definition PrimitiveSceneInfo.cpp:2167
TArray< class FStaticMeshBatchRelevance > StaticMeshRelevances
Definition PrimitiveSceneInfo.h:296
FPrimitiveSceneProxy * Proxy
Definition PrimitiveSceneInfo.h:273
bool HasInstanceDataBuffers() const
Definition PrimitiveSceneInfo.h:554
bool ShouldCacheShadowAsStatic() const
Definition PrimitiveSceneInfo.h:544
RENDERER_API bool RequestGPUSceneUpdate(EPrimitiveDirtyState PrimitiveDirtyState=EPrimitiveDirtyState::ChangedAll)
Definition PrimitiveSceneInfo.cpp:2309
void UpdateOcclusionFlags()
Definition PrimitiveSceneInfo.cpp:1762
static const uint32 MaxCachedReflectionCaptureProxies
Definition PrimitiveSceneInfo.h:337
TArray< int32, TInlineAllocator< 1 > > LumenPrimitiveGroupIndices
Definition PrimitiveSceneInfo.h:335
TUniformBufferRef< FIndirectLightingCacheUniformParameters > IndirectLightingCacheUniformBuffer
Definition PrimitiveSceneInfo.h:319
~FPrimitiveSceneInfo()
Definition PrimitiveSceneInfo.cpp:377
void LinkAttachmentGroup()
Definition PrimitiveSceneInfo.cpp:2250
FInstanceDataBufferHeader GetInstanceDataHeader() const
Definition PrimitiveSceneInfo.cpp:2192
const FReflectionCaptureProxy * CachedReflectionCaptureProxy
Definition PrimitiveSceneInfo.h:329
const int32 * GetIndexAddress() const
Definition PrimitiveSceneInfo.h:456
TArray< TRefCountPtr< HHitProxy > > HitProxies
Definition PrimitiveSceneInfo.h:341
TArray< class FStaticMeshBatch > StaticMeshes
Definition PrimitiveSceneInfo.h:299
const FPlanarReflectionSceneProxy * CachedPlanarReflectionProxy
Definition PrimitiveSceneInfo.h:324
FPrimitiveComponentId LightingAttachmentRoot
Definition PrimitiveSceneInfo.h:285
IPrimitiveComponent * GetComponentInterfaceForDebugOnly() const
Definition PrimitiveSceneInfo.cpp:2636
int32 NumMobileDynamicLocalLights
Definition PrimitiveSceneInfo.h:359
void ApplyWorldOffset(FRHICommandListBase &RHICmdList, FVector InOffset)
Definition PrimitiveSceneInfo.cpp:2451
int32 GetInstanceSceneDataOffset() const
Definition PrimitiveSceneInfo.h:496
void UpdateIndirectLightingCacheBuffer(FRHICommandListBase &RHICmdList)
Definition PrimitiveSceneInfo.cpp:2481
int32 GetIndex() const
Definition PrimitiveSceneInfo.h:451
static RENDERER_API FPrimitiveSceneInfoEvent OnGPUSceneInstancesAllocated
Definition PrimitiveSceneInfo.h:803
TArray< FNaniteRasterBin > NaniteRasterBins[ENaniteMeshPass::Num]
Definition PrimitiveSceneInfo.h:301
void MarkGPUStateDirty(EPrimitiveDirtyState PrimitiveDirtyState=EPrimitiveDirtyState::ChangedAll)
Definition PrimitiveSceneInfo.h:418
FMeshDrawCommandPrimitiveIdInfo GetMDCIdInfo() const
Definition PrimitiveSceneInfo.h:549
TArray< FNaniteShadingBin > NaniteShadingBins[ENaniteMeshPass::Num]
Definition PrimitiveSceneInfo.h:302
UPrimitiveComponent * GetComponentForDebugOnly() const
Definition PrimitiveSceneInfo.cpp:2626
FPrimitiveComponentId LODParentComponentId
Definition PrimitiveSceneInfo.h:290
DECLARE_MULTICAST_DELEGATE(FPrimitiveSceneInfoEvent)
int32 GetNumInstanceSceneDataEntries() const
Definition PrimitiveSceneInfo.h:497
Definition PrimitiveSceneProxy.h:296
Definition RHICommandList.h:455
Definition RHIResources.h:3729
Definition RayTracingGeometry.h:31
Definition ReflectionCaptureProxy.h:31
Definition SceneRendering.h:2080
Definition ScenePrivate.h:2875
Definition SceneRendering.h:1132
Definition ScenePrivate.h:1845
Definition HitProxies.h:135
Definition ComponentInterfaces.h:59
Definition ArrayView.h:139
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition GenericOctree.h:378
Definition ContainerAllocationPolicies.h:830
Definition ShaderParameterMacros.h:136
UpdateFlags
Definition DetourCrowd.h:208
Definition PrimitiveSceneInfo.h:243
Type
Definition PrimitiveSceneInfo.h:245
@ BasePass
Definition PrimitiveSceneInfo.h:246
@ LumenCardCapture
Definition PrimitiveSceneInfo.h:247
@ MaterialCache
Definition PrimitiveSceneInfo.h:248
@ Num
Definition PrimitiveSceneInfo.h:249
Definition SkinnedMeshComponent.h:50
int16 CoarseMeshStreamingHandle
Definition PrimitiveSceneProxy.h:55
Definition SceneManagement.h:73
int32 FGeometryGroupHandle
Definition SceneManagement.h:74
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition InstanceDataTypes.h:65
Definition MeshBatch.h:371
Definition MeshPassProcessor.h:1573
Definition NaniteMaterials.h:16
Definition NaniteShared.h:572
Definition NaniteShared.h:776
Definition MeshPassProcessor.h:1559
Definition PrimitiveSceneInfo.h:177
uint8 bIsAlwaysVisible
Definition PrimitiveSceneInfo.h:191
uint8 bCastDynamicShadow
Definition PrimitiveSceneInfo.h:179
uint8 bCastStaticShadow
Definition PrimitiveSceneInfo.h:185
uint8 bIsNaniteMesh
Definition PrimitiveSceneInfo.h:188
uint8 bSupportsGPUScene
Definition PrimitiveSceneInfo.h:194
uint8 bStaticLighting
Definition PrimitiveSceneInfo.h:182
Definition PrimitiveSceneInfo.h:809
static void SetOctreeNodeIndex(const FPrimitiveSceneInfoCompact &Element, FOctreeElementId2 Id)
Definition PrimitiveSceneInfo.cpp:2596
@ MinInclusiveElementsPerNode
Definition PrimitiveSceneInfo.h:812
static void ApplyOffset(FPrimitiveSceneInfoCompact &Element, FVector Offset)
Definition PrimitiveSceneInfo.h:833
FDefaultAllocator ElementAllocator
Definition PrimitiveSceneInfo.h:815
@ MaxElementsPerLeaf
Definition PrimitiveSceneInfo.h:811
static const FCompactBoxSphereBounds & GetBoundingBox(const FPrimitiveSceneInfoCompact &PrimitiveSceneInfoCompact)
Definition PrimitiveSceneInfo.h:817
static void SetElementId(const FPrimitiveSceneInfoCompact &Element, FOctreeElementId2 Id)
Definition PrimitiveSceneInfo.h:827
static bool AreElementsEqual(const FPrimitiveSceneInfoCompact &A, const FPrimitiveSceneInfoCompact &B)
Definition PrimitiveSceneInfo.h:822
@ MaxNodeDepth
Definition PrimitiveSceneInfo.h:813
Definition PrimitiveSceneInfo.h:218
uint16 MinLod
Definition PrimitiveSceneInfo.h:223
uint16 CullValue
Definition PrimitiveSceneInfo.h:235
uint16 MaxLod
Definition PrimitiveSceneInfo.h:225
uint16 CullMethod
Definition PrimitiveSceneInfo.h:233
@ LodBiasOffset
Definition PrimitiveSceneInfo.h:220
uint16 LodBias
Definition PrimitiveSceneInfo.h:227
Definition PrimitiveSceneDesc.h:26
Definition PrimitiveSceneInfo.cpp:197
Definition PrimitiveSceneInfoData.h:16
Definition RayTracingMeshDrawCommands.h:16
Definition RHIResources.h:3357
Definition RayTracingInstance.h:17
Definition ViewDebug.h:25
Definition BoxSphereBounds.h:25
IntType Y
Definition IntVector.h:34
IntType X
Definition IntVector.h:31
IntType Z
Definition IntVector.h:37