UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkeletalMeshReductionSettings.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 SkeletalMeshReductionSettings.h: Skeletal Mesh Reduction Settings
5=============================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
11#include "BoneContainer.h"
12#include "SkeletalMeshReductionSettings.generated.h"
13
15
17UENUM()
19{
20 SMTC_NumOfTriangles UMETA(DisplayName = "Triangles", ToolTip = "Triangle count criterion will be used for simplification."),
21 SMTC_NumOfVerts UMETA(DisplayName = "Vertices", ToolTip = "Vertex cont criterion will be used for simplification."),
22 SMTC_TriangleOrVert UMETA(DisplayName = "First Percent Satisfied", ToolTip = "Simplification will continue until either Triangle or Vertex count criteria is met."),
23 SMTC_AbsNumOfTriangles UMETA(DisplayName = "Max Triangles", ToolTip = "Triangle count criterion will be used for simplification."),
24 SMTC_AbsNumOfVerts UMETA(DisplayName = "Max Vertices", ToolTip = "Vertex cont criterion will be used for simplification."),
25 SMTC_AbsTriangleOrVert UMETA(DisplayName = "First Max Satisfied", ToolTip = "Simplification will continue until either Triangle or Vertex count criteria is met."),
27};
28
30UENUM()
32{
33 SMOT_NumOfTriangles UMETA(DisplayName = "Triangles", ToolTip = "Triangle requirement will be used for simplification."),
34 SMOT_MaxDeviation UMETA(DisplayName = "Accuracy", ToolTip = "Accuracy requirement will be used for simplification."),
35 SMOT_TriangleOrDeviation UMETA(DisplayName = "Any", ToolTip = "Simplification will continue until either Triangle or Accuracy requirement is met."),
37};
38
40UENUM()
42{
43 SMOI_Off UMETA(DisplayName = "Off"),
44 SMOI_Lowest UMETA(DisplayName = "Lowest"),
45 SMOI_Low UMETA(DisplayName = "Low"),
46 SMOI_Normal UMETA(DisplayName = "Normal"),
47 SMOI_High UMETA(DisplayName = "High"),
48 SMOI_Highest UMETA(DisplayName = "Highest"),
50};
51
53
57USTRUCT()
59{
61
62
63 UPROPERTY(EditAnywhere, Category = ReductionMethod)
65
67 UPROPERTY(EditAnywhere, Category = ReductionMethod, meta = (DisplayName = "Percent of Triangles"))
68 float NumOfTrianglesPercentage;
69
71 UPROPERTY(EditAnywhere, Category = ReductionMethod, meta = (DisplayName = "Percent of Vertices"))
72 float NumOfVertPercentage;
73
75 UPROPERTY(EditAnywhere, Category = ReductionMethod, meta = (DisplayName = "Max Triangle Count", ClampMin = 4))
76 uint32 MaxNumOfTriangles;
77
79 UPROPERTY(EditAnywhere, Category = ReductionMethod, meta = (DisplayName = "Max Vertex Count", ClampMin = 6))
80 uint32 MaxNumOfVerts;
81
82#if WITH_EDITORONLY_DATA
84 UPROPERTY(EditAnywhere, Category = ReductionMethod, meta = (DisplayName = "Max Triangle Count", ClampMin = 4, UIMin = "4"))
86
88 UPROPERTY(EditAnywhere, Category = ReductionMethod, meta = (DisplayName = "Max Vertex Count", ClampMin = 6, UIMin = "6"))
90#endif
91
95 UPROPERTY(EditAnywhere, Category = ReductionMethod)
96 float MaxDeviationPercentage;
97
99 UPROPERTY(EditAnywhere, Category = ReductionMethod)
101
103 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Silhouette"))
105
107 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Texture"))
109
111 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Shading"))
113
115 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Skinning"))
117
118 /* Remap the morph targets from the base LOD onto the reduce LOD. */
119 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings)
120 uint8 bRemapMorphTargets:1;
121
123 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Recompute Normal"))
124 uint8 bRecalcNormals:1;
125
127 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings)
128 float WeldingThreshold;
129
132 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Hard Edge Angle", EditCondition = "bRecalcNormals"))
133 float NormalsThreshold;
134
136 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Max Bones Influence", ClampMin = 1))
137 int32 MaxBonesPerVertex;
138
140 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Enforce Bone Boundaries"))
141 uint8 bEnforceBoneBoundaries : 1;
142
144 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Merge Coincident Vertices Bones"))
145 uint8 bMergeCoincidentVertBones : 1;
146
148 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Volumetric Correction", ClampMin = 0, ClampMax = 2))
149 float VolumeImportance;
150
152 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Lock Mesh Edges"))
153 uint8 bLockEdges : 1;
154
156 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings, meta = (DisplayName = "Lock Vertex Color Boundaries"))
157 uint8 bLockColorBounaries : 1;
158
160 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings)
161 uint8 bImproveTrianglesForCloth : 1;
162
164 UPROPERTY(EditAnywhere, Category = FSkeletalMeshOptimizationSettings)
165 int32 BaseLOD;
166
167
168#if WITH_EDITORONLY_DATA
169 UPROPERTY()
171
172 UPROPERTY()
174
175 //Transient mutable delegate. If the delegate is bound, the reduction will call it instead of deleting the replaced LODModel. It will be then the delegate owner responsible of the LODModel memory
177#endif
178
180 : TerminationCriterion(SMTC_NumOfTriangles)
181 , NumOfTrianglesPercentage(0.5f)
182 , NumOfVertPercentage(0.5f)
183 , MaxNumOfTriangles(4)
184 , MaxNumOfVerts(6)
188#endif
189 , MaxDeviationPercentage(0.5f)
190 , ReductionMethod(SMOT_NumOfTriangles)
191 , SilhouetteImportance(SMOI_Normal)
192 , TextureImportance(SMOI_Normal)
193 , ShadingImportance(SMOI_Normal)
194 , SkinningImportance(SMOI_Normal)
195 , bRemapMorphTargets(false)
196 , bRecalcNormals(true)
197 , WeldingThreshold(0.1f)
198 , NormalsThreshold(60.0f)
199 , MaxBonesPerVertex(4)
200 , bEnforceBoneBoundaries(false)
201 , bMergeCoincidentVertBones(true)
202 , VolumeImportance(1.f)
203 , bLockEdges(false)
204 , bLockColorBounaries(false)
205 , bImproveTrianglesForCloth(true)
206 , BaseLOD(0)
208 , BakePose_DEPRECATED(nullptr)
209#endif
210 {
211 }
212};
213
@ Normal
Definition AndroidInputInterface.h:116
#define WITH_EDITORONLY_DATA
Definition CoreMiscDefines.h:24
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
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
return true
Definition ExternalRpcRegistry.cpp:601
@ Skinning
Definition HairStrandsInterface.h:201
@ Vertex
Definition MetalRHIPrivate.h:223
#define MAX_uint32
Definition NumericLimits.h:21
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
SkeletalMeshOptimizationType
Definition SkeletalMeshReductionSettings.h:32
SkeletalMeshOptimizationImportance
Definition SkeletalMeshReductionSettings.h:42
@ UMETA
Definition SkeletalMeshReductionSettings.h:20
SkeletalMeshTerminationCriterion
Definition SkeletalMeshReductionSettings.h:19
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
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 Array.h:670
Definition EnumAsByte.h:22
Definition AnimSequence.h:203
@ false
Definition radaudio_common.h:23
Definition BoneReference.h:14
Definition SkeletalMeshReductionSettings.h:59
FSkeletalMeshOptimizationSettings()
Definition SkeletalMeshReductionSettings.h:179
Definition ObjectPtr.h:488