UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MaterialShared.cpp File Reference
#include "MaterialShared.h"
#include "MaterialSharedPrivate.h"
#include "Misc/DelayedAutoRegister.h"
#include "Stats/StatsMisc.h"
#include "Stats/StatsTrace.h"
#include "UObject/CoreObjectVersion.h"
#include "UObject/FrameworkObjectVersion.h"
#include "UObject/Package.h"
#include "UObject/UE5MainStreamObjectVersion.h"
#include "Materials/Material.h"
#include "Materials/MaterialAttributeDefinitionMap.h"
#include "Materials/MaterialInstance.h"
#include "Materials/MaterialRenderProxy.h"
#include "Materials/MaterialShaderMapLayout.h"
#include "ComponentReregisterContext.h"
#include "MaterialDomain.h"
#include "Materials/MaterialExpressionBreakMaterialAttributes.h"
#include "Materials/MaterialExpressionRerouteBase.h"
#include "ShaderCompiler.h"
#include "ShaderSerialization.h"
#include "MeshMaterialShader.h"
#include "MeshMaterialShaderType.h"
#include "RendererInterface.h"
#include "Materials/HLSLMaterialTranslator.h"
#include "ComponentRecreateRenderStateContext.h"
#include "EngineModule.h"
#include "Engine/Texture2D.h"
#include "Engine/Font.h"
#include "SceneView.h"
#include "Serialization/ShaderKeyGenerator.h"
#include "PSOPrecacheMaterial.h"
#include "ShaderPlatformQualitySettings.h"
#include "MaterialShaderQualitySettings.h"
#include "Engine/RendererSettings.h"
#include "ShaderCodeLibrary.h"
#include "HAL/FileManager.h"
#include "ProfilingDebugging/LoadTimeTracker.h"
#include "UObject/StrongObjectPtr.h"
#include "Interfaces/ITargetPlatform.h"
#include "Misc/ConfigCacheIni.h"
#include "MaterialCachedData.h"
#include "VT/RuntimeVirtualTexture.h"
#include "ProfilingDebugging/CountersTrace.h"
#include "RenderCore.h"
#include "SubstrateDefinitions.h"
#include "DataDrivenShaderPlatformInfo.h"
#include "ProfilingDebugging/CookStats.h"
#include "Engine/NeuralProfile.h"
#include "Materials/MaterialIRModule.h"
#include "Materials/MaterialIRModuleBuilder.h"
#include "Materials/MaterialIRToHLSLTranslator.h"
#include "Materials/MaterialSourceTemplate.h"
#include "Materials/MaterialInsights.h"
#include "Materials/MaterialExpressionCustom.h"

Classes

struct  FAllowCachingStaticParameterValues
 
struct  FLegacyTextureLookup
 

Macros

#define LOCTEXT_NAMESPACE   "MaterialShared"
 

Typedefs

typedef TMap< TRefCountPtr< FMaterial >, TRefCountPtr< FMaterialShaderMap > > FMaterialsToUpdateMap
 

Functions

 DEFINE_LOG_CATEGORY (LogMaterial)
 
bool IsUsingNewMaterialTranslatorPrototype ()
 
 IMPLEMENT_TYPE_LAYOUT (FHashedMaterialParameterInfo)
 
 IMPLEMENT_TYPE_LAYOUT (FUniformExpressionSet)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialCompilationOutput)
 
 IMPLEMENT_TYPE_LAYOUT (FMeshMaterialShaderMap)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialProcessedSource)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialShaderMapContent)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialUniformParameterEvaluation)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialUniformPreshaderHeader)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialUniformPreshaderField)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialNumericParameterInfo)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialTextureParameterInfo)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialTextureCollectionParameterInfo)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialExternalTextureParameterInfo)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialVirtualTextureStack)
 
 IMPLEMENT_TYPE_LAYOUT (FMaterialCacheTagStack)
 
bool PoolSpecialMaterialsCompileJobs ()
 
bool AllowDitheredLODTransition (ERHIFeatureLevel::Type FeatureLevel)
 
bool AllowDitheredLODTransition (EShaderPlatform ShaderPlatform)
 
void GetMaterialQualityLevelName (EMaterialQualityLevel::Type InQualityLevel, FString &OutName)
 
FName GetMaterialQualityLevelFName (EMaterialQualityLevel::Type InQualityLevel)
 
 UE_IMPLEMENT_STRUCT ("/Script/Engine", ExpressionInput)
 
 UE_IMPLEMENT_STRUCT ("/Script/Engine", ColorMaterialInput)
 
 UE_IMPLEMENT_STRUCT ("/Script/Engine", ScalarMaterialInput)
 
 UE_IMPLEMENT_STRUCT ("/Script/Engine", VectorMaterialInput)
 
 UE_IMPLEMENT_STRUCT ("/Script/Engine", Vector2MaterialInput)
 
 UE_IMPLEMENT_STRUCT ("/Script/Engine", MaterialAttributesInput)
 
FArchiveoperator<< (FArchive &Ar, FLegacyTextureLookup &Ref)
 
 TRACE_DECLARE_ATOMIC_INT_COUNTER (Shaders_OnDemandShaderRequests, TEXT("Shaders/OnDemandShaderRequests"))
 
void SetShaderMapsOnMaterialResources_RenderThread (FRHICommandListImmediate &RHICmdList, FMaterialsToUpdateMap &MaterialsToUpdate)
 
UE::Shader::FType GetShaderValueType (EMaterialParameterType Type)
 

Variables

FName MaterialQualityLevelNames []
 

Macro Definition Documentation

◆ LOCTEXT_NAMESPACE

#define LOCTEXT_NAMESPACE   "MaterialShared"

Typedef Documentation

◆ FMaterialsToUpdateMap

Function Documentation

◆ AllowDitheredLODTransition() [1/2]

bool AllowDitheredLODTransition ( ERHIFeatureLevel::Type  FeatureLevel)

◆ AllowDitheredLODTransition() [2/2]

bool AllowDitheredLODTransition ( EShaderPlatform  ShaderPlatform)

Whether to allow dithered LOD transitions for a specific shader platform.

◆ DEFINE_LOG_CATEGORY()

DEFINE_LOG_CATEGORY ( LogMaterial  )

◆ GetMaterialQualityLevelFName()

FName GetMaterialQualityLevelFName ( EMaterialQualityLevel::Type  InQualityLevel)

◆ GetMaterialQualityLevelName()

void GetMaterialQualityLevelName ( EMaterialQualityLevel::Type  InMaterialQualityLevel,
FString &  OutName 
)

Creates a string that represents the given quality level.

◆ GetShaderValueType()

UE::Shader::FType GetShaderValueType ( EMaterialParameterType  Type)

◆ IMPLEMENT_TYPE_LAYOUT() [1/15]

IMPLEMENT_TYPE_LAYOUT ( FHashedMaterialParameterInfo  )

◆ IMPLEMENT_TYPE_LAYOUT() [2/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialCacheTagStack  )

◆ IMPLEMENT_TYPE_LAYOUT() [3/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialCompilationOutput  )

◆ IMPLEMENT_TYPE_LAYOUT() [4/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialExternalTextureParameterInfo  )

◆ IMPLEMENT_TYPE_LAYOUT() [5/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialNumericParameterInfo  )

◆ IMPLEMENT_TYPE_LAYOUT() [6/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialProcessedSource  )

◆ IMPLEMENT_TYPE_LAYOUT() [7/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialShaderMapContent  )

◆ IMPLEMENT_TYPE_LAYOUT() [8/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialTextureCollectionParameterInfo  )

◆ IMPLEMENT_TYPE_LAYOUT() [9/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialTextureParameterInfo  )

◆ IMPLEMENT_TYPE_LAYOUT() [10/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialUniformParameterEvaluation  )

◆ IMPLEMENT_TYPE_LAYOUT() [11/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialUniformPreshaderField  )

◆ IMPLEMENT_TYPE_LAYOUT() [12/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialUniformPreshaderHeader  )

◆ IMPLEMENT_TYPE_LAYOUT() [13/15]

IMPLEMENT_TYPE_LAYOUT ( FMaterialVirtualTextureStack  )

◆ IMPLEMENT_TYPE_LAYOUT() [14/15]

IMPLEMENT_TYPE_LAYOUT ( FMeshMaterialShaderMap  )

◆ IMPLEMENT_TYPE_LAYOUT() [15/15]

IMPLEMENT_TYPE_LAYOUT ( FUniformExpressionSet  )

◆ IsUsingNewMaterialTranslatorPrototype()

bool IsUsingNewMaterialTranslatorPrototype ( )

◆ operator<<()

FArchive & operator<< ( FArchive Ar,
FLegacyTextureLookup Ref 
)

◆ PoolSpecialMaterialsCompileJobs()

bool PoolSpecialMaterialsCompileJobs ( )

◆ SetShaderMapsOnMaterialResources_RenderThread()

void SetShaderMapsOnMaterialResources_RenderThread ( FRHICommandListImmediate RHICmdList,
FMaterialsToUpdateMap MaterialsToUpdate 
)

◆ TRACE_DECLARE_ATOMIC_INT_COUNTER()

TRACE_DECLARE_ATOMIC_INT_COUNTER ( Shaders_OnDemandShaderRequests  ,
TEXT("Shaders/OnDemandShaderRequests"  
)

◆ UE_IMPLEMENT_STRUCT() [1/6]

UE_IMPLEMENT_STRUCT ( "/Script/Engine"  ,
ColorMaterialInput   
)

◆ UE_IMPLEMENT_STRUCT() [2/6]

UE_IMPLEMENT_STRUCT ( "/Script/Engine"  ,
ExpressionInput   
)

◆ UE_IMPLEMENT_STRUCT() [3/6]

UE_IMPLEMENT_STRUCT ( "/Script/Engine"  ,
MaterialAttributesInput   
)

◆ UE_IMPLEMENT_STRUCT() [4/6]

UE_IMPLEMENT_STRUCT ( "/Script/Engine"  ,
ScalarMaterialInput   
)

◆ UE_IMPLEMENT_STRUCT() [5/6]

UE_IMPLEMENT_STRUCT ( "/Script/Engine"  ,
Vector2MaterialInput   
)

◆ UE_IMPLEMENT_STRUCT() [6/6]

UE_IMPLEMENT_STRUCT ( "/Script/Engine"  ,
VectorMaterialInput   
)

Variable Documentation

◆ MaterialQualityLevelNames

FName MaterialQualityLevelNames[]
Initial value:
=
{
FName(TEXT("Low")),
FName(TEXT("High")),
FName(TEXT("Medium")),
FName(TEXT("Epic")),
FName(TEXT("Num"))
}
#define TEXT(x)
Definition Platform.h:1272
Definition NameTypes.h:617