UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MeshApproximationSettings.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "MeshApproximationSettings.generated.h"
7
8
9UENUM()
15
16UENUM()
23
24
25UENUM()
31
32UENUM()
39
40UENUM()
48
49
50UENUM()
57
58
59USTRUCT(Blueprintable)
61{
63
64
65 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = ShapeSettings)
67
68
69 //
70 // Mesh Generation Settings
71 //
72
74 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = ShapeSettings, meta = (DisplayName = "Approximation Accuracy (meters)", ClampMin = "0.001"))
75 float ApproximationAccuracy = 1.0f;
76
78 UPROPERTY(BlueprintReadWrite, EditAnywhere, AdvancedDisplay, Category = ShapeSettings, meta = (ClampMin = "64", ClampMax = "1290"))
79 int32 ClampVoxelDimension = 1024;
80
82 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = ShapeSettings)
83 bool bAttemptAutoThickening = true;
84
86 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = ShapeSettings, meta = (ClampMin = "0.001", EditCondition = "bAttemptAutoThickening"))
87 float TargetMinThicknessMultiplier = 1.5f;
88
90 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = ShapeSettings)
91 bool bIgnoreTinyParts = true;
92
94 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = ShapeSettings, meta = (ClampMin = "0.001", EditCondition = "bIgnoreTinyParts"))
95 float TinyPartSizeMultiplier = 0.05f;
96
97
99 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = ShapeSettings)
101
102
104 UPROPERTY(BlueprintReadWrite, EditAnywhere, AdvancedDisplay, Category = ShapeSettings, meta = (ClampMin = "0.01", ClampMax = "0.99"))
105 float WindingThreshold = 0.5f;
106
108 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = ShapeSettings)
109 bool bFillGaps = true;
110
112 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = ShapeSettings, meta = (DisplayName = "Gap Filling Distance (meters)", ClampMin = "0.001", EditCondition = "bFillGaps"))
113 float GapDistance = 0.1f;
114
115
116 //
117 // Output Mesh Filtering and Simplification Settings
118 //
119
121 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SimplifySettings)
123
125 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SimplifySettings)
126 bool bOccludeFromBottom = true;
127
129 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SimplifySettings)
131
133 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SimplifySettings, meta = (ClampMin = "16", EditCondition = "SimplifyMethod == EMeshApproximationSimplificationPolicy::FixedTriangleCount" ))
134 int32 TargetTriCount = 2000;
135
137 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SimplifySettings, meta = (ClampMin = "0.01", EditCondition = "SimplifyMethod == EMeshApproximationSimplificationPolicy::TrianglesPerArea" ))
138 float TrianglesPerM = 2.0f;
139
141 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SimplifySettings, meta = (DisplayName = "Geometric Deviation (meters)", ClampMin = "0.0001", EditCondition = "SimplifyMethod == EMeshApproximationSimplificationPolicy::GeometricTolerance"))
142 float GeometricDeviation = 0.1f;
143
145 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SimplifySettings)
147
149 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = SimplifySettings, meta = (EditCondition = "GroundClipping != EMeshApproximationGroundPlaneClippingPolicy::NoGroundClipping"))
150 float GroundClippingZHeight = 0.0f;
151
152
153 //
154 // Mesh Normals and Tangents Settings
155 //
156
158 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = NormalsSettings)
159 bool bEstimateHardNormals = true;
160
161 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = NormalsSettings, meta = (ClampMin = "0.0", ClampMax = "90.0", EditCondition = "bEstimateHardNormals"))
162 float HardNormalAngle = 60.0f;
163
164
165 //
166 // Mesh UV Generation Settings
167 //
168
169 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = UVSettings)
171
172
174 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = UVSettings, AdvancedDisplay, meta = (UIMin = "1", UIMax = "1000", ClampMin = "1", ClampMax = "99999999", EditCondition = "UVGenerationMethod == EMeshApproximationUVGenerationPolicy::PreferPatchBuilder"))
175 int InitialPatchCount = 250;
176
178 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = UVSettings, AdvancedDisplay, meta = (UIMin = "0.1", UIMax = "2.0", ClampMin = "0.01", ClampMax = "100.0", EditCondition = "UVGenerationMethod == EMeshApproximationUVGenerationPolicy::PreferPatchBuilder"))
179 float CurvatureAlignment = 1.0f;
180
182 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = UVSettings, AdvancedDisplay, meta = (UIMin = "1.0", UIMax = "5.0", ClampMin = "1.0", EditCondition = "UVGenerationMethod == EMeshApproximationUVGenerationPolicy::PreferPatchBuilder"))
183 float MergingThreshold = 1.5f;
184
186 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = UVSettings, AdvancedDisplay, meta = (UIMin = "0.0", UIMax = "90.0", ClampMin = "0.0", ClampMax = "180.0", EditCondition = "UVGenerationMethod == EMeshApproximationUVGenerationPolicy::PreferPatchBuilder"))
187 float MaxAngleDeviation = 45.0f;
188
189 //
190 // Output Static Mesh Settings
191 //
192
194 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = MeshSettings)
195 bool bGenerateNaniteEnabledMesh = false;
196
198 UPROPERTY(BlueprintReadWrite, EditAnywhere, AdvancedDisplay, Category = MeshSettings, meta = (EditConditionHides, EditCondition = "bGenerateNaniteEnabledMesh"))
200
202 UPROPERTY(BlueprintReadWrite, EditAnywhere, AdvancedDisplay, Category = MeshSettings, meta = (EditConditionHides, EditCondition = "bGenerateNaniteEnabledMesh && NaniteFallbackTarget == ENaniteFallbackTarget::PercentTriangles", ClampMin = 0, ClampMax = 1))
203 float NaniteFallbackPercentTriangles = 1.0f;
204
206 UPROPERTY(BlueprintReadWrite, EditAnywhere, AdvancedDisplay, Category = MeshSettings, meta = (EditConditionHides, EditCondition = "bGenerateNaniteEnabledMesh && NaniteFallbackTarget == ENaniteFallbackTarget::RelativeError", ClampMin = 0))
207 float NaniteFallbackRelativeError = 1.0f;
208
210 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = MeshSettings)
212
214 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = MeshSettings)
215 bool bAllowDistanceField = true;
216
217
218 //
219 // Material Baking Settings
220 //
221
223 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = MaterialSettings, meta = (ClampMin = "0", ClampMax = "8", UIMin = "0", UIMax = "4"))
224 int32 MultiSamplingAA = 0;
225
227 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = MaterialSettings, meta = (ClampMin = "0"))
228 int32 RenderCaptureResolution = 2048;
229
231 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = MaterialSettings)
232 FMaterialProxySettings MaterialSettings;
233
234 UPROPERTY(BlueprintReadWrite, EditAnywhere, AdvancedDisplay, Category = MaterialSettings, meta = (ClampMin = "5.0", ClampMax = "160.0"))
235 float CaptureFieldOfView = 30.0f;
236
237 UPROPERTY(BlueprintReadWrite, EditAnywhere, AdvancedDisplay, Category = MaterialSettings, meta = (ClampMin = "0.001", ClampMax = "1000.0"))
238 float NearPlaneDist = 1.0f;
239
240
241 //
242 // Performance Settings
243 //
244
245
247 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = PerformanceSettings)
248 bool bUseRenderLODMeshes = false;
249
251 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = PerformanceSettings)
252 bool bEnableSimplifyPrePass = true;
253
255 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = PerformanceSettings)
256 bool bEnableParallelBaking = true;
257
258 //
259 // Debug Output Settings
260 //
261
262
264 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = DebugSettings)
265 bool bPrintDebugMessages = false;
266
268 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = DebugSettings)
269 bool bEmitFullDebugMesh = false;
270
271
273 ENGINE_API bool operator==(const FMeshApproximationSettings& Other) const;
274
276 ENGINE_API bool operator!=(const FMeshApproximationSettings& Other) const;
277
278#if WITH_EDITORONLY_DATA
280 void PostSerialize(const FArchive& Ar);
281#endif
282
283private:
284#if WITH_EDITORONLY_DATA
285 UPROPERTY()
287#endif
288};
289
290template<>
292{
293#if WITH_EDITORONLY_DATA
294 enum
295 {
296 WithPostSerialize = true,
297 };
298#endif
299};
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
ENaniteFallbackTarget
Definition EngineTypes.h:2982
return true
Definition ExternalRpcRegistry.cpp:601
EOccludedGeometryFilteringPolicy
Definition MeshApproximationSettings.h:27
EMeshApproximationType
Definition MeshApproximationSettings.h:11
EMeshApproximationGroundPlaneClippingPolicy
Definition MeshApproximationSettings.h:42
EMeshApproximationBaseCappingType
Definition MeshApproximationSettings.h:18
EMeshApproximationSimplificationPolicy
Definition MeshApproximationSettings.h:34
EMeshApproximationUVGenerationPolicy
Definition MeshApproximationSettings.h:52
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
@ false
Definition radaudio_common.h:23
Definition MaterialMerging.h:34
Definition MeshApproximationSettings.h:61
Definition StructOpsTypeTraits.h:11
@ WithPostSerialize
Definition StructOpsTypeTraits.h:25
Definition StructOpsTypeTraits.h:46