30class UPrimitiveComponent;
46template<
typename ElementType,
typename OctreeSemantics>
class TOctree2;
82 for (
int32 VectorIndex = 0; VectorIndex < 3; VectorIndex++)
384 return bIndirectLightingCacheBufferDirty;
482 if (!bIndirectLightingCacheBufferDirty)
484 bIndirectLightingCacheBufferDirty =
true;
605 bool bNeedsUniformBufferUpdate : 1;
608 bool bIndirectLightingCacheBufferDirty : 1;
611 bool bRegisteredLightmapVirtualTextureProducerCallback : 1;
614 bool bRegisteredWithVelocityData : 1;
617 bool bNaniteRasterBinsRenderCustomDepth : 1;
620 bool bPendingAddToScene : 1;
623 bool bPendingAddStaticMeshes : 1;
626 bool bPendingDelete : 1 =
false;
629 bool bPendingFlushRuntimeVirtualTexture : 1;
647 UE_DEPRECATED(5.7,
"Use DynamicRayTracingInstanceCachedData or GetRayTracingLODData(...) instead.")
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;
692 UE_DEPRECATED(5.7,
"Cached Ray Tracing Instances are stored directly in FRayTracingScene. Use GetBaseRayTracingInstanceIndex()/GetDecalRayTracingInstanceIndex() instead.")
745 int32 LevelUpdateNotificationIndex;
748 int32 InstanceSceneDataOffset;
751 int32 NumInstanceSceneDataEntries;
754 int32 InstancePayloadDataOffset;
757 int32 InstancePayloadDataStride;
760 int32 LightmapDataOffset;
763 int32 NumLightmapDataEntries;
777 void RemoveCachedMeshDrawCommands();
783 void RemoveCachedNaniteMaterialBins();
824 return A.PrimitiveSceneInfo ==
B.PrimitiveSceneInfo;
829 Element.PrimitiveSceneInfo->OctreeId =
Id;
835 Element.Bounds.Origin+=
Offset;
841#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
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
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
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
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition GenericOctree.h:378
Definition ContainerAllocationPolicies.h:830
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 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