UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MaterialInstance.cpp File Reference
#include "Materials/MaterialInstance.h"
#include "DataDrivenShaderPlatformInfo.h"
#include "FinalPostProcessSettings.h"
#include "SparseVolumeTexture/SparseVolumeTexture.h"
#include "Stats/StatsMisc.h"
#include "EngineModule.h"
#include "Engine/Font.h"
#include "Engine/Texture.h"
#include "Engine/TextureCollection.h"
#include "Materials/Material.h"
#include "UObject/Package.h"
#include "Materials/MaterialExpressionStaticBoolParameter.h"
#include "UObject/UObjectIterator.h"
#include "MeshUVChannelInfo.h"
#include "UObject/LinkerLoad.h"
#include "Materials/MaterialInstanceDynamic.h"
#include "PipelineStateCache.h"
#include "UnrealEngine.h"
#include "MaterialDomain.h"
#include "Materials/MaterialExpressionScalarParameter.h"
#include "Materials/MaterialExpressionVectorParameter.h"
#include "Materials/MaterialExpressionDoubleVectorParameter.h"
#include "Materials/MaterialExpressionTextureCollectionParameter.h"
#include "Materials/MaterialExpressionCollectionParameter.h"
#include "Materials/MaterialExpressionTextureSampleParameter.h"
#include "Materials/MaterialExpressionFontSampleParameter.h"
#include "Materials/MaterialExpressionMaterialAttributeLayers.h"
#include "Materials/MaterialExpressionRuntimeVirtualTextureSampleParameter.h"
#include "Materials/MaterialExpressionSparseVolumeTextureSample.h"
#include "Materials/MaterialExpressionStaticComponentMaskParameter.h"
#include "Materials/MaterialExpressionMaterialFunctionCall.h"
#include "Materials/MaterialInstanceConstant.h"
#include "Materials/MaterialInstanceUpdateParameterSet.h"
#include "Materials/MaterialInstanceSupport.h"
#include "Materials/MaterialParameterCollection.h"
#include "Materials/MaterialSharedPrivate.h"
#include "Engine/SubsurfaceProfile.h"
#include "Engine/SpecularProfile.h"
#include "ProfilingDebugging/CookStats.h"
#include "ProfilingDebugging/LoadTimeTracker.h"
#include "ObjectCacheEventSink.h"
#include "Interfaces/ITargetPlatform.h"
#include "RenderUtils.h"
#include "ShaderCodeLibrary.h"
#include "Curves/CurveLinearColor.h"
#include "Curves/CurveLinearColorAtlas.h"
#include "Misc/ScopedSlowTask.h"
#include "RendererInterface.h"
#include "ShaderPlatformQualitySettings.h"
#include "MaterialShaderQualitySettings.h"
#include "Stats/StatsTrace.h"
#include "UObject/EditorObjectVersion.h"
#include "UObject/ObjectSaveContext.h"
#include "UObject/ReleaseObjectVersion.h"
#include "UObject/UE5MainStreamObjectVersion.h"
#include "UObject/FortniteMainBranchObjectVersion.h"
#include "ShaderCompiler.h"
#include "MaterialCachedData.h"
#include "ComponentRecreateRenderStateContext.h"
#include "UObject/UE5ReleaseStreamObjectVersion.h"
#include "VT/RuntimeVirtualTexture.h"
#include "LocalVertexFactory.h"
#include "PSOPrecacheMaterial.h"

Namespaces

namespace  MaterialInstanceImpl
 

Functions

 DECLARE_CYCLE_STAT (TEXT("MaterialInstance CopyMatInstParams"), STAT_MaterialInstance_CopyMatInstParams, STATGROUP_Shaders)
 
 DECLARE_CYCLE_STAT (TEXT("MaterialInstance Serialize"), STAT_MaterialInstance_Serialize, STATGROUP_Shaders)
 
 DECLARE_CYCLE_STAT (TEXT("MaterialInstance CopyUniformParamsInternal"), STAT_MaterialInstance_CopyUniformParamsInternal, STATGROUP_Shaders)
 
void CacheMaterialInstanceUniformExpressions (const UMaterialInstance *MaterialInstance, bool bRecreateUniformBuffer)
 
template<typename ParameterType >
void GameThread_UpdateMIParameter (const UMaterialInstance *Instance, const ParameterType &Parameter)
 
void GameThread_InitMIParameters (const UMaterialInstance &Instance)
 
bool ShouldRecacheMaterialExpressions (const FMaterialResource *Resource, const FHashedMaterialParameterInfo &ParameterInfo)
 
EBlendMode ConvertLegacyBlendMode (EBlendMode InBlendMode, FMaterialShadingModelField InShadingModels)
 
void MaterialInstanceImpl::HandleCacheShadersForResourcesErrors (bool bSuccess, EShaderPlatform ShaderPlatform, UMaterialInstance *This, FMaterialResource *CurrentResource)
 
template<typename ParameterType >
void TrimToOverriddenOnly (TArray< ParameterType > &Parameters)
 
FPostProcessMaterialNodeFindExistingBlendablePostProcessNode (const FFinalPostProcessSettings &Dest, const UMaterialInterface *Material, const UMaterial *Base)
 

Variables

ENGINE_API bool bEnableRestrictiveMaterialInstanceParents = false
 

Function Documentation

◆ CacheMaterialInstanceUniformExpressions()

void CacheMaterialInstanceUniformExpressions ( const UMaterialInstance MaterialInstance,
bool  bRecreateUniformBuffer 
)

Cache uniform expressions for the given material.

Parameters
MaterialInstance- The material instance for which to cache uniform expressions.

◆ ConvertLegacyBlendMode()

EBlendMode ConvertLegacyBlendMode ( EBlendMode  InBlendMode,
FMaterialShadingModelField  InShadingModels 
)

◆ DECLARE_CYCLE_STAT() [1/3]

DECLARE_CYCLE_STAT ( TEXT("MaterialInstance CopyMatInstParams" ,
STAT_MaterialInstance_CopyMatInstParams  ,
STATGROUP_Shaders   
)

◆ DECLARE_CYCLE_STAT() [2/3]

◆ DECLARE_CYCLE_STAT() [3/3]

DECLARE_CYCLE_STAT ( TEXT("MaterialInstance Serialize" ,
STAT_MaterialInstance_Serialize  ,
STATGROUP_Shaders   
)

◆ FindExistingBlendablePostProcessNode()

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

◆ GameThread_InitMIParameters()

void GameThread_InitMIParameters ( const UMaterialInstance Instance)

Initializes MI parameters from the game thread.

◆ GameThread_UpdateMIParameter()

template<typename ParameterType >
void GameThread_UpdateMIParameter ( const UMaterialInstance Instance,
const ParameterType &  Parameter 
)

Updates a parameter on the material instance from the game thread.

◆ ShouldRecacheMaterialExpressions()

bool ShouldRecacheMaterialExpressions ( const FMaterialResource Resource,
const FHashedMaterialParameterInfo ParameterInfo 
)
extern

◆ TrimToOverriddenOnly()

template<typename ParameterType >
void TrimToOverriddenOnly ( TArray< ParameterType > &  Parameters)

Variable Documentation

◆ bEnableRestrictiveMaterialInstanceParents

ENGINE_API bool bEnableRestrictiveMaterialInstanceParents = false