UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
StaticMesh.cpp File Reference
#include "Engine/StaticMesh.h"
#include "BodySetupEnums.h"
#include "Serialization/LargeMemoryWriter.h"
#include "Engine/StaticMeshSourceData.h"
#include "Misc/ConfigCacheIni.h"
#include "EngineLogs.h"
#include "Misc/ScopedSlowTask.h"
#include "Engine/CollisionProfile.h"
#include "Math/ScaleRotationTranslationMatrix.h"
#include "Serialization/MemoryReader.h"
#include "UObject/AssetRegistryTagsContext.h"
#include "UObject/EditorObjectVersion.h"
#include "PhysicsEngine/BoxElem.h"
#include "UObject/FrameworkObjectVersion.h"
#include "RenderUtils.h"
#include "UObject/Package.h"
#include "SceneInterface.h"
#include "UObject/DevObjectVersion.h"
#include "UObject/DebugSerializationFlags.h"
#include "UObject/UE5ReleaseStreamObjectVersion.h"
#include "UObject/FortniteMainBranchObjectVersion.h"
#include "UObject/UObjectAnnotation.h"
#include "UObject/ICookInfo.h"
#include "EngineUtils.h"
#include "Engine/AssetUserData.h"
#include "StaticMeshDescription.h"
#include "StaticMeshOperations.h"
#include "Rendering/NaniteResources.h"
#include "Rendering/NaniteCoarseMeshStreamingManager.h"
#include "Rendering/RayTracingGeometryManager.h"
#include "NaniteVertexFactory.h"
#include "SpeedTreeWind.h"
#include "DistanceFieldAtlas.h"
#include "MeshCardBuild.h"
#include "MeshCardRepresentation.h"
#include "PhysicsEngine/PhysicsSettings.h"
#include "PhysicsEngine/BodySetup.h"
#include "Engine/Engine.h"
#include "DynamicMeshBuilder.h"
#include "Model.h"
#include "Async/Async.h"
#include "SplineMeshSceneProxy.h"
#include "PSOPrecache.h"
#include "UObject/UObjectIterator.h"
#include "Interfaces/ITargetPlatform.h"
#include "MaterialCachedData.h"
#include "Engine/StaticMeshSocket.h"
#include "MaterialDomain.h"
#include "EditorFramework/AssetImportData.h"
#include "AI/Navigation/NavCollisionBase.h"
#include "AI/NavigationSystemBase.h"
#include "ProfilingDebugging/CookStats.h"
#include "Streaming/UVChannelDensity.h"
#include "Logging/MessageLog.h"
#include "Logging/StructuredLog.h"
#include "Misc/UObjectToken.h"
#include "Streaming/StaticMeshUpdate.h"
#include "Streaming/TextureStreamingHelpers.h"
#include "ProfilingDebugging/IoStoreTrace.h"

Namespaces

namespace  UE
 
namespace  UE::StaticMesh
 
namespace  UE::StaticMesh::Private
 
namespace  UE::StaticMesh::Private::Constants
 

Macros

#define LOCTEXT_NAMESPACE   "StaticMesh"
 
#define MATERIAL_SLOT_DELIMITER   TEXT(">")
 
#define MATERIAL_SLOT_PAIR_DELIMITER   TEXT(",")
 

Functions

 DEFINE_LOG_CATEGORY (LogStaticMesh)
 
 DECLARE_MEMORY_STAT (TEXT("StaticMesh Total Memory"), STAT_StaticMeshTotalMemory2, STATGROUP_MemoryStaticMesh)
 
 DECLARE_MEMORY_STAT (TEXT("StaticMesh Vertex Memory"), STAT_StaticMeshVertexMemory, STATGROUP_MemoryStaticMesh)
 
 DECLARE_MEMORY_STAT (TEXT("StaticMesh VxColor Resource Mem"), STAT_ResourceVertexColorMemory, STATGROUP_MemoryStaticMesh)
 
 DECLARE_MEMORY_STAT (TEXT("StaticMesh Index Memory"), STAT_StaticMeshIndexMemory, STATGROUP_MemoryStaticMesh)
 
 DECLARE_MEMORY_STAT (TEXT("StaticMesh Total Memory"), STAT_StaticMeshTotalMemory, STATGROUP_Memory)
 
 DECLARE_FLOAT_ACCUMULATOR_STAT (TEXT("UStaticMesh::Serialize"), STAT_StaticMesh_SerializeFull, STATGROUP_LoadTime)
 
 DECLARE_FLOAT_ACCUMULATOR_STAT (TEXT("UStaticMesh_SerializeParent"), STAT_StaticMesh_SerializeParent, STATGROUP_LoadTime)
 
 DECLARE_FLOAT_ACCUMULATOR_STAT (TEXT("UStaticMesh_RenderDataLoad"), STAT_StaticMesh_RenderData, STATGROUP_LoadTime)
 
 DECLARE_FLOAT_ACCUMULATOR_STAT (TEXT("UStaticMesh_RenderDataFixup"), STAT_StaticMesh_RenderDataFixup, STATGROUP_LoadTime)
 
FArchiveoperator<< (FArchive &Ar, FStaticMeshSection &Section)
 
FArchiveoperator<< (FArchive &Ar, FStaticMaterial &Elem)
 
bool operator== (const FStaticMaterial &LHS, const FStaticMaterial &RHS)
 
bool operator== (const FStaticMaterial &LHS, const UMaterialInterface &RHS)
 
bool operator== (const UMaterialInterface &LHS, const FStaticMaterial &RHS)
 
 LLM_DEFINE_TAG (StaticMesh_Serialize)
 

Variables

ENGINE_API FName GStaticMeshPackageNameToRebuild = NAME_None
 
const TCHARGMinLodQualityLevelCVarName = TEXT("r.StaticMesh.MinLodQualityLevel")
 
const TCHARGMinLodQualityLevelScalabilitySection = TEXT("ViewDistanceQuality")
 
int32 GMinLodQualityLevel = -1
 
constexpr float UE::StaticMesh::Private::Constants::LOD0ScreenSize = 2.0f
 
constexpr float UE::StaticMesh::Private::Constants::AutoComputeLODPowerBase = 0.75f
 
constexpr float UE::StaticMesh::Private::Constants::Tolerance = 0.01f
 

Macro Definition Documentation

◆ LOCTEXT_NAMESPACE

#define LOCTEXT_NAMESPACE   "StaticMesh"

◆ MATERIAL_SLOT_DELIMITER

#define MATERIAL_SLOT_DELIMITER   TEXT(">")

◆ MATERIAL_SLOT_PAIR_DELIMITER

#define MATERIAL_SLOT_PAIR_DELIMITER   TEXT(",")

Function Documentation

◆ DECLARE_FLOAT_ACCUMULATOR_STAT() [1/4]

DECLARE_FLOAT_ACCUMULATOR_STAT ( TEXT("UStaticMesh::Serialize")  ,
STAT_StaticMesh_SerializeFull  ,
STATGROUP_LoadTime   
)

◆ DECLARE_FLOAT_ACCUMULATOR_STAT() [2/4]

DECLARE_FLOAT_ACCUMULATOR_STAT ( TEXT("UStaticMesh_RenderDataFixup")  ,
STAT_StaticMesh_RenderDataFixup  ,
STATGROUP_LoadTime   
)

◆ DECLARE_FLOAT_ACCUMULATOR_STAT() [3/4]

DECLARE_FLOAT_ACCUMULATOR_STAT ( TEXT("UStaticMesh_RenderDataLoad")  ,
STAT_StaticMesh_RenderData  ,
STATGROUP_LoadTime   
)

◆ DECLARE_FLOAT_ACCUMULATOR_STAT() [4/4]

DECLARE_FLOAT_ACCUMULATOR_STAT ( TEXT("UStaticMesh_SerializeParent")  ,
STAT_StaticMesh_SerializeParent  ,
STATGROUP_LoadTime   
)

◆ DECLARE_MEMORY_STAT() [1/5]

DECLARE_MEMORY_STAT ( TEXT("StaticMesh Index Memory" ,
STAT_StaticMeshIndexMemory  ,
STATGROUP_MemoryStaticMesh   
)

◆ DECLARE_MEMORY_STAT() [2/5]

DECLARE_MEMORY_STAT ( TEXT("StaticMesh Total Memory" ,
STAT_StaticMeshTotalMemory  ,
STATGROUP_Memory   
)

◆ DECLARE_MEMORY_STAT() [3/5]

DECLARE_MEMORY_STAT ( TEXT("StaticMesh Total Memory" ,
STAT_StaticMeshTotalMemory2  ,
STATGROUP_MemoryStaticMesh   
)

◆ DECLARE_MEMORY_STAT() [4/5]

DECLARE_MEMORY_STAT ( TEXT("StaticMesh Vertex Memory" ,
STAT_StaticMeshVertexMemory  ,
STATGROUP_MemoryStaticMesh   
)

◆ DECLARE_MEMORY_STAT() [5/5]

DECLARE_MEMORY_STAT ( TEXT("StaticMesh VxColor Resource Mem" ,
STAT_ResourceVertexColorMemory  ,
STATGROUP_MemoryStaticMesh   
)

◆ DEFINE_LOG_CATEGORY()

DEFINE_LOG_CATEGORY ( LogStaticMesh  )

◆ LLM_DEFINE_TAG()

LLM_DEFINE_TAG ( StaticMesh_Serialize  )

◆ operator<<() [1/2]

FArchive & operator<< ( FArchive Ar,
FStaticMaterial Elem 
)

◆ operator<<() [2/2]

FArchive & operator<< ( FArchive Ar,
FStaticMeshSection Section 
)

Serializer.

◆ operator==() [1/3]

bool operator== ( const FStaticMaterial LHS,
const FStaticMaterial RHS 
)

◆ operator==() [2/3]

bool operator== ( const FStaticMaterial LHS,
const UMaterialInterface RHS 
)

◆ operator==() [3/3]

bool operator== ( const UMaterialInterface LHS,
const FStaticMaterial RHS 
)

Variable Documentation

◆ GMinLodQualityLevel

int32 GMinLodQualityLevel = -1

◆ GMinLodQualityLevelCVarName

const TCHAR* GMinLodQualityLevelCVarName = TEXT("r.StaticMesh.MinLodQualityLevel")

◆ GMinLodQualityLevelScalabilitySection

const TCHAR* GMinLodQualityLevelScalabilitySection = TEXT("ViewDistanceQuality")

◆ GStaticMeshPackageNameToRebuild

ENGINE_API FName GStaticMeshPackageNameToRebuild = NAME_None

Package name, that if set will cause only static meshes in that package to be rebuilt based on SM version.