UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkeletalRenderStatic.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 SkeletalRenderStatic.h: Skinned mesh object rendered as static
5=============================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
11#include "RenderResource.h"
12#include "RayTracingGeometry.h"
13#include "LocalVertexFactory.h"
16
18class UMorphTarget;
19
21
23{
24public:
29
30 //~ Begin FSkeletalMeshObject Interface
32 ENGINE_API virtual void ReleaseResources() override;
34 //virtual void UpdateRecomputeTangent(int32 MaterialIndex, int32 LODIndex, bool bRecomputeTangent) override {};
36 virtual bool IsCPUSkinned() const override { return true; }
38 ENGINE_API virtual const FVertexFactory* GetStaticSkinVertexFactory(int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode) const override;
41 virtual int32 GetLOD() const override;
42 //virtual const FTwoVectors& GetCustomLeftRightVectors(int32 SectionIndex) const override;
43 virtual void DrawVertexElements(FPrimitiveDrawInterface* PDI, const FMatrix& ToWorldSpace, bool bDrawNormals, bool bDrawTangents, bool bDrawBinormals) const override {};
44 virtual bool HaveValidDynamicData() const override
45 {
46 return false;
47 }
48
50 {
51 CumulativeResourceSize.AddDedicatedSystemMemoryBytes(sizeof(*this));
52 CumulativeResourceSize.AddDedicatedSystemMemoryBytes(LODs.GetAllocatedSize());
53 // include extra data from LOD
54 for (int32 I=0; I<LODs.Num(); ++I)
55 {
56 LODs[I].GetResourceSizeEx(CumulativeResourceSize);
57 }
58 }
60
61 //~ End FSkeletalMeshObject Interface
62
63private:
65 struct FSkeletalMeshObjectLOD
66 {
67 FSkeletalMeshRenderData* SkelMeshRenderData;
68 // index into FSkeletalMeshResource::LODModels[]
69 int32 LODIndex;
70 FLocalVertexFactory VertexFactory;
71
73 FColorVertexBuffer* ColorVertexBuffer;
74
79 bool bStaticRayTracingGeometryInitialized;
80
82 bool bResourcesInitialized;
83
85 : SkelMeshRenderData(InSkelMeshRenderData)
86 , LODIndex(InLOD)
87 , VertexFactory(InFeatureLevel, "FSkeletalMeshObjectStatic::FSkeletalMeshObjectLOD")
88 , ColorVertexBuffer(nullptr)
89 , bStaticRayTracingGeometryInitialized(false)
90 , bResourcesInitialized(false)
91 {
92 }
93
97 void InitResources(const FSkelMeshComponentLODInfo* CompLODInfo);
101 void ReleaseResources();
102
103 void GetResourceSizeEx(FResourceSizeEx& CumulativeResourceSize)
104 {
105 CumulativeResourceSize.AddDedicatedSystemMemoryBytes(sizeof(*this));
106 }
107 };
108
111};
112
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
ESkinVertexFactoryMode
Definition SkeletalMeshTypes.h:51
EPreviousBoneTransformUpdateMode
Definition SkeletalRenderPublic.h:62
Definition ColorVertexBuffer.h:16
Definition LocalVertexFactory.h:51
Definition PrimitiveDrawInterface.h:19
Definition PrimitiveSceneProxy.h:296
Definition SceneView.h:1425
Definition SkeletalRenderStatic.h:23
virtual ENGINE_API const FVertexFactory * GetStaticSkinVertexFactory(int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode) const override
Definition SkeletalRenderStatic.cpp:77
virtual ENGINE_API void ReleaseResources() override
Definition SkeletalRenderStatic.cpp:55
virtual void EnableOverlayRendering(bool bEnabled, const TArray< int32 > *InBonesOfInterest, const TArray< UMorphTarget * > *InMorphTargetOfInterest) override
Definition SkeletalRenderStatic.h:35
virtual void GetResourceSizeEx(FResourceSizeEx &CumulativeResourceSize) override
Definition SkeletalRenderStatic.h:49
virtual void UpdateSkinWeightBuffer(const TArrayView< const FSkelMeshComponentLODInfo > InLODInfo) override
Definition SkeletalRenderStatic.h:59
virtual ENGINE_API const FVertexFactory * GetSkinVertexFactory(const FSceneView *View, int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode=ESkinVertexFactoryMode::Default) const override
Definition SkeletalRenderStatic.cpp:72
virtual bool IsCPUSkinned() const override
Definition SkeletalRenderStatic.h:36
virtual int32 GetLOD() const override
Definition SkeletalRenderStatic.cpp:92
virtual ENGINE_API TArray< FTransform > * GetComponentSpaceTransforms() const override
Definition SkeletalRenderStatic.cpp:82
virtual ENGINE_API ~FSkeletalMeshObjectStatic()
Definition SkeletalRenderStatic.cpp:33
virtual bool HaveValidDynamicData() const override
Definition SkeletalRenderStatic.h:44
virtual ENGINE_API void InitResources(const FSkinnedMeshSceneProxyDesc &InMeshDesc) override
Definition SkeletalRenderStatic.cpp:37
virtual void Update(int32 LODIndex, const FSkinnedMeshSceneProxyDynamicData &InSkeletalMeshDynamicData, const FPrimitiveSceneProxy *InSceneProxy, const USkinnedAsset *InSkinnedAsset, const FMorphTargetWeightMap &InActiveMorphTargets, const TArray< float > &MorphTargetWeights, EPreviousBoneTransformUpdateMode PreviousBoneTransformUpdateMode, const FExternalMorphWeightData &InExternalMorphWeightData) override
Definition SkeletalRenderStatic.h:33
virtual ENGINE_API TConstArrayView< FMatrix44f > GetReferenceToLocalMatrices() const override
Definition SkeletalRenderStatic.cpp:87
virtual void DrawVertexElements(FPrimitiveDrawInterface *PDI, const FMatrix &ToWorldSpace, bool bDrawNormals, bool bDrawTangents, bool bDrawBinormals) const override
Definition SkeletalRenderStatic.h:43
Definition SkeletalRenderPublic.h:85
Definition SkeletalMeshRenderData.h:17
Definition VertexFactory.h:661
Definition ArrayView.h:139
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT SIZE_T GetAllocatedSize(void) const
Definition Array.h:1059
Definition MorphTarget.h:230
Definition SkinnedAsset.h:47
Definition SkinnedMeshComponent.h:258
Type
Definition RHIFeatureLevel.h:20
@ false
Definition radaudio_common.h:23
Definition ExternalMorphSet.h:42
Definition ResourceSize.h:31
Definition SkinnedMeshComponent.h:175
Definition SkinnedMeshSceneProxyDesc.h:21
Definition SkinnedMeshSceneProxyDesc.h:117