40 FRHIBufferCreateDesc::CreateVertex<FVector4f>(
TEXT(
"FGeometryCollectionTransformBuffer"),
NumTransforms * 4)
63 for (
int TransformIndex = 0; TransformIndex <
SrcTransforms.Num(); ++TransformIndex)
73 for (
int TransformIndex = 0; TransformIndex <
SrcTransforms.Num(); ++TransformIndex)
82 for (
int TransformIndex = 0; TransformIndex <
SrcTransforms.Num(); ++TransformIndex)
152 return TransformBuffers[CurrentTransformBufferIndex];
157 return TransformBuffers[CurrentTransformBufferIndex];
162 const int32 NumBuffers = TransformBuffers.Num();
163 const int32 PreviousIndex = (CurrentTransformBufferIndex + NumBuffers - 1) % NumBuffers;
164 return TransformBuffers[PreviousIndex];
171 CurrentTransformBufferIndex = (CurrentTransformBufferIndex + 1) % TransformBuffers.Num();
214 int32 CurrentTransformBufferIndex = 0;
217 const bool bHasRayTracingRepresentation =
false;
226 bool bRenderResourcesCreated =
false;
247 bool bRenderResourcesCreated =
false;
250 bool bShowBoneColors =
false;
258#if GEOMETRYCOLLECTION_EDITOR_SELECTION
260 bool bEnableBoneSelection =
false;
284#if GEOMETRYCOLLECTION_EDITOR_SELECTION
293 bool IsRayTracingRelevant()
const override {
return FGeometryCollectionSceneProxyBase::IsRayTracingRelevant(); }
326#if GEOMETRYCOLLECTION_EDITOR_SELECTION
362 bool IsRayTracingRelevant()
const override {
return FGeometryCollectionSceneProxyBase::IsRayTracingRelevant(); }
386#if GEOMETRYCOLLECTION_EDITOR_SELECTION
402 void UpdateInstanceSceneDataBuffers(
const FMatrix& PrimitiveLocalToWorld);
uint64 GFrameCounter
Definition CoreGlobals.cpp:418
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
EResourceLockMode
Definition RHIDefinitions.h:785
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 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 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
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