UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FSkeletalMeshSceneProxy Class Reference

#include <SkeletalMeshSceneProxy.h>

+ Inheritance diagram for FSkeletalMeshSceneProxy:

Classes

struct  FLODSectionElements
 
struct  FSectionElementInfo
 

Public Member Functions

ENGINE_API SIZE_T GetTypeHash () const override
 
ENGINE_API FSkeletalMeshSceneProxy (const USkinnedMeshComponent *Component, FSkeletalMeshRenderData *InSkelMeshRenderData)
 
ENGINE_API FSkeletalMeshSceneProxy (const FSkinnedMeshSceneProxyDesc &InMeshDesc, FSkeletalMeshRenderData *InSkelMeshRenderData)
 
ENGINE_API FSkeletalMeshSceneProxy (const FSkinnedMeshSceneProxyDesc &InMeshDesc, FSkeletalMeshRenderData *InSkelMeshRenderData, int32 InClampedLODIndex)
 
virtual ENGINE_API ~FSkeletalMeshSceneProxy ()
 
virtual ENGINE_API void DrawStaticElements (FStaticPrimitiveDrawInterface *PDI) override
 
virtual ENGINE_API void GetDynamicMeshElements (const TArray< const FSceneView * > &Views, const FSceneViewFamily &ViewFamily, uint32 VisibilityMap, FMeshElementCollector &Collector) const override
 
virtual ENGINE_API const FCardRepresentationDataGetMeshCardRepresentation () const override
 
virtual ENGINE_API void CreateRenderThreadResources (FRHICommandListBase &RHICmdList) override
 
virtual ENGINE_API void DestroyRenderThreadResources () override
 
virtual ENGINE_API FPrimitiveViewRelevance GetViewRelevance (const FSceneView *View) const override
 
virtual ENGINE_API bool CanBeOccluded () const override
 
virtual ENGINE_API bool IsUsingDistanceCullFade () const override
 
virtual ENGINE_API bool HasDynamicIndirectShadowCasterRepresentation () const override
 
virtual ENGINE_API void GetShadowShapes (FVector PreViewTranslation, TArray< FCapsuleShape3f > &OutCapsuleShapes) const override
 
virtual bool CanApplyStreamableRenderAssetScaleFactor () const override
 
virtual void GetPreSkinnedLocalBounds (FBoxSphereBounds &OutBounds) const override
 
const TArray< uint16 > & GetSortedShadowBoneIndices () const
 
ENGINE_API FSkinningSceneExtensionProxyGetSkinningSceneExtensionProxy () const override
 
FSkeletalMeshObjectGetMeshObject () const
 
USkinnedAssetGetSkinnedAsset () const
 
ENGINE_API bool GetWorldMatrices (FMatrix &OutLocalToWorld, FMatrix &OutWorldToLocal) const
 
ENGINE_API int32 GetCurrentLODIndex ()
 
virtual ENGINE_API void DebugDrawPhysicsAsset (int32 ViewIndex, FMeshElementCollector &Collector, const FEngineShowFlags &EngineShowFlags) const
 
ENGINE_API void DebugDrawSkeleton (int32 ViewIndex, FMeshElementCollector &Collector, const FEngineShowFlags &EngineShowFlags) const
 
virtual uint32 GetMemoryFootprint (void) const override
 
SIZE_T GetAllocatedSize (void) const
 
ENGINE_API void UpdateMorphMaterialUsage_GameThread (TArray< UMaterialInterface * > &MaterialUsingMorphTarget)
 
virtual ENGINE_API void OnTransformChanged (FRHICommandListBase &RHICmdList) override
 
virtual uint8 GetCurrentFirstLODIdx_RenderThread () const final override
 
virtual ENGINE_API FDesiredLODLevel GetDesiredLODLevel_RenderThread (const FSceneView *View) const final override
 
ENGINE_API bool GetCachedGeometry (FRDGBuilder &GraphBuilder, struct FCachedGeometry &OutCachedGeometry) const
 
bool GetCachedGeometry (struct FCachedGeometry &OutCachedGeometry) 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 ()
 
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 bool IsCullingReversedByComponent () const
 
virtual void GetStreamableRenderAssetInfo (const FBoxSphereBounds &PrimitiveBounds, TArray< struct FStreamingRenderAssetPrimitiveInfo > &StreamableRenderAssets) const
 
bool IsSupportingStreamableRenderAssetsGathering () 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 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 OnDetachLight (const FLightSceneInfo *Light)
 
virtual bool AllowInstanceCullingOcclusionQueries () const
 
bool CanSkipRedundantTransformUpdates () const
 
void SetCanSkipRedundantTransformUpdates (bool bCanSkip)
 
virtual bool HasSubprimitiveOcclusionQueries () const
 
virtual bool ShowInBSPSplitViewmode () const
 
virtual ESceneDepthPriorityGroup GetStaticDepthPriorityGroup () const
 
ENGINE_API ESceneDepthPriorityGroup GetDepthPriorityGroup (const FSceneView *View) const
 
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
 
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
 
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 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 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
 

Protected Member Functions

ENGINE_API void GetDynamicElementsSection (const TArray< const FSceneView * > &Views, const FSceneViewFamily &ViewFamily, uint32 VisibilityMap, const FSkeletalMeshLODRenderData &LODData, const int32 LODIndex, const int32 SectionIndex, bool bSectionSelected, const FSectionElementInfo &SectionElementInfo, bool bInSelectable, FMeshElementCollector &Collector) const
 
ENGINE_API void GetMeshElementsConditionallySelectable (const TArray< const FSceneView * > &Views, const FSceneViewFamily &ViewFamily, bool bInSelectable, uint32 VisibilityMap, FMeshElementCollector &Collector) const
 
ENGINE_API uint8 GetCurrentFirstLODIdx_Internal () const
 
ENGINE_API 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

AActorOwner
 
FSkeletalMeshObjectMeshObject
 
USkinnedAssetSkinnedAsset
 
TUniquePtr< FSkinningSceneExtensionProxySceneExtensionProxy
 
FSkeletalMeshRenderDataRenderData
 
int32 ClampedLODIndex
 
uint8 NumLODs = 1u
 
class UPhysicsAssetPhysicsAssetForDebug
 
UMaterialInterfaceOverlayMaterial
 
float OverlayMaterialMaxDrawDistance
 
TArray< TObjectPtr< UMaterialInterface > > MaterialSlotsOverlayMaterial
 
uint8 bForceWireframe: 1
 
uint8 bIsCPUSkinned: 1
 
uint8 bCanHighlightSelectedSections: 1
 
uint8 bRenderStatic:1
 
uint8 bDrawDebugSkeleton:1
 
uint8 bAllowDynamicMeshBounds:1
 
TEnumAsByte< ERHIFeatureLevel::TypeFeatureLevel
 
bool bMaterialsNeedMorphUsage_GameThread
 
FMaterialRelevance MaterialRelevance
 
TArray< FLODSectionElementsLODSections
 
TArray< TPair< int32, FCapsuleShape > > ShadowCapsuleData
 
TArray< uint16ShadowCapsuleBoneIndices
 
TSet< UMaterialInterface * > MaterialsInUse_GameThread
 
FBoxSphereBounds PreSkinnedLocalBounds
 
class FCardRepresentationDataCardRepresentationData = nullptr
 
TOptional< FLinearColorDebugDrawColor
 
- 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
 

Static Protected Attributes

static const bool bHasSelectedInstances = false
 

Friends

class FSkeletalMeshSectionIter
 

Additional Inherited Members

- Public Types inherited from FPrimitiveSceneProxy
enum class  EInstanceBufferAccessFlags { SynchronizeUpdateTask , UnsynchronizedAndUnsafe }
 
typedef TArray< class FLightCacheInterface *, TInlineAllocator< 8 > > FLCIArray
 
- 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 inherited from FPrimitiveSceneProxy
TArray< FDebugMassDataDebugMassData
 
TSharedPtr< int32, ESPMode::ThreadSafeSimpleStreamableAssetManagerIndex = MakeShared<int32, ESPMode::ThreadSafe>(INDEX_NONE)
 
TArray< class FMaterialCacheVirtualTextureRenderProxy * > MaterialCacheRenderProxies
 
uint32 MaterialCacheDescriptor = UINT32_MAX
 
- Static Public Attributes inherited from FPrimitiveSceneProxy
static constexpr int32 InvalidRayTracingGroupId = -1
 

Detailed Description

A skeletal mesh component scene proxy.

Constructor & Destructor Documentation

◆ FSkeletalMeshSceneProxy() [1/3]

FSkeletalMeshSceneProxy::FSkeletalMeshSceneProxy ( const USkinnedMeshComponent Component,
FSkeletalMeshRenderData InRenderData 
)

Constructor.

Parameters
Component- skeletal mesh primitive being added

◆ FSkeletalMeshSceneProxy() [2/3]

FSkeletalMeshSceneProxy::FSkeletalMeshSceneProxy ( const FSkinnedMeshSceneProxyDesc InMeshDesc,
FSkeletalMeshRenderData InSkelMeshRenderData 
)

◆ FSkeletalMeshSceneProxy() [3/3]

FSkeletalMeshSceneProxy::FSkeletalMeshSceneProxy ( const FSkinnedMeshSceneProxyDesc InMeshDesc,
FSkeletalMeshRenderData InSkelMeshRenderData,
int32  InClampedLODIndex 
)

◆ ~FSkeletalMeshSceneProxy()

FSkeletalMeshSceneProxy::~FSkeletalMeshSceneProxy ( )
virtual

Member Function Documentation

◆ CanApplyStreamableRenderAssetScaleFactor()

virtual bool FSkeletalMeshSceneProxy::CanApplyStreamableRenderAssetScaleFactor ( ) const
inlineoverridevirtual

Reimplemented from FPrimitiveSceneProxy.

◆ CanBeOccluded()

bool FSkeletalMeshSceneProxy::CanBeOccluded ( ) const
overridevirtual
Returns
true if the proxy can be culled when occluded by other primitives

Reimplemented from FPrimitiveSceneProxy.

◆ CreateRenderThreadResources()

void FSkeletalMeshSceneProxy::CreateRenderThreadResources ( FRHICommandListBase RHICmdList)
overridevirtual

Called when the rendering thread adds the proxy to the scene. This function allows for generating renderer-side resources. Called in the rendering thread.

Reimplemented from FPrimitiveSceneProxy.

◆ DebugDrawPhysicsAsset()

void FSkeletalMeshSceneProxy::DebugDrawPhysicsAsset ( int32  ViewIndex,
FMeshElementCollector Collector,
const FEngineShowFlags EngineShowFlags 
) const
virtual

Render physics asset for debug display

◆ DebugDrawSkeleton()

void FSkeletalMeshSceneProxy::DebugDrawSkeleton ( int32  ViewIndex,
FMeshElementCollector Collector,
const FEngineShowFlags EngineShowFlags 
) const

Render the bones of the skeleton for debug display

◆ DestroyRenderThreadResources()

void FSkeletalMeshSceneProxy::DestroyRenderThreadResources ( )
overridevirtual

Called when the rendering thread removes the proxy from the scene. This function allows for removing renderer-side resources. Called in the rendering thread.

Reimplemented from FPrimitiveSceneProxy.

◆ DrawStaticElements()

void FSkeletalMeshSceneProxy::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.

◆ GetAllocatedSize()

SIZE_T FSkeletalMeshSceneProxy::GetAllocatedSize ( void  ) const
inline

◆ GetCachedGeometry() [1/2]

bool FSkeletalMeshSceneProxy::GetCachedGeometry ( FRDGBuilder GraphBuilder,
struct FCachedGeometry OutCachedGeometry 
) const

◆ GetCachedGeometry() [2/2]

bool FSkeletalMeshSceneProxy::GetCachedGeometry ( struct FCachedGeometry OutCachedGeometry) const
inline

◆ GetCurrentFirstLODIdx_Internal()

uint8 FSkeletalMeshSceneProxy::GetCurrentFirstLODIdx_Internal ( ) const
protected

Only call on render thread timeline

◆ GetCurrentFirstLODIdx_RenderThread()

virtual uint8 FSkeletalMeshSceneProxy::GetCurrentFirstLODIdx_RenderThread ( ) const
inlinefinaloverridevirtual

Reimplemented from FPrimitiveSceneProxy.

◆ GetCurrentLODIndex()

int32 FSkeletalMeshSceneProxy::GetCurrentLODIndex ( )

Util for getting LOD index currently used by this SceneProxy.

◆ GetDesiredLODLevel_RenderThread()

FDesiredLODLevel FSkeletalMeshSceneProxy::GetDesiredLODLevel_RenderThread ( const FSceneView View) const
finaloverridevirtual

Reimplemented from FPrimitiveSceneProxy.

◆ GetDynamicElementsSection()

void FSkeletalMeshSceneProxy::GetDynamicElementsSection ( const TArray< const FSceneView * > &  Views,
const FSceneViewFamily ViewFamily,
uint32  VisibilityMap,
const FSkeletalMeshLODRenderData LODData,
const int32  LODIndex,
const int32  SectionIndex,
bool  bSectionSelected,
const FSectionElementInfo SectionElementInfo,
bool  bInSelectable,
FMeshElementCollector Collector 
) const
protected

◆ GetDynamicMeshElements()

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

Gathers the primitive's dynamic mesh elements. This will only be called if GetViewRelevance declares dynamic relevance. This is called from the rendering thread for each set of views that might be rendered.
Game thread state like UObjects must have their properties mirrored on the proxy to avoid race conditions. The rendering thread must not dereference UObjects. The gathered mesh elements will be used multiple times, any memory referenced must last as long as the Collector (eg no stack memory should be referenced). This function should not modify the proxy but simply collect a description of things to render. Updates to the proxy need to be pushed from game thread or external events.

Parameters
Views- the array of views to consider. These may not exist in the ViewFamily.
ViewFamily- the view family, for convenience
VisibilityMap- a bit representing this proxy's visibility in the Views array
Collector- gathers the mesh elements to be rendered and provides mechanisms for temporary allocations

Reimplemented from FPrimitiveSceneProxy.

◆ GetMemoryFootprint()

virtual uint32 FSkeletalMeshSceneProxy::GetMemoryFootprint ( void  ) const
inlineoverridevirtual

Every derived class should override these functions

Implements FPrimitiveSceneProxy.

◆ GetMeshCardRepresentation()

const FCardRepresentationData * FSkeletalMeshSceneProxy::GetMeshCardRepresentation ( ) const
overridevirtual

Reimplemented from FPrimitiveSceneProxy.

◆ GetMeshElementsConditionallySelectable()

void FSkeletalMeshSceneProxy::GetMeshElementsConditionallySelectable ( const TArray< const FSceneView * > &  Views,
const FSceneViewFamily ViewFamily,
bool  bInSelectable,
uint32  VisibilityMap,
FMeshElementCollector Collector 
) const
protected

◆ GetMeshObject()

FSkeletalMeshObject * FSkeletalMeshSceneProxy::GetMeshObject ( ) const
inline

◆ GetPreSkinnedLocalBounds()

virtual void FSkeletalMeshSceneProxy::GetPreSkinnedLocalBounds ( FBoxSphereBounds OutBounds) const
inlineoverridevirtual

Return the bounds for the pre-skinned primitive in local space

Reimplemented from FPrimitiveSceneProxy.

◆ GetShadowShapes()

void FSkeletalMeshSceneProxy::GetShadowShapes ( FVector  PreViewTranslation,
TArray< FCapsuleShape3f > &  OutCapsuleShapes 
) const
overridevirtual

Gathers shadow shapes from this proxy.

Reimplemented from FPrimitiveSceneProxy.

◆ GetSkinnedAsset()

USkinnedAsset * FSkeletalMeshSceneProxy::GetSkinnedAsset ( ) const
inline

◆ GetSkinningSceneExtensionProxy()

FSkinningSceneExtensionProxy * FSkeletalMeshSceneProxy::GetSkinningSceneExtensionProxy ( ) const
overridevirtual

Reimplemented from FPrimitiveSceneProxy.

◆ GetSortedShadowBoneIndices()

const TArray< uint16 > & FSkeletalMeshSceneProxy::GetSortedShadowBoneIndices ( ) const
inline

Returns a pre-sorted list of shadow capsules's bone indicies

◆ GetTypeHash()

SIZE_T FSkeletalMeshSceneProxy::GetTypeHash ( ) const
overridevirtual

Return a type (or subtype) specific hash for sorting purposes

Implements FPrimitiveSceneProxy.

◆ GetViewRelevance()

FPrimitiveViewRelevance FSkeletalMeshSceneProxy::GetViewRelevance ( const FSceneView View) const
overridevirtual

Relevance is always dynamic for skel meshes unless they are disabled

Reimplemented from FPrimitiveSceneProxy.

◆ GetWorldMatrices()

bool FSkeletalMeshSceneProxy::GetWorldMatrices ( FMatrix OutLocalToWorld,
FMatrix OutWorldToLocal 
) const

Returns the world transform to use for drawing.

Parameters
OutLocalToWorld- Will contain the local-to-world transform when the function returns.
OutWorldToLocal- Will contain the world-to-local transform when the function returns.
Returns
true if out matrices are valid

Returns the world transform to use for drawing.

Parameters
OutLocalToWorld- Will contain the local-to-world transform when the function returns.
OutWorldToLocal- Will contain the world-to-local transform when the function returns.

◆ HasDynamicIndirectShadowCasterRepresentation()

bool FSkeletalMeshSceneProxy::HasDynamicIndirectShadowCasterRepresentation ( ) const
overridevirtual

Reimplemented from FPrimitiveSceneProxy.

◆ IsUsingDistanceCullFade()

bool FSkeletalMeshSceneProxy::IsUsingDistanceCullFade ( ) const
overridevirtual
Returns
true if the proxy uses distance cull fade.

Reimplemented from FPrimitiveSceneProxy.

◆ OnTransformChanged()

void FSkeletalMeshSceneProxy::OnTransformChanged ( FRHICommandListBase RHICmdList)
overridevirtual

Called to notify the proxy when its transform has been updated. Called in the thread that owns the proxy; game or rendering.

Reimplemented from FPrimitiveSceneProxy.

◆ UpdateLumenCardsFromBounds()

void FSkeletalMeshSceneProxy::UpdateLumenCardsFromBounds ( )
protected

◆ UpdateMorphMaterialUsage_GameThread()

void FSkeletalMeshSceneProxy::UpdateMorphMaterialUsage_GameThread ( TArray< UMaterialInterface * > &  MaterialUsingMorphTarget)

Updates morph material usage for materials referenced by each LOD entry

Parameters
bNeedsMorphUsage- true if the materials used by this skeletal mesh need morph target usage

Friends And Related Symbol Documentation

◆ FSkeletalMeshSectionIter

Member Data Documentation

◆ bAllowDynamicMeshBounds

uint8 FSkeletalMeshSceneProxy::bAllowDynamicMeshBounds
protected

◆ bCanHighlightSelectedSections

uint8 FSkeletalMeshSceneProxy::bCanHighlightSelectedSections
protected

◆ bDrawDebugSkeleton

uint8 FSkeletalMeshSceneProxy::bDrawDebugSkeleton
protected

◆ bForceWireframe

uint8 FSkeletalMeshSceneProxy::bForceWireframe
protected

data copied for rendering

◆ bHasSelectedInstances

const bool FSkeletalMeshSceneProxy::bHasSelectedInstances = false
staticprotected

◆ bIsCPUSkinned

uint8 FSkeletalMeshSceneProxy::bIsCPUSkinned
protected

◆ bMaterialsNeedMorphUsage_GameThread

bool FSkeletalMeshSceneProxy::bMaterialsNeedMorphUsage_GameThread
protected

◆ bRenderStatic

uint8 FSkeletalMeshSceneProxy::bRenderStatic
protected

◆ CardRepresentationData

class FCardRepresentationData* FSkeletalMeshSceneProxy::CardRepresentationData = nullptr
protected

Lumen cards data

◆ ClampedLODIndex

int32 FSkeletalMeshSceneProxy::ClampedLODIndex
protected

◆ DebugDrawColor

TOptional<FLinearColor> FSkeletalMeshSceneProxy::DebugDrawColor
protected

The color we draw this component in if drawing debug bones

◆ FeatureLevel

TEnumAsByte<ERHIFeatureLevel::Type> FSkeletalMeshSceneProxy::FeatureLevel
protected

◆ LODSections

TArray<FLODSectionElements> FSkeletalMeshSceneProxy::LODSections
protected

Array of section elements for each LOD

◆ MaterialRelevance

FMaterialRelevance FSkeletalMeshSceneProxy::MaterialRelevance
protected

◆ MaterialsInUse_GameThread

TSet<UMaterialInterface*> FSkeletalMeshSceneProxy::MaterialsInUse_GameThread
protected

Set of materials used by this scene proxy, safe to access from the game thread.

◆ MaterialSlotsOverlayMaterial

TArray<TObjectPtr<UMaterialInterface> > FSkeletalMeshSceneProxy::MaterialSlotsOverlayMaterial
protected

◆ MeshObject

FSkeletalMeshObject* FSkeletalMeshSceneProxy::MeshObject
protected

◆ NumLODs

uint8 FSkeletalMeshSceneProxy::NumLODs = 1u
protected

◆ OverlayMaterial

UMaterialInterface* FSkeletalMeshSceneProxy::OverlayMaterial
protected

◆ OverlayMaterialMaxDrawDistance

float FSkeletalMeshSceneProxy::OverlayMaterialMaxDrawDistance
protected

◆ Owner

AActor* FSkeletalMeshSceneProxy::Owner
protected

◆ PhysicsAssetForDebug

class UPhysicsAsset* FSkeletalMeshSceneProxy::PhysicsAssetForDebug
protected

◆ PreSkinnedLocalBounds

FBoxSphereBounds FSkeletalMeshSceneProxy::PreSkinnedLocalBounds
protected

The primitive's pre-skinned local space bounds.

◆ RenderData

FSkeletalMeshRenderData* FSkeletalMeshSceneProxy::RenderData
protected

◆ SceneExtensionProxy

TUniquePtr<FSkinningSceneExtensionProxy> FSkeletalMeshSceneProxy::SceneExtensionProxy
protected

◆ ShadowCapsuleBoneIndices

TArray<uint16> FSkeletalMeshSceneProxy::ShadowCapsuleBoneIndices
protected

◆ ShadowCapsuleData

TArray<TPair<int32, FCapsuleShape> > FSkeletalMeshSceneProxy::ShadowCapsuleData
protected

BoneIndex->capsule pairs used for rendering sphere/capsule shadows Note that these are in refpose component space, NOT bone space.

◆ SkinnedAsset

USkinnedAsset* FSkeletalMeshSceneProxy::SkinnedAsset
protected

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