UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkeletalMeshSceneProxy.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "SkeletalMeshTypes.h"
8
9/*-----------------------------------------------------------------------------
10FSkeletalMeshSceneProxy
11-----------------------------------------------------------------------------*/
12
14
17
23{
24public:
25 ENGINE_API SIZE_T GetTypeHash() const override;
26
32 UE_DEPRECATED(5.7, "Pass InClampedLODIndex to FSkeletalMeshSceneProxy constructor.")
35
37
38#if WITH_EDITOR
40#endif
42 ENGINE_API virtual void GetDynamicMeshElements(const TArray<const FSceneView*>& Views, const FSceneViewFamily& ViewFamily, uint32 VisibilityMap, FMeshElementCollector& Collector) const override;
43
44 ENGINE_API virtual const FCardRepresentationData* GetMeshCardRepresentation() const override;
45
46 ENGINE_API virtual void CreateRenderThreadResources(FRHICommandListBase& RHICmdList) override;
47 ENGINE_API virtual void DestroyRenderThreadResources() override;
48
49#if RHI_RAYTRACING
50 ENGINE_API virtual bool HasRayTracingRepresentation() const override;
51
52 virtual bool IsRayTracingRelevant() const override { return true; }
53
54 virtual bool IsRayTracingStaticRelevant() const override
55 {
56 return bRayTraceStatic;
57 }
58
60
63
65#endif // RHI_RAYTRACING
66
67 ENGINE_API virtual FPrimitiveViewRelevance GetViewRelevance(const FSceneView* View) const override;
68 ENGINE_API virtual bool CanBeOccluded() const override;
69 ENGINE_API virtual bool IsUsingDistanceCullFade() const override;
70
71 ENGINE_API virtual bool HasDynamicIndirectShadowCasterRepresentation() const override;
72 ENGINE_API virtual void GetShadowShapes(FVector PreViewTranslation, TArray<FCapsuleShape3f>& OutCapsuleShapes) const override;
73
74 virtual bool CanApplyStreamableRenderAssetScaleFactor() const override { return true; }
75
78
84
86
88 {
89 return MeshObject;
90 }
91
93 {
94 return SkinnedAsset;
95 }
96
105
108
112 ENGINE_API virtual void DebugDrawPhysicsAsset(int32 ViewIndex, FMeshElementCollector& Collector, const FEngineShowFlags& EngineShowFlags) const;
113
115 ENGINE_API void DebugDrawSkeleton(int32 ViewIndex, FMeshElementCollector& Collector, const FEngineShowFlags& EngineShowFlags) const;
116
117#if WITH_EDITOR
118 ENGINE_API void DebugDrawPoseWatchSkeletons(int32 ViewIndex, FMeshElementCollector& Collector, const FEngineShowFlags& EngineShowFlags) const;
119#endif
120
121 virtual uint32 GetMemoryFootprint( void ) const override { return( sizeof( *this ) + GetAllocatedSize() ); }
122 SIZE_T GetAllocatedSize( void ) const { return( FPrimitiveSceneProxy::GetAllocatedSize() + LODSections.GetAllocatedSize() ); }
123
130
131
132#if WITH_EDITORONLY_DATA
133 ENGINE_API virtual bool GetPrimitiveDistance(int32 LODIndex, int32 SectionIndex, const FVector& ViewOrigin, float& PrimitiveDistance) const override;
134 ENGINE_API virtual bool GetMeshUVDensities(int32 LODIndex, int32 SectionIndex, FVector4& WorldUVDensities) const override;
135 ENGINE_API virtual bool GetMaterialTextureScales(int32 LODIndex, int32 SectionIndex, const FMaterialRenderProxy* MaterialRenderProxy, FVector4f* OneOverScales, FIntVector4* UVChannelIndices) const override;
136#endif
137
139
140 ENGINE_API virtual void OnTransformChanged(FRHICommandListBase& RHICmdList) override;
141
142 virtual uint8 GetCurrentFirstLODIdx_RenderThread() const final override
143 {
145 }
146
147 ENGINE_API virtual FDesiredLODLevel GetDesiredLODLevel_RenderThread(const FSceneView* View) const final override;
148
150
151 UE_DEPRECATED(5.6, "GetCachedGeometry now requires a GraphBuilder.")
153
154protected:
162
163#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
165#endif
166
170
171public:
172#if RHI_RAYTRACING
173 bool bAnySegmentUsesWorldPositionOffset : 1;
174#endif
175
176protected:
182#if RHI_RAYTRACING
184#endif
185#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
187#endif
189#if WITH_EDITOR
190 bool bHasSelectedInstances = false;
191#else
192 static const bool bHasSelectedInstances = false;
193#endif
195
197
199
200
229
235
238
245
248
251
254
255#if RHI_RAYTRACING
257#endif
258
259#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
262#endif
263
264#if WITH_EDITORONLY_DATA
266 float StreamingDistanceMultiplier;
267#endif
268
269 ENGINE_API void GetDynamicElementsSection(const TArray<const FSceneView*>& Views, const FSceneViewFamily& ViewFamily, uint32 VisibilityMap,
270 const FSkeletalMeshLODRenderData& LODData, const int32 LODIndex, const int32 SectionIndex, bool bSectionSelected,
272
273 ENGINE_API void GetMeshElementsConditionallySelectable(const TArray<const FSceneView*>& Views, const FSceneViewFamily& ViewFamily, bool bInSelectable, uint32 VisibilityMap, FMeshElementCollector& Collector) const;
274
277
279
280private:
281 ENGINE_API void CreateBaseMeshBatch(const FSceneView* View, const FSkeletalMeshLODRenderData& LODData, const int32 LODIndex, const int32 SectionIndex, const FSectionElementInfo& SectionElementInfo, FMeshBatch& Mesh, ESkinVertexFactoryMode VFMode = ESkinVertexFactoryMode::Default) const;
282
283 ENGINE_API void GetStaticMeshBatch(
284 const FSkeletalMeshLODRenderData& LODData,
285 const int32 LODIndex,
286 const FSkelMeshRenderSection& Section,
287 const int32 SectionIndex,
289 const FVertexFactory* VertexFactory,
291 FMeshBatch& OutMeshBatch) const;
293
294public:
295#if WITH_EDITORONLY_DATA
297#endif
298};
#define NULL
Definition oodle2base.h:134
#define WITH_EDITOR
Definition Build.h:67
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ESceneDepthPriorityGroup
Definition EngineTypes.h:187
const bool
Definition NetworkReplayStreaming.h:178
ERayTracingPrimitiveFlags
Definition PrimitiveSceneProxy.h:236
ESkinVertexFactoryMode
Definition SkeletalMeshTypes.h:51
if(Failed) console_printf("Failed.\n")
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition MeshCardBuild.h:142
Definition MaterialRenderProxy.h:102
Definition MeshElementCollector.h:26
Definition PrimitiveSceneProxy.h:296
virtual ENGINE_API HHitProxy * CreateHitProxies(UPrimitiveComponent *Component, TArray< TRefCountPtr< HHitProxy > > &OutHitProxies)
Definition PrimitiveSceneProxy.cpp:661
SIZE_T GetAllocatedSize(void) const
Definition PrimitiveSceneProxy.h:684
Definition RenderGraphBuilder.h:49
Definition RHICommandList.h:455
Definition SceneView.h:2212
Definition SceneView.h:1425
Definition SkeletalMeshLODRenderData.h:128
Definition SkeletalRenderPublic.h:85
Definition SkeletalMeshRenderData.h:17
Definition SkeletalMeshSceneProxy.h:23
virtual ENGINE_API void DrawStaticElements(FStaticPrimitiveDrawInterface *PDI) override
Definition SkeletalMeshSceneProxy.cpp:487
uint8 bCanHighlightSelectedSections
Definition SkeletalMeshSceneProxy.h:180
SIZE_T GetAllocatedSize(void) const
Definition SkeletalMeshSceneProxy.h:122
FSkeletalMeshObject * MeshObject
Definition SkeletalMeshSceneProxy.h:156
FSkeletalMeshRenderData * RenderData
Definition SkeletalMeshSceneProxy.h:159
virtual ENGINE_API ~FSkeletalMeshSceneProxy()
Definition SkeletalMeshSceneProxy.cpp:342
TSet< UMaterialInterface * > MaterialsInUse_GameThread
Definition SkeletalMeshSceneProxy.h:247
TArray< TPair< int32, FCapsuleShape > > ShadowCapsuleData
Definition SkeletalMeshSceneProxy.h:243
virtual ENGINE_API void CreateRenderThreadResources(FRHICommandListBase &RHICmdList) override
Definition SkeletalMeshSceneProxy.cpp:935
virtual ENGINE_API void OnTransformChanged(FRHICommandListBase &RHICmdList) override
Definition SkeletalMeshSceneProxy.cpp:1606
ENGINE_API uint8 GetCurrentFirstLODIdx_Internal() const
Definition SkeletalMeshSceneProxy.cpp:781
virtual uint32 GetMemoryFootprint(void) const override
Definition SkeletalMeshSceneProxy.h:121
ENGINE_API void UpdateLumenCardsFromBounds()
Definition SkeletalMeshSceneProxy.cpp:670
AActor * Owner
Definition SkeletalMeshSceneProxy.h:155
TOptional< FLinearColor > DebugDrawColor
Definition SkeletalMeshSceneProxy.h:261
ENGINE_API bool GetWorldMatrices(FMatrix &OutLocalToWorld, FMatrix &OutWorldToLocal) const
Definition SkeletalMeshSceneProxy.cpp:1255
UMaterialInterface * OverlayMaterial
Definition SkeletalMeshSceneProxy.h:167
bool bMaterialsNeedMorphUsage_GameThread
Definition SkeletalMeshSceneProxy.h:196
uint8 bAllowDynamicMeshBounds
Definition SkeletalMeshSceneProxy.h:188
uint8 bRenderStatic
Definition SkeletalMeshSceneProxy.h:181
virtual ENGINE_API const FCardRepresentationData * GetMeshCardRepresentation() const override
Definition SkeletalMeshSceneProxy.cpp:694
TEnumAsByte< ERHIFeatureLevel::Type > FeatureLevel
Definition SkeletalMeshSceneProxy.h:194
float OverlayMaterialMaxDrawDistance
Definition SkeletalMeshSceneProxy.h:168
ENGINE_API void DebugDrawSkeleton(int32 ViewIndex, FMeshElementCollector &Collector, const FEngineShowFlags &EngineShowFlags) const
Definition SkeletalMeshSceneProxy.cpp:1409
TArray< TObjectPtr< UMaterialInterface > > MaterialSlotsOverlayMaterial
Definition SkeletalMeshSceneProxy.h:169
int32 ClampedLODIndex
Definition SkeletalMeshSceneProxy.h:160
uint8 bDrawDebugSkeleton
Definition SkeletalMeshSceneProxy.h:186
virtual ENGINE_API bool CanBeOccluded() const override
Definition SkeletalMeshSceneProxy.cpp:1337
virtual ENGINE_API void DestroyRenderThreadResources() override
Definition SkeletalMeshSceneProxy.cpp:951
USkinnedAsset * SkinnedAsset
Definition SkeletalMeshSceneProxy.h:157
ENGINE_API SIZE_T GetTypeHash() const override
Definition SkeletalMeshSceneProxy.cpp:1211
virtual ENGINE_API bool IsUsingDistanceCullFade() const override
Definition SkeletalMeshSceneProxy.cpp:1342
virtual uint8 GetCurrentFirstLODIdx_RenderThread() const final override
Definition SkeletalMeshSceneProxy.h:142
virtual ENGINE_API FPrimitiveViewRelevance GetViewRelevance(const FSceneView *View) const override
Definition SkeletalMeshSceneProxy.cpp:1271
static const bool bHasSelectedInstances
Definition SkeletalMeshSceneProxy.h:192
FBoxSphereBounds PreSkinnedLocalBounds
Definition SkeletalMeshSceneProxy.h:250
virtual ENGINE_API void GetDynamicMeshElements(const TArray< const FSceneView * > &Views, const FSceneViewFamily &ViewFamily, uint32 VisibilityMap, FMeshElementCollector &Collector) const override
Definition SkeletalMeshSceneProxy.cpp:555
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
Definition SkeletalMeshSceneProxy.cpp:796
TUniquePtr< FSkinningSceneExtensionProxy > SceneExtensionProxy
Definition SkeletalMeshSceneProxy.h:158
class FCardRepresentationData * CardRepresentationData
Definition SkeletalMeshSceneProxy.h:253
TArray< uint16 > ShadowCapsuleBoneIndices
Definition SkeletalMeshSceneProxy.h:244
virtual bool CanApplyStreamableRenderAssetScaleFactor() const override
Definition SkeletalMeshSceneProxy.h:74
USkinnedAsset * GetSkinnedAsset() const
Definition SkeletalMeshSceneProxy.h:92
ENGINE_API int32 GetCurrentLODIndex()
Definition SkeletalMeshSceneProxy.cpp:1348
FMaterialRelevance MaterialRelevance
Definition SkeletalMeshSceneProxy.h:198
virtual ENGINE_API bool HasDynamicIndirectShadowCasterRepresentation() const override
Definition SkeletalMeshSceneProxy.cpp:1217
uint8 bForceWireframe
Definition SkeletalMeshSceneProxy.h:178
FSkeletalMeshObject * GetMeshObject() const
Definition SkeletalMeshSceneProxy.h:87
virtual ENGINE_API void DebugDrawPhysicsAsset(int32 ViewIndex, FMeshElementCollector &Collector, const FEngineShowFlags &EngineShowFlags) const
Definition SkeletalMeshSceneProxy.cpp:1363
TArray< FLODSectionElements > LODSections
Definition SkeletalMeshSceneProxy.h:237
uint8 NumLODs
Definition SkeletalMeshSceneProxy.h:161
ENGINE_API FSkinningSceneExtensionProxy * GetSkinningSceneExtensionProxy() const override
Definition SkeletalMeshSceneProxy.cpp:1613
ENGINE_API bool GetCachedGeometry(FRDGBuilder &GraphBuilder, struct FCachedGeometry &OutCachedGeometry) const
Definition SkeletalMeshSceneProxy.cpp:791
class UPhysicsAsset * PhysicsAssetForDebug
Definition SkeletalMeshSceneProxy.h:164
ENGINE_API void UpdateMorphMaterialUsage_GameThread(TArray< UMaterialInterface * > &MaterialUsingMorphTarget)
Definition SkeletalMeshSceneProxy.cpp:1476
virtual void GetPreSkinnedLocalBounds(FBoxSphereBounds &OutBounds) const override
Definition SkeletalMeshSceneProxy.h:77
virtual ENGINE_API void GetShadowShapes(FVector PreViewTranslation, TArray< FCapsuleShape3f > &OutCapsuleShapes) const override
Definition SkeletalMeshSceneProxy.cpp:1222
ENGINE_API void GetMeshElementsConditionallySelectable(const TArray< const FSceneView * > &Views, const FSceneViewFamily &ViewFamily, bool bInSelectable, uint32 VisibilityMap, FMeshElementCollector &Collector) const
Definition SkeletalMeshSceneProxy.cpp:561
virtual ENGINE_API FDesiredLODLevel GetDesiredLODLevel_RenderThread(const FSceneView *View) const final override
Definition SkeletalMeshSceneProxy.cpp:786
uint8 bIsCPUSkinned
Definition SkeletalMeshSceneProxy.h:179
const TArray< uint16 > & GetSortedShadowBoneIndices() const
Definition SkeletalMeshSceneProxy.h:80
Definition SkeletalMeshSceneProxy.cpp:358
Definition SkinningSceneExtensionProxy.h:17
Definition SceneManagement.h:1293
Definition VertexFactory.h:661
Definition HitProxies.h:135
Definition Array.h:670
Definition EnumAsByte.h:22
Definition RefCounting.h:454
Definition UniquePtr.h:107
Definition MaterialInterface.h:296
Definition PhysicsAsset.h:172
Definition SkinnedAsset.h:47
Definition SkinnedMeshComponent.h:258
int32 FGeometryGroupHandle
Definition SceneManagement.h:74
Definition CachedGeometry.h:16
Definition PrimitiveSceneProxy.h:67
Definition ShowFlags.h:56
Definition MaterialRelevance.h:13
Definition MeshBatch.h:371
Definition PrimitiveViewRelevance.h:14
Definition RayTracingInstance.h:17
Definition SkeletalMeshLODRenderData.h:28
Definition SkeletalMeshSceneProxy.h:232
TArray< FSectionElementInfo > SectionElements
Definition SkeletalMeshSceneProxy.h:233
Definition SkeletalMeshSceneProxy.h:203
bool bEnableShadowCasting
Definition SkeletalMeshSceneProxy.h:217
UMaterialInterface * PerSectionOverlayMaterial
Definition SkeletalMeshSceneProxy.h:227
FSectionElementInfo(UMaterialInterface *InMaterial, bool bInEnableShadowCasting, int32 InUseMaterialIndex, UMaterialInterface *InPerSectionOverlayMaterial)
Definition SkeletalMeshSceneProxy.h:204
int32 UseMaterialIndex
Definition SkeletalMeshSceneProxy.h:220
UMaterialInterface * Material
Definition SkeletalMeshSceneProxy.h:214
Definition SkinnedMeshSceneProxyDesc.h:21
Definition Optional.h:131
Definition BoxSphereBounds.h:25