UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Material.cpp File Reference
#include "Materials/Material.h"
#include "Stats/StatsMisc.h"
#include "Misc/FeedbackContext.h"
#include "Stats/StatsTrace.h"
#include "UObject/AssetRegistryTagsContext.h"
#include "UObject/ObjectSaveContext.h"
#include "UObject/FortniteMainBranchObjectVersion.h"
#include "UObject/UObjectIterator.h"
#include "UObject/Package.h"
#include "UObject/UObjectAnnotation.h"
#include "UObject/LinkerLoad.h"
#include "Materials/MaterialAttributeDefinitionMap.h"
#include "Materials/MaterialInstanceDynamic.h"
#include "UnrealEngine.h"
#include "Materials/MaterialExpressionCustomOutput.h"
#include "Materials/MaterialExpressionFunctionOutput.h"
#include "Materials/MaterialExpressionDynamicParameter.h"
#include "Materials/MaterialExpressionQualitySwitch.h"
#include "Materials/MaterialExpressionFeatureLevelSwitch.h"
#include "Materials/MaterialExpressionShadingPathSwitch.h"
#include "Materials/MaterialExpressionShaderStageSwitch.h"
#include "Materials/MaterialExpressionMakeMaterialAttributes.h"
#include "Materials/MaterialExpressionMaterialAttributeLayers.h"
#include "Materials/MaterialExpressionMaterialFunctionCall.h"
#include "Materials/MaterialExpressionGetMaterialAttributes.h"
#include "Materials/MaterialExpressionSetMaterialAttributes.h"
#include "Materials/MaterialExpressionRuntimeVirtualTextureOutput.h"
#include "Materials/MaterialExpressionStaticSwitchParameter.h"
#include "Materials/MaterialExpressionTextureBase.h"
#include "Materials/MaterialExpressionTextureSample.h"
#include "Materials/MaterialExpressionTextureSampleParameter.h"
#include "Materials/MaterialExpressionVertexInterpolator.h"
#include "Materials/MaterialExpressionShadingModel.h"
#include "Materials/MaterialExpressionTransform.h"
#include "Materials/MaterialExpressionNamedReroute.h"
#include "Materials/MaterialFunction.h"
#include "Materials/MaterialExpressionSingleLayerWaterMaterialOutput.h"
#include "Materials/MaterialExpressionMultiply.h"
#include "Materials/MaterialSharedPrivate.h"
#include "PSOPrecacheMaterial.h"
#include "SceneManagement.h"
#include "SceneView.h"
#include "Materials/MaterialUniformExpressions.h"
#include "Engine/SubsurfaceProfile.h"
#include "Engine/SpecularProfile.h"
#include "Engine/TextureCollection.h"
#include "EditorSupportDelegates.h"
#include "ComponentRecreateRenderStateContext.h"
#include "ShaderCompiler.h"
#include "Materials/MaterialParameterCollection.h"
#include "ShaderPlatformQualitySettings.h"
#include "MaterialShaderQualitySettings.h"
#include "ProfilingDebugging/LoadTimeTracker.h"
#include "ProfilingDebugging/CookStats.h"
#include "MaterialCompiler.h"
#include "MaterialDomain.h"
#include "MaterialShaderType.h"
#include "Materials/MaterialInstanceSupport.h"
#include "Interfaces/ITargetPlatform.h"
#include "Materials/MaterialExpressionComment.h"
#include "UObject/EditorObjectVersion.h"
#include "UObject/ReleaseObjectVersion.h"
#include "RenderUtils.h"
#include "DataDrivenShaderPlatformInfo.h"
#include "UObject/UE5MainStreamObjectVersion.h"
#include "UObject/UE5ReleaseStreamObjectVersion.h"
#include "Materials/MaterialExpressionVolumetricAdvancedMaterialInput.h"
#include "Materials/MaterialExpressionVolumetricAdvancedMaterialOutput.h"
#include "Materials/MaterialExpressionCloudLayer.h"
#include "Materials/MaterialExpressionSubstrate.h"
#include "Materials/MaterialExpressionThinTranslucentMaterialOutput.h"
#include "Materials/MaterialExpressionClearCoatNormalCustomOutput.h"
#include "Materials/MaterialExpressionTangentOutput.h"
#include "Materials/MaterialExpressionConstant.h"
#include "Materials/MaterialExpressionConstant3Vector.h"
#include "Materials/MaterialExpressionBreakMaterialAttributes.h"
#include "Materials/MaterialIRModuleBuilder.h"
#include "MaterialCachedData.h"
#include "Misc/OutputDeviceArchiveWrapper.h"
#include "HAL/FileManager.h"
#include "BuildSettings.h"
#include "LocalVertexFactory.h"
#include "ShaderCodeLibrary.h"
#include "String/ParseTokens.h"
#include "Curves/CurveLinearColorAtlas.h"
#include "Misc/ScopedSlowTask.h"

Classes

struct  MaterialImpl::FMobileProperty
 
class  FDefaultMaterialInstance
 

Namespaces

namespace  MaterialImpl
 
namespace  UE
 
namespace  UE::MaterialInterface
 
namespace  UE::MaterialInterface::Private
 

Macros

#define LOCTEXT_NAMESPACE   "Material"
 
#define GAllowCompilationInPostLoad   true
 
#define CASE_ENUM_TO_TEXT(txt)   case txt: return TEXT(#txt);
 
#define TEXT_TO_ENUM(eVal, txt)   if (FCString::Stricmp(TEXT(#eVal), txt) == 0) return eVal;
 
#define TEXT_TO_SHADINGMODEL(m)   TEXT_TO_ENUM(m, InMaterialShadingModelStr);
 
#define TEXT_TO_BLENDMODE(b)   TEXT_TO_ENUM(b, InBlendModeStr);
 
#define SUBSTRATE_MOVE_CONNECTION   0
 
#define SUBSTRATE_COPY_CONNECTION   1
 

Functions

bool PoolSpecialMaterialsCompileJobs ()
 
FString MaterialDomainString (EMaterialDomain MaterialDomain)
 
void ProcessSerializedInlineShaderMaps (UMaterialInterface *Owner, TArray< FMaterialResource > &LoadedResources, TArray< FMaterialResource * > &OutMaterialResourcesLoaded)
 
FMaterialResourceFindMaterialResource (const TArray< FMaterialResource * > &MaterialResources, ERHIFeatureLevel::Type InFeatureLevel, EMaterialQualityLevel::Type QualityLevel, bool bAllowDefaultQuality)
 
FMaterialResourceFindMaterialResource (TArray< FMaterialResource * > &MaterialResources, ERHIFeatureLevel::Type InFeatureLevel, EMaterialQualityLevel::Type QualityLevel, bool bAllowDefaultQuality)
 
FMaterialResourceFindMaterialResource (const TArray< FMaterialResource * > &MaterialResources, EShaderPlatform InShaderPlatform, EMaterialQualityLevel::Type QualityLevel, bool bAllowDefaultQuality)
 
FMaterialResourceFindMaterialResource (TArray< FMaterialResource * > &MaterialResources, EShaderPlatform InShaderPlatform, EMaterialQualityLevel::Type QualityLevel, bool bAllowDefaultQuality)
 
FMaterialResourceFindOrCreateMaterialResource (TArray< FMaterialResource * > &MaterialResources, UMaterial *OwnerMaterial, UMaterialInstance *OwnerMaterialInstance, ERHIFeatureLevel::Type InFeatureLevel, EMaterialQualityLevel::Type InQualityLevel)
 
FMaterialResourceFindOrCreateMaterialResource (TArray< FMaterialResource * > &MaterialResources, UMaterial *OwnerMaterial, UMaterialInstance *OwnerMaterialInstance, EShaderPlatform InShaderPlatform, EMaterialQualityLevel::Type InQualityLevel)
 
bool ShouldRecacheMaterialExpressions (const FMaterialResource *Resource, const FHashedMaterialParameterInfo &ParameterInfo)
 
FPostProcessMaterialNodeFindExistingBlendablePostProcessNode (const FFinalPostProcessSettings &Dest, const UMaterialInterface *Material, const UMaterial *Base)
 
EBlendMode ConvertLegacyBlendMode (EBlendMode InBlendMode, FMaterialShadingModelField InShadingModels)
 

Variables

bool GPoolSpecialMaterialsCompileJobs = true
 
TMap< FGuid, UMaterialInterface * > LightingGuidFixupMap
 

Macro Definition Documentation

◆ CASE_ENUM_TO_TEXT

#define CASE_ENUM_TO_TEXT (   txt)    case txt: return TEXT(#txt);

Helper functions for text output of properties...

◆ GAllowCompilationInPostLoad

#define GAllowCompilationInPostLoad   true

◆ LOCTEXT_NAMESPACE

#define LOCTEXT_NAMESPACE   "Material"

◆ SUBSTRATE_COPY_CONNECTION

#define SUBSTRATE_COPY_CONNECTION   1

◆ SUBSTRATE_MOVE_CONNECTION

#define SUBSTRATE_MOVE_CONNECTION   0

◆ TEXT_TO_BLENDMODE

#define TEXT_TO_BLENDMODE (   b)    TEXT_TO_ENUM(b, InBlendModeStr);

◆ TEXT_TO_ENUM

#define TEXT_TO_ENUM (   eVal,
  txt 
)    if (FCString::Stricmp(TEXT(#eVal), txt) == 0) return eVal;

◆ TEXT_TO_SHADINGMODEL

#define TEXT_TO_SHADINGMODEL (   m)    TEXT_TO_ENUM(m, InMaterialShadingModelStr);

Function Documentation

◆ ConvertLegacyBlendMode()

EBlendMode ConvertLegacyBlendMode ( EBlendMode  InBlendMode,
FMaterialShadingModelField  InShadingModels 
)

◆ FindExistingBlendablePostProcessNode()

FPostProcessMaterialNode * FindExistingBlendablePostProcessNode ( const FFinalPostProcessSettings Dest,
const UMaterialInterface Material,
const UMaterial Base 
)
extern

◆ FindMaterialResource() [1/4]

FMaterialResource * FindMaterialResource ( const TArray< FMaterialResource * > &  MaterialResources,
ERHIFeatureLevel::Type  InFeatureLevel,
EMaterialQualityLevel::Type  QualityLevel,
bool  bAllowDefaultQuality 
)
extern

◆ FindMaterialResource() [2/4]

FMaterialResource * FindMaterialResource ( const TArray< FMaterialResource * > &  MaterialResources,
EShaderPlatform  InShaderPlatform,
EMaterialQualityLevel::Type  QualityLevel,
bool  bAllowDefaultQuality 
)

◆ FindMaterialResource() [3/4]

FMaterialResource * FindMaterialResource ( TArray< FMaterialResource * > &  MaterialResources,
ERHIFeatureLevel::Type  InFeatureLevel,
EMaterialQualityLevel::Type  QualityLevel,
bool  bAllowDefaultQuality 
)

◆ FindMaterialResource() [4/4]

FMaterialResource * FindMaterialResource ( TArray< FMaterialResource * > &  MaterialResources,
EShaderPlatform  InShaderPlatform,
EMaterialQualityLevel::Type  QualityLevel,
bool  bAllowDefaultQuality 
)

◆ FindOrCreateMaterialResource() [1/2]

FMaterialResource * FindOrCreateMaterialResource ( TArray< FMaterialResource * > &  MaterialResources,
UMaterial OwnerMaterial,
UMaterialInstance OwnerMaterialInstance,
ERHIFeatureLevel::Type  InFeatureLevel,
EMaterialQualityLevel::Type  InQualityLevel 
)

◆ FindOrCreateMaterialResource() [2/2]

FMaterialResource * FindOrCreateMaterialResource ( TArray< FMaterialResource * > &  MaterialResources,
UMaterial OwnerMaterial,
UMaterialInstance OwnerMaterialInstance,
EShaderPlatform  InShaderPlatform,
EMaterialQualityLevel::Type  InQualityLevel 
)

◆ MaterialDomainString()

FString MaterialDomainString ( EMaterialDomain  MaterialDomain)

◆ PoolSpecialMaterialsCompileJobs()

bool PoolSpecialMaterialsCompileJobs ( )

◆ ProcessSerializedInlineShaderMaps()

void ProcessSerializedInlineShaderMaps ( UMaterialInterface Owner,
TArray< FMaterialResource > &  LoadedResources,
TArray< FMaterialResource * > &  OutMaterialResourcesLoaded 
)

Helper function to process (register) serialized inline shader maps for the given material resources.

◆ ShouldRecacheMaterialExpressions()

bool ShouldRecacheMaterialExpressions ( const FMaterialResource Resource,
const FHashedMaterialParameterInfo ParameterInfo 
)

Variable Documentation

◆ GPoolSpecialMaterialsCompileJobs

bool GPoolSpecialMaterialsCompileJobs = true

◆ LightingGuidFixupMap

TMap<FGuid, UMaterialInterface*> LightingGuidFixupMap