UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FBaseDynamicMeshSceneProxy Class Referenceabstract

#include <BaseDynamicMeshSceneProxy.h>

+ Inheritance diagram for FBaseDynamicMeshSceneProxy:

Public Member Functions

GEOMETRYFRAMEWORK_API FBaseDynamicMeshSceneProxy (UBaseDynamicMeshComponent *Component)
 
virtual GEOMETRYFRAMEWORK_API ~FBaseDynamicMeshSceneProxy ()
 
virtual void GetActiveRenderBufferSets (TArray< FMeshRenderBufferSet * > &Buffers) const =0
 
virtual GEOMETRYFRAMEWORK_API FMeshRenderBufferSetAllocateNewRenderBufferSet ()
 
virtual GEOMETRYFRAMEWORK_API void ReleaseRenderBufferSet (FMeshRenderBufferSet *BufferSet)
 
template<typename TriangleEnumerable >
void InitializeBuffersFromOverlays (FMeshRenderBufferSet *RenderBuffers, const FDynamicMesh3 *Mesh, int NumTriangles, const TriangleEnumerable &Enumerable, const FDynamicMeshUVOverlay *UVOverlay, const FDynamicMeshNormalOverlay *NormalOverlay, const FDynamicMeshColorOverlay *ColorOverlay, TFunctionRef< void(int, int, int, const FVector3f &, FVector3f &, FVector3f &)> TangentsFunc, bool bTrackTriangles=false, bool bParallel=false)
 
template<typename TriangleEnumerable , typename UVOverlayListAllocator >
void InitializeBuffersFromOverlays (FMeshRenderBufferSet *RenderBuffers, const FDynamicMesh3 *Mesh, int NumTriangles, const TriangleEnumerable &Enumerable, const TArray< const FDynamicMeshUVOverlay *, UVOverlayListAllocator > &UVOverlays, const FDynamicMeshNormalOverlay *NormalOverlay, const FDynamicMeshColorOverlay *ColorOverlay, TFunctionRef< void(int, int, int, const FVector3f &, FVector3f &, FVector3f &)> TangentsFunc, bool bTrackTriangles=false, bool bParallel=false)
 
void UpdateSecondaryTriangleBuffer (FMeshRenderBufferSet *RenderBuffers, const FDynamicMesh3 *Mesh, bool bDuplicate)
 
void RecomputeRenderBufferTriangleIndexSets (FMeshRenderBufferSet *RenderBuffers, const FDynamicMesh3 *Mesh)
 
template<typename TriangleEnumerable >
void UpdateVertexBuffersFromOverlays (FMeshRenderBufferSet *RenderBuffers, const FDynamicMesh3 *Mesh, int NumTriangles, const TriangleEnumerable &Enumerable, const FDynamicMeshNormalOverlay *NormalOverlay, const FDynamicMeshColorOverlay *ColorOverlay, TFunctionRef< void(int, int, int, const FVector3f &, FVector3f &, FVector3f &)> TangentsFunc, bool bUpdatePositions=true, bool bUpdateNormals=false, bool bUpdateColors=false)
 
template<typename TriangleEnumerable , typename UVOverlayListAllocator >
void UpdateVertexUVBufferFromOverlays (FMeshRenderBufferSet *RenderBuffers, const FDynamicMesh3 *Mesh, int32 NumTriangles, const TriangleEnumerable &Enumerable, const TArray< const FDynamicMeshUVOverlay *, UVOverlayListAllocator > &UVOverlays)
 
virtual GEOMETRYFRAMEWORK_API int32 GetNumMaterials () const
 
virtual GEOMETRYFRAMEWORK_API UMaterialInterfaceGetMaterial (int32 k) const
 
void SetVerifyUsedMaterials (const bool bState)
 
virtual GEOMETRYFRAMEWORK_API void UpdatedReferencedMaterials ()
 
virtual GEOMETRYFRAMEWORK_API void GetDynamicMeshElements (const TArray< const FSceneView * > &Views, const FSceneViewFamily &ViewFamily, uint32 VisibilityMap, FMeshElementCollector &Collector) const override
 
virtual GEOMETRYFRAMEWORK_API void DrawStaticElements (FStaticPrimitiveDrawInterface *PDI) override
 
virtual GEOMETRYFRAMEWORK_API bool AllowStaticDrawPath (const FSceneView *View) const
 
virtual GEOMETRYFRAMEWORK_API void DrawBatch (FMeshElementCollector &Collector, const FMeshRenderBufferSet &RenderBuffers, const FDynamicMeshIndexBuffer32 &IndexBuffer, FMaterialRenderProxy *UseMaterial, bool bWireframe, ESceneDepthPriorityGroup DepthPriority, int ViewIndex, FDynamicPrimitiveUniformBuffer &DynamicPrimitiveUniformBuffer) const
 
virtual GEOMETRYFRAMEWORK_API const FCardRepresentationDataGetMeshCardRepresentation () const override
 
GEOMETRYFRAMEWORK_API void SetNewDistanceField (TSharedPtr< FDistanceFieldVolumeData > NewDistanceField, bool bInInitialize)
 
GEOMETRYFRAMEWORK_API void SetCollisionData ()
 
GEOMETRYFRAMEWORK_API bool IsCollisionView (const FEngineShowFlags &EngineShowFlags, bool &bDrawSimpleCollision, bool &bDrawComplexCollision) const
 
- Public Member Functions inherited from FPrimitiveSceneProxy
ENGINE_API FPrimitiveSceneProxy (const UPrimitiveComponent *InComponent, FName ResourceName=NAME_None)
 
ENGINE_API FPrimitiveSceneProxy (const FPrimitiveSceneProxyDesc &InDesc, FName ResourceName=NAME_None)
 
ENGINE_API FPrimitiveSceneProxy (FPrimitiveSceneProxy const &)
 
virtual ENGINE_API ~FPrimitiveSceneProxy ()
 
virtual SIZE_T GetTypeHash () const =0
 
ENGINE_API void SetSelection_GameThread (const bool bInParentSelected, const bool bInIndividuallySelected=false)
 
ENGINE_API void SetLevelInstanceEditingState_GameThread (const bool bInEditingState)
 
void SetHovered_GameThread (const bool bInHovered)
 
void SetLightingChannels_GameThread (FLightingChannels LightingChannels)
 
void SetHiddenEdViews_GameThread (uint64 InHiddenEditorViews)
 
ENGINE_API void SetPrimitiveColor_GameThread (const FLinearColor &InPrimitiveColor)
 
ENGINE_API void ResetSceneVelocity_GameThread ()
 
void SetEvaluateWorldPositionOffset_GameThread (bool bEvaluate)
 
virtual void SetWorldPositionOffsetDisableDistance_GameThread (int32 NewValue)
 
virtual void SetInstanceCullDistance_RenderThread (float StartCullDistance, float EndCullDistance)
 
ENGINE_API bool IsShown (const FSceneView *View) const
 
ENGINE_API bool IsShadowCast (const FSceneView *View) const
 
ENGINE_API void RenderBounds (FPrimitiveDrawInterface *PDI, const FEngineShowFlags &EngineShowFlags, const FBoxSphereBounds &Bounds, bool bRenderInEditor) const
 
ENGINE_API bool VerifyUsedMaterial (const class FMaterialRenderProxy *MaterialRenderProxy) const
 
virtual int32 GetLOD (const FSceneView *View) const
 
virtual ENGINE_API HHitProxyCreateHitProxies (UPrimitiveComponent *Component, TArray< TRefCountPtr< HHitProxy > > &OutHitProxies)
 
virtual ENGINE_API HHitProxyCreateHitProxies (IPrimitiveComponent *ComponentInterface, TArray< TRefCountPtr< HHitProxy > > &OutHitProxies)
 
virtual void GetMeshDescription (int32 LODIndex, TArray< FMeshBatch > &OutMeshElements) const
 
virtual void GetShadowShapes (FVector PreViewTranslation, TArray< FCapsuleShape3f > &OutCapsuleShapes) const
 
virtual bool IsCullingReversedByComponent () const
 
virtual void GetStreamableRenderAssetInfo (const FBoxSphereBounds &PrimitiveBounds, TArray< struct FStreamingRenderAssetPrimitiveInfo > &StreamableRenderAssets) const
 
bool IsSupportingStreamableRenderAssetsGathering () const
 
virtual bool CanApplyStreamableRenderAssetScaleFactor () const
 
bool IsForceMipStreaming () const
 
virtual void ApplyViewDependentMeshArguments (const FSceneView &View, FMeshBatch &ViewDependentMeshBatch) const
 
virtual const TArray< FBoxSphereBounds > * GetOcclusionQueries (const FSceneView *View) const
 
virtual void AcceptOcclusionResults (const FSceneView *View, TArray< bool > *Results, int32 ResultsStart, int32 NumResults)
 
virtual ENGINE_API FPrimitiveViewRelevance GetViewRelevance (const FSceneView *View) const
 
virtual void GatherSimpleLights (const FSceneViewFamily &ViewFamily, FSimpleLightArray &OutParticleLights) const
 
virtual void GetLightRelevance (const FLightSceneProxy *LightSceneProxy, bool &bDynamic, bool &bRelevant, bool &bLightMapped, bool &bShadowMapped) const
 
virtual void GetDistanceFieldAtlasData (const class FDistanceFieldVolumeData *&OutDistanceFieldData, float &SelfShadowBias) const
 
virtual void GetDistanceFieldInstanceData (TArray< FRenderTransform > &InstanceLocalToPrimitiveTransforms) const final
 
virtual bool HeightfieldHasPendingStreaming () const
 
virtual bool StaticMeshHasPendingStreaming () const
 
virtual void GetHeightfieldRepresentation (UTexture2D *&OutHeightmapTexture, UTexture2D *&OutVisibilityTexture, FHeightfieldComponentDescription &OutDescription) const
 
virtual TConstArrayView< FPrimitiveComponentIdGetSourceLandscapeComponentIds () const
 
virtual void CreateRenderThreadResources (FRHICommandListBase &RHICmdList)
 
virtual void DestroyRenderThreadResources ()
 
virtual void OnDetachLight (const FLightSceneInfo *Light)
 
virtual void OnTransformChanged (FRHICommandListBase &RHICmdList)
 
virtual bool CanBeOccluded () const
 
virtual bool AllowInstanceCullingOcclusionQueries () const
 
bool CanSkipRedundantTransformUpdates () const
 
void SetCanSkipRedundantTransformUpdates (bool bCanSkip)
 
virtual bool IsUsingDistanceCullFade () const
 
virtual bool HasSubprimitiveOcclusionQueries () const
 
virtual bool ShowInBSPSplitViewmode () const
 
virtual ESceneDepthPriorityGroup GetStaticDepthPriorityGroup () const
 
ENGINE_API ESceneDepthPriorityGroup GetDepthPriorityGroup (const FSceneView *View) const
 
virtual uint32 GetMemoryFootprint (void) const =0
 
SIZE_T GetAllocatedSize (void) const
 
void SetCollisionEnabled_GameThread (const bool bNewEnabled)
 
void SetCollisionEnabled_RenderThread (const bool bNewEnabled)
 
void SetCustomDepthEnabled_GameThread (const bool bInRenderCustomDepth)
 
void SetCustomDepthEnabled_RenderThread (const bool bInRenderCustomDepth)
 
void SetCustomDepthStencilValue_GameThread (const int32 InCustomDepthStencilValue)
 
void SetCustomDepthStencilValue_RenderThread (const int32 InCustomDepthStencilValue)
 
void SetDistanceFieldSelfShadowBias_RenderThread (float NewBias)
 
ENGINE_API void SetDrawDistance_RenderThread (float MinDrawDistance, float MaxDrawDistance, float VirtualTextureMaxDrawDistance)
 
FSceneInterfaceGetScene () const
 
FPrimitiveComponentId GetPrimitiveComponentId () const
 
FPrimitiveSceneInfoGetPrimitiveSceneInfo () const
 
const FMatrixGetLocalToWorld () const
 
bool IsLocalToWorldDeterminantNegative () const
 
const FBoxSphereBoundsGetBounds () const
 
const FBoxSphereBoundsGetLocalBounds () const
 
virtual ENGINE_API void GetPreSkinnedLocalBounds (FBoxSphereBounds &OutBounds) const
 
FName GetOwnerName () const
 
FName GetResourceName () const
 
FName GetLevelName () const
 
TStatId GetStatId () const
 
float GetMinDrawDistance () const
 
float GetMaxDrawDistance () const
 
int32 GetVisibilityId () const
 
int16 GetTranslucencySortPriority () const
 
float GetTranslucencySortDistanceOffset () const
 
int32 GetVirtualTextureLodBias () const
 
int32 GetVirtualTextureCullMips () const
 
int32 GetVirtualTextureMinCoverage () const
 
const TArray< int32 > & GetRuntimeVirtualTextureIds () const
 
bool IsMovable () const
 
bool IsOftenMoving () const
 
bool IsMeshShapeOftenMoving () const
 
ELightmapType GetLightmapType () const
 
bool IsStatic () const
 
bool IsSelectable () const
 
bool IsParentSelected () const
 
bool IsIndividuallySelected () const
 
bool IsEditingLevelInstanceChild () const
 
bool IsSelected () const
 
bool WantsEditorEffects () const
 
bool WantsSelectionOutline () const
 
ENGINE_API bool ShouldRenderCustomDepth () const
 
bool IsVisibleInSceneCaptureOnly () const
 
bool IsHiddenInSceneCapture () const
 
uint8 GetCustomDepthStencilValue () const
 
EStencilMask GetStencilWriteMask () const
 
uint8 GetLightingChannelMask () const
 
uint8 GetLightingChannelStencilValue () const
 
bool IsVisibleInReflectionCaptures () const
 
bool IsVisibleInRealTimeSkyCaptures () const
 
bool IsVisibleInRayTracing () const
 
bool IsVisibleInLumenScene () const
 
bool IsOpaqueOrMasked () const
 
bool SupportsMaterialCache () const
 
bool ShouldRenderInMainPass () const
 
bool ShouldRenderInDepthPass () const
 
bool SupportsParallelGDME () const
 
bool SinglePassGDME () const
 
bool SupportsParallelGDRTI () const
 
bool IsCollisionEnabled () const
 
bool IsHovered () const
 
bool IsOwnedBy (const FSceneViewOwner &Owner) const
 
bool HasViewDependentDPG () const
 
bool HasStaticLighting () const
 
bool NeedsUnbuiltPreviewLighting () const
 
bool CastsStaticShadow () const
 
bool CastsDynamicShadow () const
 
bool IsEmissiveLightSource () const
 
bool WritesVirtualTexture () const
 
bool WritesVirtualTexture (URuntimeVirtualTexture *VirtualTexture) const
 
bool AffectsDynamicIndirectLighting () const
 
bool AffectsDistanceFieldLighting () const
 
bool AffectsIndirectLightingWhileHidden () const
 
EIndirectLightingCacheQuality GetIndirectLightingCacheQuality () const
 
bool CastsVolumetricTranslucentShadow () const
 
bool CastsContactShadow () const
 
bool CastsDeepShadow () const
 
bool CastsCapsuleDirectShadow () const
 
bool CastsDynamicIndirectShadow () const
 
float GetDynamicIndirectShadowMinVisibility () const
 
bool CastsHiddenShadow () const
 
bool CastsShadowAsTwoSided () const
 
bool CastsSelfShadowOnly () const
 
bool CastsInsetShadow () const
 
bool CastsCinematicShadow () const
 
bool CastsFarShadow () const
 
bool LightAttachmentsAsGroup () const
 
ENGINE_API bool UseSingleSampleShadowFromStationaryLights () const
 
bool StaticElementsAlwaysUseProxyPrimitiveUniformBuffer () const
 
bool DoesVFRequirePrimitiveUniformBuffer () const
 
ENGINE_API bool IsInstanceDataGPUOnly () const
 
bool DoesMeshBatchesUseSceneInstanceCount () const
 
bool ShouldUseAsOccluder () const
 
bool AllowApproximateOcclusion () const
 
bool Holdout () const
 
bool IsSplineMesh () const
 
bool IsSkinnedMesh () const
 
bool IsFirstPerson () const
 
bool IsFirstPersonWorldSpaceRepresentation () const
 
bool IsOwnerNoSee () const
 
bool IsOnlyOwnerSee () const
 
FRHIUniformBufferGetUniformBuffer () const
 
bool HasPerInstanceHitProxies () const
 
ENGINE_API bool UseEditorCompositing (const FSceneView *View) const
 
const FVectorGetActorPosition () const
 
const bool ReceivesDecals () const
 
bool WillEverBeLit () const
 
bool HasValidSettingsForStaticLighting () const
 
bool SupportsDistanceFieldRepresentation () const
 
bool SupportsHeightfieldRepresentation () const
 
bool IsLumenHeightfield () const
 
bool IsLandscapeProxy () const
 
bool IsLandscapeNaniteProxy () const
 
bool IsCompatibleWithLumenCardSharing () const
 
bool SupportsInstanceDataBuffer () const
 
bool SupportsSortedTriangles () const
 
bool TreatAsBackgroundForOcclusion () const
 
bool ShouldNotifyOnWorldAddRemove () const
 
bool IsForceHidden () const
 
bool ShouldReceiveMobileCSMShadows () const
 
bool IsRayTracingFarField () const
 
int32 GetRayTracingGroupId () const
 
uint8 GetRayTracingGroupCullingPriority () const
 
bool EvaluateWorldPositionOffset () const
 
bool AnyMaterialHasWorldPositionOffset () const
 
bool AnyMaterialAlwaysEvaluatesWorldPositionOffset () const
 
bool AnyMaterialHasPixelAnimation () const
 
bool AnyMaterialUsesTemporalResponsiveness () const
 
bool AnyMaterialUsesMotionVectorWorldOffset () const
 
float GetMaxWorldPositionOffsetExtent () const
 
const FVector2fGetMinMaxMaterialDisplacement () const
 
float GetAbsMaxDisplacement () const
 
bool HasDynamicTransform () const
 
bool DrawsVelocity () const
 
bool AlwaysHasVelocity () const
 
FLinearColor GetWireframeColor () const
 
FLinearColor GetPrimitiveColor () const
 
void SetWireframeColor (const FLinearColor &InWireframeColor)
 
void SetPrimitiveColor (const FLinearColor &InPrimitiveColor)
 
virtual bool IsDetailMesh () const
 
virtual FSkinningSceneExtensionProxyGetSkinningSceneExtensionProxy () const
 
bool IsNaniteMesh () const
 
bool IsAlwaysVisible () const
 
bool IsHeterogeneousVolume () const
 
bool SupportsGPUScene () const
 
bool HasDeformableMesh () const
 
virtual bool HasCustomOcclusionBounds () const
 
virtual FBoxSphereBounds GetCustomOcclusionBounds () const
 
virtual bool HasDistanceFieldRepresentation () const
 
virtual bool HasDynamicIndirectShadowCasterRepresentation () const
 
virtual bool GetInstanceDrawDistanceMinMax (FVector2f &OutDistanceMinMax) const
 
virtual bool GetInstanceWorldPositionOffsetDisableDistance (float &OutWPODisableDistance) const
 
virtual void GetNaniteResourceInfo (uint32 &ResourceID, uint32 &HierarchyOffset, uint32 &ImposterIndex) const
 
virtual float GetAnimationMinScreenSize () const
 
virtual FRenderCurveResourceDataGetRenderCurveResourceData ()
 
virtual ENGINE_API void ApplyWorldOffset (FRHICommandListBase &RHICmdList, FVector InOffset)
 
virtual ENGINE_API void ApplyLateUpdateTransform (FRHICommandListBase &RHICmdList, const FMatrix &LateUpdateTransform)
 
ENGINE_API void UpdateUniformBuffer (FRHICommandList &RHICmdList)
 
ENGINE_API void BuildUniformShaderParameters (FPrimitiveUniformShaderParametersBuilder &Builder) const
 
virtual ENGINE_API void SetDebugMassData (const TArray< FDebugMassData > &InDebugMassData)
 
FName GetMeshDrawCommandStatsCategory () const
 
virtual void GetLCIs (FLCIArray &LCIs)
 
virtual int32 GetLightMapResolution () const
 
virtual int32 GetLightMapCoordinateIndex () const
 
bool IsDrawnInGame () const
 
ENGINE_API void SetDrawnInGame_RenderThread (bool bInDrawInGame)
 
bool IsDrawnInEditor () const
 
virtual uint8 GetCurrentFirstLODIdx_RenderThread () const
 
virtual FDesiredLODLevel GetDesiredLODLevel_RenderThread (const FSceneView *View) const
 
virtual float GetLodScreenSizeScale () const
 
virtual float GetGpuLodInstanceRadius () const
 
virtual FUintVector2 GetMeshPaintTextureDescriptor () const
 
virtual ENGINE_API uint32 GetMaterialCacheDescriptor () const
 
const FCustomPrimitiveDataGetCustomPrimitiveData () const
 
EShadowCacheInvalidationBehavior GetShadowCacheInvalidationBehavior () const
 
bool HasInstanceDataBuffers () const
 
ENGINE_API const FInstanceSceneDataBuffersGetInstanceSceneDataBuffers (EInstanceBufferAccessFlags AccessFlags=EInstanceBufferAccessFlags::SynchronizeUpdateTask) const
 
virtual FInstanceDataUpdateTaskInfoGetInstanceDataUpdateTaskInfo () const
 
ENGINE_API FInstanceDataBufferHeader GetInstanceDataHeader () const
 

Static Public Member Functions

static GEOMETRYFRAMEWORK_API FMaterialRenderProxyGetEngineVertexColorMaterialProxy (FMeshElementCollector &Collector, const FEngineShowFlags &EngineShowFlags, bool bProxyIsSelected, bool bIsHovered)
 
static TUniquePtr< FDistanceFieldVolumeDataComputeDistanceFieldForMesh (const FDynamicMesh3 &Mesh, FProgressCancel &Progress, float DistanceFieldResolutionScale=1.0, bool bGenerateAsIfTwoSided=false)
 
- Static Public Member Functions inherited from FPrimitiveSceneProxy
static ENGINE_API void DrawArc (FPrimitiveDrawInterface *PDI, const FVector &Start, const FVector &End, const float Height, const uint32 Segments, const FLinearColor &Color, uint8 DepthPriorityGroup, const float Thickness=0.0f, const bool bScreenSpace=false)
 
static ENGINE_API void DrawArrowHead (FPrimitiveDrawInterface *PDI, const FVector &Tip, const FVector &Origin, const float Size, const FLinearColor &Color, uint8 DepthPriorityGroup, const float Thickness=0.0f, const bool bScreenSpace=false)
 

Public Attributes

UBaseDynamicMeshComponentParentBaseComponent
 
FMeshRenderBufferSetConversionUtil MeshRenderBufferSetConverter
 
- Public Attributes inherited from FPrimitiveSceneProxy
TArray< FDebugMassDataDebugMassData
 
TSharedPtr< int32, ESPMode::ThreadSafeSimpleStreamableAssetManagerIndex = MakeShared<int32, ESPMode::ThreadSafe>(INDEX_NONE)
 
TArray< class FMaterialCacheVirtualTextureRenderProxy * > MaterialCacheRenderProxies
 
uint32 MaterialCacheDescriptor = UINT32_MAX
 

Protected Member Functions

virtual GEOMETRYFRAMEWORK_API void GetCollisionDynamicMeshElements (TArray< FMeshRenderBufferSet * > &Buffers, const FEngineShowFlags &EngineShowFlags, bool bDrawCollisionView, bool bDrawSimpleCollision, bool bDrawComplexCollision, bool bProxyIsSelected, const TArray< const FSceneView * > &Views, uint32 VisibilityMap, FMeshElementCollector &Collector) const
 
void UpdateLumenCardsFromBounds ()
 
- Protected Member Functions inherited from FPrimitiveSceneProxy
ENGINE_API void SetupInstanceSceneDataBuffers (const FInstanceSceneDataBuffers *InInstanceSceneDataBuffers)
 
ENGINE_API void UpdateVisibleInLumenScene ()
 
bool IsRuntimeVirtualTextureOnly () const
 
bool DrawInRuntimeVirtualTextureOnly (bool bEditor) const
 
void OverrideOwnerName (FName InOwnerName)
 
ENGINE_API void OnLevelAddedToWorld_RenderThread ()
 
ENGINE_API void OnLevelRemovedFromWorld_RenderThread ()
 
void SetForceHidden (bool bForceHiddenIn)
 
virtual void OnForceHiddenChanged ()
 
ENGINE_API void EnableGPUSceneSupportFlags ()
 
virtual ENGINE_API void UpdateInstances_RenderThread (FRHICommandListBase &RHICmdList, const FBoxSphereBounds &InBounds, const FBoxSphereBounds &InLocalBounds, const FBoxSphereBounds &InStaticMeshBounds) final
 
virtual ENGINE_API void UpdateInstances_RenderThread (FRHICommandListBase &RHICmdList, const FBoxSphereBounds &InBounds, const FBoxSphereBounds &InLocalBounds)
 
void SetSelection_RenderThread (const bool bInParentSelected, const bool bInIndividuallySelected)
 
void SetLevelInstanceEditingState_RenderThread (const bool bInLevelInstanceEditingState)
 
void SetHovered_RenderThread (const bool bInHovered)
 
virtual void OnEvaluateWorldPositionOffsetChanged_RenderThread ()
 
ENGINE_API FRenderBounds PadInstanceLocalBounds (const FRenderBounds &InBounds)
 

Protected Attributes

TSet< FMeshRenderBufferSet * > AllocatedBufferSets
 
FCriticalSection AllocatedSetsLock
 
bool bTwoSided = false
 
bool bEnableRaytracing = false
 
bool bEnableViewModeOverrides = true
 
bool bPreferStaticDrawPath = false
 
TPimplPtr< FCardRepresentationDataMeshCards
 
bool bMeshCardsValid = false
 
TSharedPtr< FDistanceFieldVolumeDataDistanceField
 
bool bDistanceFieldValid = false
 
- Protected Attributes inherited from FPrimitiveSceneProxy
uint8 bSupportsParallelGDME: 1
 
uint8 bSinglePassGDME: 1
 
uint8 bSupportsParallelGDRTI: 1
 
uint8 bVisibleInLumenScene: 1
 
uint8 bOpaqueOrMasked: 1
 
uint8 bCanSkipRedundantTransformUpdates: 1
 
uint8 bGoodCandidateForCachedShadowmap: 1
 
uint8 bNeedsUnbuiltPreviewLighting: 1
 
uint8 bHasValidSettingsForStaticLighting: 1
 
uint8 bWillEverBeLit: 1
 
uint8 bCastDynamicShadow: 1
 
uint8 bEmissiveLightSource: 1
 
uint8 bAffectDynamicIndirectLighting: 1
 
uint8 bAffectIndirectLightingWhileHidden: 1
 
uint8 bAffectDistanceFieldLighting: 1
 
uint8 bSupportsMaterialCache: 1
 
uint8 bCastStaticShadow: 1
 
EShadowCacheInvalidationBehavior ShadowCacheInvalidationBehavior
 
uint8 bCastVolumetricTranslucentShadow: 1
 
uint8 bCastContactShadow: 1
 
uint8 bCastDeepShadow: 1
 
uint8 bCastCapsuleDirectShadow: 1
 
uint8 bCastsDynamicIndirectShadow: 1
 
uint8 bCastHiddenShadow: 1
 
uint8 bCastShadowAsTwoSided: 1
 
uint8 bSelfShadowOnly: 1
 
uint8 bCastInsetShadow: 1
 
uint8 bCastCinematicShadow: 1
 
uint8 bCastFarShadow: 1
 
uint8 bLightAttachmentsAsGroup: 1
 
uint8 bSingleSampleShadowFromStationaryLights: 1
 
uint8 bStaticElementsAlwaysUseProxyPrimitiveUniformBuffer: 1
 
uint8 bVFRequiresPrimitiveUniformBuffer: 1
 
uint8 bDoesMeshBatchesUseSceneInstanceCount: 1
 
uint8 bIsStaticMesh: 1
 
uint8 bIsNaniteMesh: 1
 
uint8 bIsAlwaysVisible: 1
 
uint8 bIsHeterogeneousVolume: 1
 
uint8 bIsHierarchicalInstancedStaticMesh: 1
 
uint8 bIsLandscapeGrass: 1
 
uint8 bSupportsGPUScene: 1
 
uint8 bHasDeformableMesh: 1
 
uint8 bEvaluateWorldPositionOffset: 1
 
uint8 bHasWorldPositionOffsetVelocity: 1
 
uint8 bAnyMaterialHasWorldPositionOffset: 1
 
uint8 bAnyMaterialAlwaysEvaluatesWorldPositionOffset: 1
 
uint8 bAnyMaterialHasPixelAnimation: 1
 
uint8 bAnyMaterialUsesTemporalResponsiveness: 1
 
uint8 bAnyMaterialUsesMotionVectorWorldOffset: 1
 
uint8 bAlwaysHasVelocity: 1
 
uint8 bSupportsDistanceFieldRepresentation: 1
 
uint8 bSupportsHeightfieldRepresentation: 1
 
uint8 bLumenHeightfield: 1
 
uint8 bIsLandscapeProxy: 1
 
uint8 bIsLandscapeNaniteProxy: 1
 
uint8 bCompatibleWithLumenCardSharing: 1
 
uint8 bSupportsSortedTriangles: 1
 
uint8 bShouldNotifyOnWorldAddRemove: 1
 
uint8 bWantsSelectionOutline: 1
 
uint8 bVerifyUsedMaterials: 1
 
uint8 bWantsEditorEffects: 1
 
uint8 bAllowApproximateOcclusion: 1
 
uint8 bHoldout: 1
 
uint8 bSplineMesh: 1
 
uint8 bSkinnedMesh: 1
 
uint8 bInstancedSkinnedMesh: 1
 
uint8 bIsFirstPerson: 1
 
uint8 bIsFirstPersonWorldSpaceRepresentation: 1
 
uint8 bSupportsRuntimeVirtualTexture: 1
 
uint8 bImplementsStreamableAssetGathering: 1
 
FMaterialRelevance CombinedMaterialRelevance
 
TEnumAsByte< EIndirectLightingCacheQualityIndirectLightingCacheQuality
 
int8 VirtualTextureLodBias
 
int8 VirtualTextureCullMips
 
int8 VirtualTextureMinCoverage
 
float DynamicIndirectShadowMinVisibility
 
float DistanceFieldSelfShadowBias
 
float MaxWPOExtent
 
FVector2f MinMaxMaterialDisplacement
 
TArray< int32RuntimeVirtualTextures
 
TArray< ERuntimeVirtualTextureMaterialTypeRuntimeVirtualTextureMaterialTypes
 
float MaxDrawDistance
 
float MinDrawDistance
 

Additional Inherited Members

- Public Types inherited from FPrimitiveSceneProxy
enum class  EInstanceBufferAccessFlags { SynchronizeUpdateTask , UnsynchronizedAndUnsafe }
 
typedef TArray< class FLightCacheInterface *, TInlineAllocator< 8 > > FLCIArray
 
- Static Public Attributes inherited from FPrimitiveSceneProxy
static constexpr int32 InvalidRayTracingGroupId = -1
 

Detailed Description

FBaseDynamicMeshSceneProxy is an abstract base class for a Render Proxy for a UBaseDynamicMeshComponent, where the assumption is that mesh data will be stored in FMeshRenderBufferSet instances

Constructor & Destructor Documentation

◆ FBaseDynamicMeshSceneProxy()

FBaseDynamicMeshSceneProxy::FBaseDynamicMeshSceneProxy ( UBaseDynamicMeshComponent Component)

◆ ~FBaseDynamicMeshSceneProxy()

PRAGMA_DISABLE_DEPRECATION_WARNINGS FBaseDynamicMeshSceneProxy::~FBaseDynamicMeshSceneProxy ( )
virtual

Member Function Documentation

◆ AllocateNewRenderBufferSet()

PRAGMA_ENABLE_DEPRECATION_WARNINGS FMeshRenderBufferSet * FBaseDynamicMeshSceneProxy::AllocateNewRenderBufferSet ( )
virtual

Allocates a set of render buffers. FPrimitiveSceneProxy will keep track of these buffers and destroy them on destruction.

◆ AllowStaticDrawPath()

bool FBaseDynamicMeshSceneProxy::AllowStaticDrawPath ( const FSceneView View) const
virtual

◆ ComputeDistanceFieldForMesh()

TUniquePtr< FDistanceFieldVolumeData > FBaseDynamicMeshSceneProxy::ComputeDistanceFieldForMesh ( const FDynamicMesh3 Mesh,
FProgressCancel Progress,
float  DistanceFieldResolutionScale = 1.0,
bool  bGenerateAsIfTwoSided = false 
)
static

◆ DrawBatch()

void FBaseDynamicMeshSceneProxy::DrawBatch ( FMeshElementCollector Collector,
const FMeshRenderBufferSet RenderBuffers,
const FDynamicMeshIndexBuffer32 IndexBuffer,
FMaterialRenderProxy UseMaterial,
bool  bWireframe,
ESceneDepthPriorityGroup  DepthPriority,
int  ViewIndex,
FDynamicPrimitiveUniformBuffer DynamicPrimitiveUniformBuffer 
) const
virtual

Draw a single-frame FMeshBatch for a FMeshRenderBufferSet

◆ DrawStaticElements()

void FBaseDynamicMeshSceneProxy::DrawStaticElements ( FStaticPrimitiveDrawInterface PDI)
overridevirtual

Draws the primitive's static elements. This is called from the rendering thread once when the scene proxy is created. The static elements will only be rendered if GetViewRelevance declares static relevance.

Parameters
PDI- The interface which receives the primitive elements.

Reimplemented from FPrimitiveSceneProxy.

◆ GetActiveRenderBufferSets()

virtual void FBaseDynamicMeshSceneProxy::GetActiveRenderBufferSets ( TArray< FMeshRenderBufferSet * > &  Buffers) const
pure virtual

Return set of active renderbuffers. Must be implemented by subclass. This is the set of render buffers that will be drawn by GetDynamicMeshElements

Implemented in FDynamicMeshSceneProxy.

◆ GetCollisionDynamicMeshElements()

void FBaseDynamicMeshSceneProxy::GetCollisionDynamicMeshElements ( TArray< FMeshRenderBufferSet * > &  Buffers,
const FEngineShowFlags EngineShowFlags,
bool  bDrawCollisionView,
bool  bDrawSimpleCollision,
bool  bDrawComplexCollision,
bool  bProxyIsSelected,
const TArray< const FSceneView * > &  Views,
uint32  VisibilityMap,
FMeshElementCollector Collector 
) const
protectedvirtual

Helper called by GetDynamicMeshElements to process collision debug drawing

◆ GetDynamicMeshElements()

void FBaseDynamicMeshSceneProxy::GetDynamicMeshElements ( const TArray< const FSceneView * > &  Views,
const FSceneViewFamily ViewFamily,
uint32  VisibilityMap,
FMeshElementCollector Collector 
) const
overridevirtual

Render set of active RenderBuffers returned by GetActiveRenderBufferSets

Reimplemented from FPrimitiveSceneProxy.

◆ GetEngineVertexColorMaterialProxy()

FMaterialRenderProxy * FBaseDynamicMeshSceneProxy::GetEngineVertexColorMaterialProxy ( FMeshElementCollector Collector,
const FEngineShowFlags EngineShowFlags,
bool  bProxyIsSelected,
bool  bIsHovered 
)
static

If EngineShowFlags request vertex color rendering, returns the appropriate vertex color override material's render proxy. Otherwise returns nullptr.

◆ GetMaterial()

UMaterialInterface * FBaseDynamicMeshSceneProxy::GetMaterial ( int32  k) const
virtual

Safe GetMaterial function that will never return nullptr

◆ GetMeshCardRepresentation()

const FCardRepresentationData * FBaseDynamicMeshSceneProxy::GetMeshCardRepresentation ( ) const
overridevirtual

Reimplemented from FPrimitiveSceneProxy.

◆ GetNumMaterials()

int32 FBaseDynamicMeshSceneProxy::GetNumMaterials ( ) const
virtual
Returns
number of active materials

◆ InitializeBuffersFromOverlays() [1/2]

void FBaseDynamicMeshSceneProxy::InitializeBuffersFromOverlays ( FMeshRenderBufferSet RenderBuffers,
const FDynamicMesh3 Mesh,
int  NumTriangles,
const TriangleEnumerable Enumerable,
const FDynamicMeshUVOverlay *  UVOverlay,
const FDynamicMeshNormalOverlay *  NormalOverlay,
const FDynamicMeshColorOverlay *  ColorOverlay,
TFunctionRef< void(int, int, int, const FVector3f &, FVector3f &, FVector3f &)>  TangentsFunc,
bool  bTrackTriangles = false,
bool  bParallel = false 
)
inline

Initialize rendering buffers from given attribute overlays. Creates three vertices per triangle, IE no shared vertices in buffers.

◆ InitializeBuffersFromOverlays() [2/2]

void FBaseDynamicMeshSceneProxy::InitializeBuffersFromOverlays ( FMeshRenderBufferSet RenderBuffers,
const FDynamicMesh3 Mesh,
int  NumTriangles,
const TriangleEnumerable Enumerable,
const TArray< const FDynamicMeshUVOverlay *, UVOverlayListAllocator > &  UVOverlays,
const FDynamicMeshNormalOverlay *  NormalOverlay,
const FDynamicMeshColorOverlay *  ColorOverlay,
TFunctionRef< void(int, int, int, const FVector3f &, FVector3f &, FVector3f &)>  TangentsFunc,
bool  bTrackTriangles = false,
bool  bParallel = false 
)
inline

Initialize rendering buffers from given attribute overlays. Creates three vertices per triangle, IE no shared vertices in buffers.

◆ IsCollisionView()

bool FBaseDynamicMeshSceneProxy::IsCollisionView ( const FEngineShowFlags EngineShowFlags,
bool bDrawSimpleCollision,
bool bDrawComplexCollision 
) const

◆ RecomputeRenderBufferTriangleIndexSets()

void FBaseDynamicMeshSceneProxy::RecomputeRenderBufferTriangleIndexSets ( FMeshRenderBufferSet RenderBuffers,
const FDynamicMesh3 Mesh 
)
inline

RecomputeRenderBufferTriangleIndexSets re-sorts the existing set of triangles in a FMeshRenderBufferSet into primary and secondary index buffers. Note that UploadIndexBufferUpdate() must be called after this function!

◆ ReleaseRenderBufferSet()

void FBaseDynamicMeshSceneProxy::ReleaseRenderBufferSet ( FMeshRenderBufferSet BufferSet)
virtual

Explicitly release a set of RenderBuffers

◆ SetCollisionData()

void FBaseDynamicMeshSceneProxy::SetCollisionData ( )

◆ SetNewDistanceField()

void FBaseDynamicMeshSceneProxy::SetNewDistanceField ( TSharedPtr< FDistanceFieldVolumeData NewDistanceField,
bool  bInInitialize 
)

◆ SetVerifyUsedMaterials()

void FBaseDynamicMeshSceneProxy::SetVerifyUsedMaterials ( const bool  bState)
inline

Set whether or not to validate mesh batch materials against the component materials.

◆ UpdatedReferencedMaterials()

void FBaseDynamicMeshSceneProxy::UpdatedReferencedMaterials ( )
virtual

This needs to be called if the set of active materials changes, otherwise the check in FPrimitiveSceneProxy::VerifyUsedMaterial() will fail if an override material is set, if materials change, etc, etc

Reimplemented in FDynamicMeshSceneProxy.

◆ UpdateLumenCardsFromBounds()

void FBaseDynamicMeshSceneProxy::UpdateLumenCardsFromBounds ( )
protected

◆ UpdateSecondaryTriangleBuffer()

void FBaseDynamicMeshSceneProxy::UpdateSecondaryTriangleBuffer ( FMeshRenderBufferSet RenderBuffers,
const FDynamicMesh3 Mesh,
bool  bDuplicate 
)
inline

Filter the triangles in a FMeshRenderBufferSet into the SecondaryIndexBuffer. Requires that RenderBuffers->Triangles has been initialized.

Parameters
bDuplicateif set, then primary IndexBuffer is unmodified and SecondaryIndexBuffer contains duplicates. Otherwise triangles are sorted via predicate into either primary or secondary.

◆ UpdateVertexBuffersFromOverlays()

void FBaseDynamicMeshSceneProxy::UpdateVertexBuffersFromOverlays ( FMeshRenderBufferSet RenderBuffers,
const FDynamicMesh3 Mesh,
int  NumTriangles,
const TriangleEnumerable Enumerable,
const FDynamicMeshNormalOverlay *  NormalOverlay,
const FDynamicMeshColorOverlay *  ColorOverlay,
TFunctionRef< void(int, int, int, const FVector3f &, FVector3f &, FVector3f &)>  TangentsFunc,
bool  bUpdatePositions = true,
bool  bUpdateNormals = false,
bool  bUpdateColors = false 
)
inline

Update vertex positions/normals/colors of an existing set of render buffers. Assumes that buffers were created with unshared vertices, ie three vertices per triangle, eg by InitializeBuffersFromOverlays()

◆ UpdateVertexUVBufferFromOverlays()

void FBaseDynamicMeshSceneProxy::UpdateVertexUVBufferFromOverlays ( FMeshRenderBufferSet RenderBuffers,
const FDynamicMesh3 Mesh,
int32  NumTriangles,
const TriangleEnumerable Enumerable,
const TArray< const FDynamicMeshUVOverlay *, UVOverlayListAllocator > &  UVOverlays 
)
inline

Update vertex uvs of an existing set of render buffers. Assumes that buffers were created with unshared vertices, ie three vertices per triangle, eg by InitializeBuffersFromOverlays()

Member Data Documentation

◆ AllocatedBufferSets

TSet<FMeshRenderBufferSet*> FBaseDynamicMeshSceneProxy::AllocatedBufferSets
protected

◆ AllocatedSetsLock

FCriticalSection FBaseDynamicMeshSceneProxy::AllocatedSetsLock
protected

◆ bDistanceFieldValid

bool FBaseDynamicMeshSceneProxy::bDistanceFieldValid = false
protected

◆ bEnableRaytracing

bool FBaseDynamicMeshSceneProxy::bEnableRaytracing = false
protected

◆ bEnableViewModeOverrides

bool FBaseDynamicMeshSceneProxy::bEnableViewModeOverrides = true
protected

◆ bMeshCardsValid

bool FBaseDynamicMeshSceneProxy::bMeshCardsValid = false
protected

◆ bPreferStaticDrawPath

bool FBaseDynamicMeshSceneProxy::bPreferStaticDrawPath = false
protected

◆ bTwoSided

bool FBaseDynamicMeshSceneProxy::bTwoSided = false
protected

◆ DistanceField

TSharedPtr<FDistanceFieldVolumeData> FBaseDynamicMeshSceneProxy::DistanceField
protected

◆ MeshCards

TPimplPtr<FCardRepresentationData> FBaseDynamicMeshSceneProxy::MeshCards
protected

◆ MeshRenderBufferSetConverter

FMeshRenderBufferSetConversionUtil FBaseDynamicMeshSceneProxy::MeshRenderBufferSetConverter

Utility to initialize and update the mesh render buffers from a mesh with overlays and holds all the settings required.

◆ ParentBaseComponent

UBaseDynamicMeshComponent* FBaseDynamicMeshSceneProxy::ParentBaseComponent

The documentation for this class was generated from the following files: