UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GeometryCollectionSceneProxy.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
5#include "EngineGlobals.h"
13#include "HitProxies.h"
14#include "EngineUtils.h"
15#include "NaniteSceneProxy.h"
20
24
25namespace Nanite
26{
27 struct FResources;
28}
29
30
33{
34public:
35 virtual void InitRHI(FRHICommandListBase& RHICmdList) override
36 {
37 // #note: This differs from instanced static mesh in that we are storing the entire transform in the buffer rather than
38 // splitting out the translation. This is to simplify transferring data at runtime as a memcopy
39 const FRHIBufferCreateDesc CreateDesc =
40 FRHIBufferCreateDesc::CreateVertex<FVector4f>(TEXT("FGeometryCollectionTransformBuffer"), NumTransforms * 4)
43
44 VertexBufferRHI = RHICmdList.CreateBuffer(CreateDesc);
49 .SetFormat(PF_A32B32G32R32F));
50 }
51
52 void UpdateDynamicData(FRHICommandListBase& RHICmdList, const TArray<FMatrix44f>& Transforms, EResourceLockMode LockMode);
53
55
57};
58
60{
61 // LWC_TODO : we have no choice but to convert each element at this point to avoid changing GeometryCollectionAlgo::GlobalMatrices that is used all over the place
62 DstTransforms.SetNumUninitialized(SrcTransforms.Num());
63 for (int TransformIndex = 0; TransformIndex < SrcTransforms.Num(); ++TransformIndex)
64 {
65 DstTransforms[TransformIndex] = FMatrix44f(SrcTransforms[TransformIndex]); // LWC_TODO: Perf pessimization
66 }
67}
68
70{
71 // LWC_TODO : we have no choice but to convert each element at this point to avoid changing GeometryCollectionAlgo::GlobalMatrices that is used all over the place
72 DstTransforms.SetNumUninitialized(SrcTransforms.Num());
73 for (int TransformIndex = 0; TransformIndex < SrcTransforms.Num(); ++TransformIndex)
74 {
75 DstTransforms[TransformIndex] = FTransform3f(SrcTransforms[TransformIndex]).ToMatrixWithScale(); // LWC_TODO: Perf pessimization
76 }
77}
78
80{
81 DstTransforms.SetNumUninitialized(SrcTransforms.Num());
82 for (int TransformIndex = 0; TransformIndex < SrcTransforms.Num(); ++TransformIndex)
83 {
84 DstTransforms[TransformIndex] = SrcTransforms[TransformIndex].ToMatrixWithScale();
85 }
86}
87
90{
93
98
99 void Reset()
100 {
101 Transforms.Reset();
103 }
104
105 void SetTransforms(const TArray<FTransform>& InTransforms)
106 {
107 // use for LWC as FMatrix and FMatrix44f are different when LWC is on
109 }
110
111 void SetTransforms(const TArray<FTransform3f>& InTransforms)
112 {
114 }
115};
116
117
133
134
136{
137protected:
140
143
146
149
151 {
152 return TransformBuffers[CurrentTransformBufferIndex];
153 }
154
156 {
157 return TransformBuffers[CurrentTransformBufferIndex];
158 }
159
161 {
162 const int32 NumBuffers = TransformBuffers.Num();
163 const int32 PreviousIndex = (CurrentTransformBufferIndex + NumBuffers - 1) % NumBuffers;
164 return TransformBuffers[PreviousIndex];
165 }
166
168 {
169 if (bCycle)
170 {
171 CurrentTransformBufferIndex = (CurrentTransformBufferIndex + 1) % TransformBuffers.Num();
172 }
173 }
174
175#if RHI_RAYTRACING
177
178 bool IsRayTracingRelevant() const { return true; }
179 bool IsRayTracingStaticRelevant() const { return false; }
180 bool HasRayTracingRepresentation() const { return bHasRayTracingRepresentation; }
181 void GetDynamicRayTracingInstances(FRayTracingInstanceCollector& Collector, const FMatrix& LocalToWorld, FRHIUniformBuffer* UniformBuffer, bool bAnyMaterialHasWorldPositionOffset);
182#endif
183
184 uint32 GetAllocatedSize() const;
185
186protected:
187
188 const bool bIsNanite;
190
194
196
200
202
204
206
207private:
208
210 void UpdateSkinnedPositions(FRHICommandListBase& RHICmdList, TArray<FMatrix44f> const& Transforms);
211
212 FPositionVertexBuffer SkinnedPositionVertexBuffer;
213
214 int32 CurrentTransformBufferIndex = 0;
216
217 const bool bHasRayTracingRepresentation = false;
218
219#if RHI_RAYTRACING
220 FRayTracingGeometry RayTracingGeometry;
221 FRWBuffer RayTracingDynamicVertexBuffer;
222
224#endif
225
226 bool bRenderResourcesCreated = false;
227};
228
229
230/***
231* FGeometryCollectionSceneProxy
232*
233* The FGeometryCollectionSceneProxy manages the interaction between the GeometryCollectionComponent
234* on the game thread and the vertex buffers on the render thread.
235*
236* NOTE : This class is still in flux, and has a few pending todos. Your comments and
237* thoughts are appreciated though. The remaining items to address involve:
238* - @todo double buffer - The double buffering of the FGeometryCollectionDynamicData.
239* - @todo GPU skin : Make the skinning use the GpuVertexShader
240*/
242{
244
245 FCollisionResponseContainer CollisionResponse;
246
247 bool bRenderResourcesCreated = false;
248
249#if WITH_EDITOR
250 bool bShowBoneColors = false;
251 bool bSuppressSelectionMaterial = false;
253 FColorVertexBuffer ColorVertexBuffer;
256 #endif
257
258#if GEOMETRYCOLLECTION_EDITOR_SELECTION
259 bool bUsesSubSections = false;
260 bool bEnableBoneSelection = false;
263#endif
264
265public:
268
271
272 virtual uint32 GetMemoryFootprint() const override { return sizeof(*this) + GetAllocatedSize(); }
273 uint32 GetAllocatedSize() const;
274
275 SIZE_T GetTypeHash() const override;
276 void CreateRenderThreadResources(FRHICommandListBase& RHICmdList) override;
277 void DestroyRenderThreadResources() override;
279 FPrimitiveViewRelevance GetViewRelevance(const FSceneView* View) const override;
280 void GetDynamicMeshElements(const TArray<const FSceneView*>& Views, const FSceneViewFamily& ViewFamily, uint32 VisibilityMap, FMeshElementCollector& Collector) const override;
281
282 virtual bool AllowInstanceCullingOcclusionQueries() const override { return true; }
283
284#if GEOMETRYCOLLECTION_EDITOR_SELECTION
285 virtual HHitProxy* CreateHitProxies(UPrimitiveComponent* Component, TArray<TRefCountPtr<HHitProxy> >& OutHitProxies) override;
286 virtual const FColorVertexBuffer* GetCustomHitProxyIdBuffer() const override
287 {
288 return (bEnableBoneSelection || bUsesSubSections) ? &HitProxyIdBuffer : nullptr;
289 }
290#endif
291
292#if RHI_RAYTRACING
293 bool IsRayTracingRelevant() const override { return FGeometryCollectionSceneProxyBase::IsRayTracingRelevant(); }
294 bool IsRayTracingStaticRelevant() const override { return FGeometryCollectionSceneProxyBase::IsRayTracingStaticRelevant(); }
295 bool HasRayTracingRepresentation() const override { return FGeometryCollectionSceneProxyBase::HasRayTracingRepresentation(); }
296 void GetDynamicRayTracingInstances(FRayTracingInstanceCollector& Collector) override { return FGeometryCollectionSceneProxyBase::GetDynamicRayTracingInstances(Collector, GetLocalToWorld(), GetUniformBuffer(), bAnyMaterialHasWorldPositionOffset); }
297#endif
298
299protected:
301 FMaterialRenderProxy* GetMaterial(FMeshElementCollector& Collector, int32 MaterialIndex) const;
303 FVertexFactory const* GetVertexFactory() const;
304
305private:
306 bool ShowCollisionMeshes(const FEngineShowFlags& EngineShowFlags) const;
307};
308
309
311{
312public:
314
317
318public:
319 // FPrimitiveSceneProxy interface.
320 virtual void CreateRenderThreadResources(FRHICommandListBase& RHICmdList) override;
321 virtual void DestroyRenderThreadResources() override;
322 virtual void GetPreSkinnedLocalBounds(FBoxSphereBounds& OutBounds) const override;
323 virtual SIZE_T GetTypeHash() const override;
324 virtual FPrimitiveViewRelevance GetViewRelevance(const FSceneView* View) const override;
325 virtual void GetDynamicMeshElements(const TArray<const FSceneView*>& Views, const FSceneViewFamily& ViewFamily, uint32 VisibilityMap, FMeshElementCollector& Collector) const override;
326#if GEOMETRYCOLLECTION_EDITOR_SELECTION
327 virtual HHitProxy* CreateHitProxies(UPrimitiveComponent* Component, TArray<TRefCountPtr<HHitProxy> >& OutHitProxies) override;
328#endif
329 virtual void DrawStaticElements(FStaticPrimitiveDrawInterface* PDI) override;
330
331 virtual uint32 GetMemoryFootprint() const override { return sizeof(*this) + GetAllocatedSize(); }
332 uint32 GetAllocatedSize() const;
333
334 // FSceneProxyBase interface.
335 virtual Nanite::FResourceMeshInfo GetResourceMeshInfo() const override;
337
340
342
344
349
354
355 inline virtual void GetLCIs(FLCIArray& LCIs) override
356 {
357 FLightCacheInterface* LCI = &EmptyLightCacheInfo;
358 LCIs.Add(LCI);
359 }
360
361#if RHI_RAYTRACING
362 bool IsRayTracingRelevant() const override { return FGeometryCollectionSceneProxyBase::IsRayTracingRelevant(); }
363 bool IsRayTracingStaticRelevant() const override { return FGeometryCollectionSceneProxyBase::IsRayTracingStaticRelevant(); }
364 bool HasRayTracingRepresentation() const override { return FGeometryCollectionSceneProxyBase::HasRayTracingRepresentation(); }
365 void GetDynamicRayTracingInstances(FRayTracingInstanceCollector& Collector) override { return FGeometryCollectionSceneProxyBase::GetDynamicRayTracingInstances(Collector, GetLocalToWorld(), GetUniformBuffer(), bAnyMaterialHasWorldPositionOffset); }
366#endif
367
368protected:
369 // TODO : Copy required data from UObject instead of using unsafe object pointer.
372
379
385
386#if GEOMETRYCOLLECTION_EDITOR_SELECTION
388#endif
389
391
392 // Geometry collection doesn't currently support baked light maps, so we use this simple empty light cache info for all nanite geometry collection proxies
394 {
395 public:
396
397 // FLightCacheInterface.
399 };
400
401private:
402 void UpdateInstanceSceneDataBuffers(const FMatrix& PrimitiveLocalToWorld);
403
404 bool ShowCollisionMeshes(const FEngineShowFlags& EngineShowFlags) const;
405
406private:
407 static FEmptyLightCacheInfo EmptyLightCacheInfo;
408};
#define FORCEINLINE
Definition AndroidPlatform.h:140
uint64 GFrameCounter
Definition CoreGlobals.cpp:418
#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::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
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
void CopyTransformsWithConversionWhenNeeded(TArray< FMatrix44f > &DstTransforms, const TArray< FMatrix > &SrcTransforms)
Definition GeometryCollectionSceneProxy.h:59
UE::Math::TTransform< float > FTransform3f
Definition MathFwd.h:79
UE::Math::TMatrix< float > FMatrix44f
Definition MathFwd.h:77
@ PF_A32B32G32R32F
Definition PixelFormat.h:18
EResourceLockMode
Definition RHIDefinitions.h:785
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition ColorVertexBuffer.h:16
Definition GeometryCollectionSceneProxy.h:119
FGeometryCollectionDynamicDataPool()
Definition GeometryCollectionSceneProxy.cpp:1645
FGeometryCollectionDynamicData * Allocate()
Definition GeometryCollectionSceneProxy.cpp:1672
~FGeometryCollectionDynamicDataPool()
Definition GeometryCollectionSceneProxy.cpp:1654
Definition GeometryCollectionSceneProxy.h:136
void DestroyRenderThreadResources()
Definition GeometryCollectionSceneProxy.cpp:238
void SetupVertexFactory(FRHICommandListBase &RHICmdList, FGeometryCollectionVertexFactory &GeometryCollectionVertexFactory, FColorVertexBuffer *ColorOverride=nullptr) const
Definition GeometryCollectionSceneProxy.cpp:275
FGeometryCollectionTransformBuffer & GetCurrentTransformBuffer()
Definition GeometryCollectionSceneProxy.h:150
FMaterialRelevance MaterialRelevance
Definition GeometryCollectionSceneProxy.h:193
const bool bUseShaderBoneTransform
Definition GeometryCollectionSceneProxy.h:198
void CycleTransformBuffers(bool bCycle)
Definition GeometryCollectionSceneProxy.h:167
FBoxSphereBounds PreSkinnedBounds
Definition GeometryCollectionSceneProxy.h:195
void CreateRenderThreadResources(FRHICommandListBase &RHICmdList)
Definition GeometryCollectionSceneProxy.cpp:206
uint32 GetAllocatedSize() const
Definition GeometryCollectionSceneProxy.cpp:747
const bool bIsNanite
Definition GeometryCollectionSceneProxy.h:188
const FGeometryCollectionMeshResources & MeshResource
Definition GeometryCollectionSceneProxy.h:191
FGeometryCollectionDynamicData * DynamicData
Definition GeometryCollectionSceneProxy.h:205
FGeometryCollectionMeshDescription MeshDescription
Definition GeometryCollectionSceneProxy.h:192
void SetDynamicData_RenderThread(FRHICommandListBase &RHICmdList, FGeometryCollectionDynamicData *NewDynamicData)
Definition GeometryCollectionSceneProxy.cpp:318
int32 NumTransforms
Definition GeometryCollectionSceneProxy.h:203
TArray< UMaterialInterface * > Materials
Definition GeometryCollectionSceneProxy.h:201
ERHIFeatureLevel::Type FeatureLevel
Definition GeometryCollectionSceneProxy.h:189
FGeometryCollectionVertexFactory VertexFactory
Definition GeometryCollectionSceneProxy.h:197
const FGeometryCollectionTransformBuffer & GetCurrentTransformBuffer() const
Definition GeometryCollectionSceneProxy.h:155
const bool bSupportsTripleBufferVertexUpload
Definition GeometryCollectionSceneProxy.h:199
const FGeometryCollectionTransformBuffer & GetCurrentPrevTransformBuffer() const
Definition GeometryCollectionSceneProxy.h:160
virtual ~FGeometryCollectionSceneProxyBase()
Definition GeometryCollectionSceneProxy.cpp:197
Definition GeometryCollectionSceneProxy.h:242
void GetDynamicMeshElements(const TArray< const FSceneView * > &Views, const FSceneViewFamily &ViewFamily, uint32 VisibilityMap, FMeshElementCollector &Collector) const override
Definition GeometryCollectionSceneProxy.cpp:985
virtual uint32 GetMemoryFootprint() const override
Definition GeometryCollectionSceneProxy.h:272
virtual ~FGeometryCollectionSceneProxy()
Definition GeometryCollectionSceneProxy.cpp:835
uint32 GetAllocatedSize() const
Definition GeometryCollectionSceneProxy.cpp:1169
void GetPreSkinnedLocalBounds(FBoxSphereBounds &OutBounds) const override
Definition GeometryCollectionSceneProxy.cpp:1164
FMaterialRenderProxy * GetMaterial(FMeshElementCollector &Collector, int32 MaterialIndex) const
Definition GeometryCollectionSceneProxy.cpp:925
void CreateRenderThreadResources(FRHICommandListBase &RHICmdList) override
Definition GeometryCollectionSceneProxy.cpp:845
void DestroyRenderThreadResources() override
Definition GeometryCollectionSceneProxy.cpp:886
FPrimitiveViewRelevance GetViewRelevance(const FSceneView *View) const override
Definition GeometryCollectionSceneProxy.cpp:1138
void SetDynamicData_RenderThread(FRHICommandListBase &RHICmdList, FGeometryCollectionDynamicData *NewDynamicData)
Definition GeometryCollectionSceneProxy.cpp:900
FVertexFactory const * GetVertexFactory() const
Definition GeometryCollectionSceneProxy.cpp:956
virtual bool AllowInstanceCullingOcclusionQueries() const override
Definition GeometryCollectionSceneProxy.h:282
SIZE_T GetTypeHash() const override
Definition GeometryCollectionSceneProxy.cpp:839
Definition GeometryCollectionSceneProxy.h:33
FShaderResourceViewRHIRef VertexBufferSRV
Definition GeometryCollectionSceneProxy.h:56
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition GeometryCollectionSceneProxy.h:35
int32 NumTransforms
Definition GeometryCollectionSceneProxy.h:54
void UpdateDynamicData(FRHICommandListBase &RHICmdList, const TArray< FMatrix44f > &Transforms, EResourceLockMode LockMode)
Definition GeometryCollectionSceneProxy.cpp:1705
Definition InstanceDataSceneProxy.h:135
Definition SceneManagement.h:820
Definition SceneManagement.h:333
Definition LightSceneProxy.h:43
Definition MaterialRenderProxy.h:102
Definition MeshElementCollector.h:26
Definition GeometryCollectionSceneProxy.h:394
virtual GEOMETRYCOLLECTIONENGINE_API FLightInteraction GetInteraction(const FLightSceneProxy *LightSceneProxy) const override
Definition GeometryCollectionSceneProxy.cpp:1716
Definition GeometryCollectionSceneProxy.h:311
uint32 GetAllocatedSize() const
Definition GeometryCollectionSceneProxy.cpp:1445
void FlushGPUSceneUpdate_GameThread()
Definition GeometryCollectionSceneProxy.cpp:1572
virtual ~FNaniteGeometryCollectionSceneProxy()
Definition GeometryCollectionSceneProxy.cpp:1363
uint32 bEnableBoneSelection
Definition GeometryCollectionSceneProxy.h:384
FORCEINLINE void SetRequiresGPUSceneUpdate_RenderThread(bool bRequireUpdate)
Definition GeometryCollectionSceneProxy.h:345
void ResetPreviousTransforms_RenderThread()
Definition GeometryCollectionSceneProxy.cpp:1558
FCollisionResponseContainer CollisionResponse
Definition GeometryCollectionSceneProxy.h:371
uint32 bCastShadow
Definition GeometryCollectionSceneProxy.h:380
void SetDynamicData_RenderThread(FRHICommandListBase &RHICmdList, FGeometryCollectionDynamicData *NewDynamicData, const FMatrix &PrimitiveLocalToWorld)
Definition GeometryCollectionSceneProxy.cpp:1551
virtual void GetDynamicMeshElements(const TArray< const FSceneView * > &Views, const FSceneViewFamily &ViewFamily, uint32 VisibilityMap, FMeshElementCollector &Collector) const override
Definition GeometryCollectionSceneProxy.cpp:1608
uint32 bHasMaterialErrors
Definition GeometryCollectionSceneProxy.h:382
virtual void DestroyRenderThreadResources() override
Definition GeometryCollectionSceneProxy.cpp:1379
FORCEINLINE bool GetRequiresGPUSceneUpdate_RenderThread() const
Definition GeometryCollectionSceneProxy.h:350
virtual SIZE_T GetTypeHash() const override
Definition GeometryCollectionSceneProxy.cpp:1384
FInstanceSceneDataBuffers InstanceSceneDataBuffersImpl
Definition GeometryCollectionSceneProxy.h:390
uint32 bRequiresGPUSceneUpdate
Definition GeometryCollectionSceneProxy.h:383
virtual void DrawStaticElements(FStaticPrimitiveDrawInterface *PDI) override
Definition GeometryCollectionSceneProxy.cpp:1439
virtual void GetLCIs(FLCIArray &LCIs) override
Definition GeometryCollectionSceneProxy.h:355
virtual Nanite::FResourcePrimitiveInfo GetResourcePrimitiveInfo() const override
Definition GeometryCollectionSceneProxy.cpp:1472
virtual Nanite::FResourceMeshInfo GetResourceMeshInfo() const override
Definition GeometryCollectionSceneProxy.cpp:1451
virtual void CreateRenderThreadResources(FRHICommandListBase &RHICmdList) override
Definition GeometryCollectionSceneProxy.cpp:1368
virtual FPrimitiveViewRelevance GetViewRelevance(const FSceneView *View) const override
Definition GeometryCollectionSceneProxy.cpp:1395
uint32 bReverseCulling
Definition GeometryCollectionSceneProxy.h:381
virtual uint32 GetMemoryFootprint() const override
Definition GeometryCollectionSceneProxy.h:331
TArray< FGeometryNaniteData > GeometryNaniteData
Definition GeometryCollectionSceneProxy.h:378
virtual void GetPreSkinnedLocalBounds(FBoxSphereBounds &OutBounds) const override
Definition GeometryCollectionSceneProxy.cpp:1390
Definition PositionVertexBuffer.h:27
Definition PrimitiveSceneProxy.h:296
virtual ENGINE_API HHitProxy * CreateHitProxies(UPrimitiveComponent *Component, TArray< TRefCountPtr< HHitProxy > > &OutHitProxies)
Definition PrimitiveSceneProxy.cpp:661
uint8 bAnyMaterialHasWorldPositionOffset
Definition PrimitiveSceneProxy.h:1533
const FMatrix & GetLocalToWorld() const
Definition PrimitiveSceneProxy.h:736
FRHIUniformBuffer * GetUniformBuffer() const
Definition PrimitiveSceneProxy.h:856
Definition RHICommandList.h:455
FBufferRHIRef CreateBuffer(const FRHIBufferCreateDesc &CreateDesc)
Definition RHICommandList.h:800
FShaderResourceViewRHIRef CreateShaderResourceView(FRHIBuffer *Buffer, FRHIViewDesc::FBufferSRV::FInitializer const &ViewDesc)
Definition RHICommandList.h:975
Definition RHIResources.h:1232
Definition RayTracingGeometry.h:31
Definition SceneView.h:2212
Definition SceneView.h:1425
Definition SceneManagement.h:1293
Definition RenderResource.h:474
FBufferRHIRef VertexBufferRHI
Definition RenderResource.h:489
Definition VertexFactory.h:661
Definition HitProxies.h:135
Definition NaniteSceneProxy.h:210
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition SharedPointer.h:692
Definition GeometryCollectionComponent.h:578
Definition GeometryCollectionObject.h:393
Definition MaterialInterface.h:296
Type
Definition RHIFeatureLevel.h:20
Definition CollectionBoundsFacade.cpp:13
Definition SkinnedMeshComponent.h:50
Definition EngineTypes.h:1339
Definition ShowFlags.h:56
Definition GeometryCollectionSceneProxy.h:90
FGeometryCollectionDynamicData()
Definition GeometryCollectionSceneProxy.h:94
void Reset()
Definition GeometryCollectionSceneProxy.h:99
void SetTransforms(const TArray< FTransform3f > &InTransforms)
Definition GeometryCollectionSceneProxy.h:111
TArray< FMatrix44f > Transforms
Definition GeometryCollectionSceneProxy.h:91
uint64 FrameIndex
Definition GeometryCollectionSceneProxy.h:92
void SetTransforms(const TArray< FTransform > &InTransforms)
Definition GeometryCollectionSceneProxy.h:105
Definition GeometryCollectionRenderData.h:91
Definition GeometryCollectionRenderData.h:55
Definition GeometryCollectionSection.h:13
Definition GeometryCollectionRendering.h:57
Definition MaterialRelevance.h:13
Definition GeometryCollectionSceneProxy.h:374
uint32 HierarchyOffset
Definition GeometryCollectionSceneProxy.h:376
FBoxSphereBounds LocalBounds
Definition GeometryCollectionSceneProxy.h:375
Definition PrimitiveViewRelevance.h:14
Definition RHIResources.h:1417
FRHIBufferCreateDesc & DetermineInitialState()
Definition RHIResources.h:1529
FRHIBufferCreateDesc & AddUsage(EBufferUsageFlags InUsage)
Definition RHIResources.h:1524
static FBufferSRV::FInitializer CreateBufferSRV()
Definition RHIResources.h:3124
Definition RHIUtilities.h:181
Definition NaniteSceneProxy.h:163
Definition NaniteSceneProxy.h:181
Definition BoxSphereBounds.h:25
TMatrix< T > ToMatrixWithScale() const
Definition TransformNonVectorized.h:241