UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UMaterialInterface Class Reference

#include <MaterialInterface.h>

+ Inheritance diagram for UMaterialInterface:

Public Member Functions

const FMaterialCachedTexturesSamplingInfoGetCachedTexturesSamplingInfo () const
 
virtual ENGINE_API FTextureSamplingInfo CalculateTexturesSamplingInfo (UTexture *Texture)
 
ENGINE_API UMaterialInterface ()
 
ENGINE_API UMaterialInterface (FVTableHelper &Helper)
 
virtual ENGINE_API ~UMaterialInterface ()
 
virtual ENGINE_API void AddAssetUserData (UAssetUserData *InUserData) override
 
virtual ENGINE_API void RemoveUserDataOfClass (TSubclassOf< UAssetUserData > InUserDataClass) override
 
virtual ENGINE_API UAssetUserDataGetAssetUserDataOfClass (TSubclassOf< UAssetUserData > InUserDataClass) override
 
ENGINE_API void SetFeatureLevelToCompile (ERHIFeatureLevel::Type FeatureLevel, bool bShouldCompile)
 
virtual ENGINE_API void BeginDestroy () override
 
virtual ENGINE_API void FinishDestroy () override
 
virtual ENGINE_API bool IsReadyForFinishDestroy () override
 
virtual ENGINE_API void PostInitProperties () override
 
virtual ENGINE_API void Serialize (FArchive &Ar) override
 
virtual ENGINE_API void PostLoad () override
 
virtual ENGINE_API void PostDuplicate (bool bDuplicateForPIE) override
 
virtual ENGINE_API void PostCDOContruct () override
 
virtual ENGINE_API bool Rename (const TCHAR *NewName=nullptr, UObject *NewOuter=nullptr, ERenameFlags Flags=REN_None) override
 
virtual ENGINE_API void OverrideBlendableSettings (class FSceneView &View, float Weight) const override
 
ENGINE_API UMaterialGetBaseMaterial ()
 
virtual ENGINE_API void OnAssignedAsOverride (const UObject *Owner)
 
virtual ENGINE_API void OnRemovedAsOverride (const UObject *Owner)
 
virtual ENGINE_API const FMaterialCachedExpressionDataGetCachedExpressionData (TMicRecursionGuard RecursionGuard=TMicRecursionGuard()) const
 
ENGINE_API bool IsUsingNewHLSLGenerator () const
 
ENGINE_API bool IsUsingNewTranslatorPrototype () const
 
ENGINE_API const FSubstrateCompilationConfigGetSubstrateCompilationConfig () const
 
ENGINE_API void SetSubstrateCompilationConfig (FSubstrateCompilationConfig &SubstrateCompilationConfig)
 
virtual bool IsDependent (UMaterialInterface *TestDependency)
 
virtual bool IsDependent_Concurrent (UMaterialInterface *TestDependency, TMicRecursionGuard RecursionGuard=TMicRecursionGuard())
 
void GetQualityLevelUsage (TArray< bool, TInlineAllocator< EMaterialQualityLevel::Num > > &QualityLevelsUsed, EShaderPlatform ShaderPlatform, bool bCooking=false)
 
void GetQualityLevelUsageForCooking (TArray< bool, TInlineAllocator< EMaterialQualityLevel::Num > > &QualityLevelsUsed, EShaderPlatform ShaderPlatform)
 
virtual void GetUsedTextures (TArray< UTexture * > &OutTextures, EMaterialQualityLevel::Type QualityLevel, bool bAllQualityLevels, ERHIFeatureLevel::Type FeatureLevel, bool bAllFeatureLevels) const final
 
virtual ENGINE_API void GetUsedTexturesAndIndices (TArray< UTexture * > &OutTextures, TArray< TArray< int32 > > &OutIndices, EMaterialQualityLevel::Type QualityLevel, EShaderPlatform InShaderPlatform) const
 
virtual void OverrideNumericParameterDefault (EMaterialParameterType Type, const FHashedMaterialParameterInfo &ParameterInfo, const UE::Shader::FValue &Value, bool bOverride, ERHIFeatureLevel::Type FeatureLevel) final
 
virtual FMaterialResourceGetMaterialResource (ERHIFeatureLevel::Type InFeatureLevel, EMaterialQualityLevel::Type QualityLevel=EMaterialQualityLevel::Num) final
 
virtual FMaterialResourceGetMaterialResource (EShaderPlatform InShaderPlatform, EMaterialQualityLevel::Type QualityLevel=EMaterialQualityLevel::Num)
 
virtual const FMaterialResourceGetMaterialResource (ERHIFeatureLevel::Type InFeatureLevel, EMaterialQualityLevel::Type QualityLevel=EMaterialQualityLevel::Num) const final
 
virtual const FMaterialResourceGetMaterialResource (EShaderPlatform InShaderPlatform, EMaterialQualityLevel::Type QualityLevel=EMaterialQualityLevel::Num) const
 
UMaterialInterfaceGetNaniteOverideMaterial () const
 
FGraphEventArray PrecachePSOs (const FVertexFactoryType *VertexFactoryType, const struct FPSOPrecacheParams &PreCacheParams)
 
FGraphEventArray PrecachePSOs (const TConstArrayView< const FVertexFactoryType * > &VertexFactoryTypes, const struct FPSOPrecacheParams &PreCacheParams)
 
FGraphEventArray PrecachePSOs (const TConstArrayView< const FVertexFactoryType * > &VertexFactoryTypes, const struct FPSOPrecacheParams &PreCacheParams, TArray< FMaterialPSOPrecacheRequestID > &OutMaterialPSORequestIDs)
 
FGraphEventArray PrecachePSOs (const TConstArrayView< const FVertexFactoryType * > &VertexFactoryTypes, const struct FPSOPrecacheParams &PreCacheParams, EPSOPrecachePriority PSOPrecachePriority, TArray< FMaterialPSOPrecacheRequestID > &OutMaterialPSORequestIDs)
 
virtual FGraphEventArray PrecachePSOs (const FPSOPrecacheVertexFactoryDataList &VertexFactoryDataList, const struct FPSOPrecacheParams &PreCacheParams, EPSOPrecachePriority Priority, TArray< FMaterialPSOPrecacheRequestID > &OutMaterialPSORequestIDs)
 
virtual ENGINE_API void GetAllParameterInfoOfType (EMaterialParameterType Type, TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
virtual ENGINE_API void GetAllParametersOfType (EMaterialParameterType Type, TMap< FMaterialParameterInfo, FMaterialParameterMetadata > &OutParameters) const
 
ENGINE_API void GetAllScalarParameterInfo (TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
ENGINE_API void GetAllVectorParameterInfo (TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
ENGINE_API void GetAllDoubleVectorParameterInfo (TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
ENGINE_API void GetAllTextureParameterInfo (TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
ENGINE_API void GetAllTextureCollectionParameterInfo (TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
ENGINE_API void GetAllParameterCollectionParameterInfo (TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
ENGINE_API void GetAllRuntimeVirtualTextureParameterInfo (TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
ENGINE_API void GetAllSparseVolumeTextureParameterInfo (TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
ENGINE_API void GetAllFontParameterInfo (TArray< FMaterialParameterInfo > &OutParameterInfo, TArray< FGuid > &OutParameterIds) const
 
ENGINE_API bool GetParameterDefaultValue (EMaterialParameterType Type, const FMemoryImageMaterialParameterInfo &ParameterInfo, FMaterialParameterMetadata &OutValue) const
 
ENGINE_API bool GetScalarParameterDefaultValue (const FHashedMaterialParameterInfo &ParameterInfo, float &OutValue) const
 
ENGINE_API bool GetVectorParameterDefaultValue (const FHashedMaterialParameterInfo &ParameterInfo, FLinearColor &OutValue) const
 
ENGINE_API bool GetDoubleVectorParameterDefaultValue (const FHashedMaterialParameterInfo &ParameterInfo, FVector4d &OutValue) const
 
ENGINE_API bool GetTextureParameterDefaultValue (const FHashedMaterialParameterInfo &ParameterInfo, class UTexture *&OutValue) const
 
ENGINE_API bool GetTextureCollectionParameterDefaultValue (const FHashedMaterialParameterInfo &ParameterInfo, class UTextureCollection *&OutValue) const
 
ENGINE_API bool GetParameterCollectionParameterDefaultValue (const FHashedMaterialParameterInfo &ParameterInfo, class UMaterialParameterCollection *&OutValue) const
 
ENGINE_API bool GetRuntimeVirtualTextureParameterDefaultValue (const FHashedMaterialParameterInfo &ParameterInfo, class URuntimeVirtualTexture *&OutValue) const
 
ENGINE_API bool GetSparseVolumeTextureParameterDefaultValue (const FHashedMaterialParameterInfo &ParameterInfo, class USparseVolumeTexture *&OutValue) const
 
ENGINE_API bool GetFontParameterDefaultValue (const FHashedMaterialParameterInfo &ParameterInfo, class UFont *&OutFontValue, int32 &OutFontPage) const
 
ENGINE_API TArrayView< const TObjectPtr< UObject > > GetReferencedTextures () const
 
ENGINE_API TConstArrayView< TObjectPtr< UTextureCollection > > GetReferencedTextureCollections () const
 
ENGINE_API FMaterialRelevance GetRelevance (ERHIFeatureLevel::Type InFeatureLevel) const
 
ENGINE_API FMaterialRelevance GetRelevance (EShaderPlatform ShaderPlatform) const
 
ENGINE_API FMaterialRelevance GetRelevance_Concurrent (ERHIFeatureLevel::Type InFeatureLevel) const
 
ENGINE_API FMaterialRelevance GetRelevance_Concurrent (EShaderPlatform ShaderPlatform) const
 
ENGINE_API bool IsUsingWorldPositionOffset_Concurrent (ERHIFeatureLevel::Type InFeatureLevel) const
 
ENGINE_API bool IsUsingWorldPositionOffset_Concurrent (EShaderPlatform InShaderPlatform) const
 
ENGINE_API bool IsUsingTemporalResponsiveness_Concurrent (EShaderPlatform InShaderPlatform) const
 
ENGINE_API bool IsUsingMotionVectorWorldOffset_Concurrent (EShaderPlatform InShaderPlatform) const
 
virtual void LogMaterialsAndTextures (FOutputDevice &Ar, int32 Indent) const
 
virtual void DumpDebugInfo (FOutputDevice &OutputDevice) const
 
int32 GetWidth () const
 
int32 GetHeight () const
 
const FGuidGetLightingGuid () const
 
void SetLightingGuid ()
 
virtual ENGINE_API void GetLightingGuidChain (bool bIncludeTextures, TArray< FGuid > &OutGuids) const
 
virtual bool UpdateLightmassTextureTracking ()
 
bool GetOverrideCastShadowAsMasked () const
 
bool GetOverrideEmissiveBoost () const
 
bool GetOverrideDiffuseBoost () const
 
bool GetOverrideExportResolutionScale () const
 
virtual bool GetCastShadowAsMasked () const
 
virtual float GetEmissiveBoost () const
 
virtual float GetDiffuseBoost () const
 
virtual float GetExportResolutionScale () const
 
void SetOverrideCastShadowAsMasked (bool bInOverrideCastShadowAsMasked)
 
void SetOverrideEmissiveBoost (bool bInOverrideEmissiveBoost)
 
void SetOverrideDiffuseBoost (bool bInOverrideDiffuseBoost)
 
void SetOverrideExportResolutionScale (bool bInOverrideExportResolutionScale)
 
void SetCastShadowAsMasked (bool InCastShadowAsMasked)
 
void SetEmissiveBoost (float InEmissiveBoost)
 
void SetDiffuseBoost (float InDiffuseBoost)
 
void SetExportResolutionScale (float InExportResolutionScale)
 
virtual ENGINE_API bool GetParameterValue (EMaterialParameterType Type, const FMemoryImageMaterialParameterInfo &ParameterInfo, FMaterialParameterMetadata &OutValue, EMaterialGetParameterValueFlags Flags=EMaterialGetParameterValueFlags::Default) const
 
ENGINE_API bool GetScalarParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, float &OutValue, bool bOveriddenOnly=false) const
 
ENGINE_API bool GetVectorParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, FLinearColor &OutValue, bool bOveriddenOnly=false) const
 
ENGINE_API bool GetDoubleVectorParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, FVector4d &OutValue, bool bOveriddenOnly=false) const
 
virtual ENGINE_API bool GetTextureParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, class UTexture *&OutValue, bool bOveriddenOnly=false) const
 
virtual ENGINE_API bool GetTextureCollectionParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, class UTextureCollection *&OutValue, bool bOveriddenOnly=false) const
 
virtual ENGINE_API bool GetParameterCollectionParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, class UMaterialParameterCollection *&OutValue, bool bOveriddenOnly=false) const
 
ENGINE_API bool GetRuntimeVirtualTextureParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, class URuntimeVirtualTexture *&OutValue, bool bOveriddenOnly=false) const
 
ENGINE_API bool GetSparseVolumeTextureParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, class USparseVolumeTexture *&OutValue, bool bOveriddenOnly=false) const
 
ENGINE_API bool GetFontParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, class UFont *&OutFontValue, int32 &OutFontPage, bool bOveriddenOnly=false) const
 
virtual ENGINE_API bool GetRefractionSettings (float &OutBiasValue) const
 
virtual ENGINE_API bool GetUserSceneTextureOverride (FName &InOutValue) const
 
ENGINE_API FName GetUserSceneTextureOutput (const UMaterial *Base) const
 
virtual ENGINE_API EBlendableLocation GetBlendableLocation (const UMaterial *Base) const
 
virtual ENGINE_API int32 GetBlendablePriority (const UMaterial *Base) const
 
virtual ENGINE_API float GetOpacityMaskClipValue () const
 
virtual ENGINE_API bool GetCastDynamicShadowAsMasked () const
 
virtual ENGINE_API EBlendMode GetBlendMode () const
 
virtual ENGINE_API FMaterialShadingModelField GetShadingModels () const
 
virtual ENGINE_API bool IsShadingModelFromMaterialExpression () const
 
virtual ENGINE_API bool IsTwoSided () const
 
virtual ENGINE_API bool IsThinSurface () const
 
virtual ENGINE_API bool IsDitheredLODTransition () const
 
virtual ENGINE_API bool IsTranslucencyWritingCustomDepth () const
 
virtual ENGINE_API bool IsTranslucencyWritingVelocity () const
 
virtual ENGINE_API bool IsTranslucencyVelocityFromDepth () const
 
virtual ENGINE_API bool IsTranslucencyWritingFrontLayerTransparency () const
 
virtual ENGINE_API bool IsMasked () const
 
virtual ENGINE_API bool IsDeferredDecal () const
 
virtual ENGINE_API bool IsUIMaterial () const
 
virtual ENGINE_API bool IsPostProcessMaterial () const
 
virtual ENGINE_API bool WritesToRuntimeVirtualTexture () const
 
virtual ENGINE_API bool HasMeshPaintTexture () const
 
virtual ENGINE_API bool HasCustomPrimitiveData () const
 
virtual ENGINE_API FDisplacementScaling GetDisplacementScaling () const
 
virtual ENGINE_API bool IsDisplacementFadeEnabled () const
 
virtual ENGINE_API FDisplacementFadeRange GetDisplacementFadeRange () const
 
virtual ENGINE_API float GetMaxWorldPositionOffsetDisplacement () const
 
virtual ENGINE_API bool ShouldAlwaysEvaluateWorldPositionOffset () const
 
virtual ENGINE_API bool HasVertexInterpolator () const
 
virtual ENGINE_API bool HasCustomizedUVs () const
 
virtual ENGINE_API bool HasPixelAnimation () const
 
virtual ENGINE_API USubsurfaceProfileGetSubsurfaceProfile_Internal () const
 
virtual ENGINE_API USubsurfaceProfileGetSubsurfaceProfileRoot_Internal () const
 
virtual ENGINE_API uint32 NumSubsurfaceProfileRoot_Internal () const
 
virtual ENGINE_API USubsurfaceProfileGetSubsurfaceProfileRoot_Internal (uint32 Index) const
 
virtual ENGINE_API USubsurfaceProfileGetSubsurfaceProfileOverride_Internal () const
 
virtual ENGINE_API uint32 NumSpecularProfile_Internal () const
 
virtual ENGINE_API USpecularProfileGetSpecularProfile_Internal (uint32 Index) const
 
virtual ENGINE_API USpecularProfileGetSpecularProfileOverride_Internal () const
 
virtual ENGINE_API UNeuralProfileGetNeuralProfile_Internal () const
 
virtual ENGINE_API bool CastsRayTracedShadows () const
 
virtual ENGINE_API bool IsTessellationEnabled () const
 
virtual ENGINE_API bool HasSubstrateRoughnessTracking () const
 
virtual ENGINE_API bool IsCompatibleWithLumenCardSharing () const
 
virtual ENGINE_API void SetForceMipLevelsToBeResident (bool OverrideForceMiplevelsToBeResident, bool bForceMiplevelsToBeResidentValue, float ForceDuration, int32 CinematicTextureGroups=0, bool bFastResponse=false)
 
virtual void RecacheUniformExpressions (bool bRecreateUniformBuffer) const
 
virtual void CacheShaders (EMaterialShaderPrecompileMode CompileMode=EMaterialShaderPrecompileMode::Default)
 Submits remaining shaders for recompilation.
 
virtual bool IsComplete () const
 Checks to see if this material has all its shaders cached.
 
bool IsCompiling () const
 
ENGINE_API void EnsureIsComplete ()
 Checks to see if this material has all its shaders cached and if not, will perform a synchronous compilation of those.
 
virtual ENGINE_API bool IsPropertyActive (EMaterialProperty InProperty) const
 
ENGINE_API void AnalyzeMaterialProperty (EMaterialProperty InProperty, int32 &OutNumTextureCoordinates, bool &bOutRequiresVertexData)
 
ENGINE_API void AnalyzeMaterialPropertyEx (EMaterialProperty InProperty, FMaterialAnalysisResult &OutResult)
 
ENGINE_API void AnalyzeMaterialCustomOutput (UMaterialExpressionCustomOutput *InCustomOutput, int32 InOutputIndex, FMaterialAnalysisResult &OutResult)
 
ENGINE_API void AnalyzeMaterialCompilationInCallback (TFunctionRef< void(FMaterialCompiler *)> InCompilationCallback, FMaterialAnalysisResult &OutResult)
 
ENGINE_API void AnalyzeMaterialTranslationOutput (FMaterialResource *MaterialResource, EShaderPlatform ShaderPlatform, FMaterialAnalysisResult &OutResult)
 
ENGINE_API void AnalyzeMaterialTranslationOutput (FMaterialResource *MaterialResource, EShaderPlatform ShaderPlatform, bool ValidationMode, FMaterialAnalysisResult &OutResult)
 
ENGINE_API bool UseAnyStreamingTexture () const
 
bool HasTextureStreamingData () const
 
const TArray< FMaterialTextureInfo > & GetTextureStreamingData () const
 
TArray< FMaterialTextureInfo > & GetTextureStreamingData ()
 
ENGINE_API bool FindTextureStreamingDataIndexRange (FName TextureName, int32 &LowerIndex, int32 &HigherIndex) const
 
ENGINE_API void SetTextureStreamingData (const TArray< FMaterialTextureInfo > &InTextureStreamingData)
 
virtual ENGINE_API float GetTextureDensity (FName TextureName, const struct FMeshUVChannelInfo &UVChannelData) const
 
ENGINE_API float GetTextureDensityWithCache (const FTextureSamplingInfo &TextureSamplingInfo, const FMeshUVChannelInfo &UVChannelData) const
 
virtual ENGINE_API void PreSave (FObjectPreSaveContext ObjectSaveContext) override
 
ENGINE_API void SortTextureStreamingData (bool bForceSort, bool bFinalSort)
 
- Public Member Functions inherited from UObject
COREUOBJECT_API UObject ()
 
COREUOBJECT_API UObject (const FObjectInitializer &ObjectInitializer)
 
COREUOBJECT_API UObject (EStaticConstructor, EObjectFlags InFlags)
 
COREUOBJECT_API UObject (FVTableHelper &Helper)
 
COREUOBJECT_API UObjectCreateDefaultSubobject (FName SubobjectFName, UClass *ReturnType, UClass *ClassToCreateByDefault, bool bIsRequired, bool bIsTransient)
 
template<class TReturnType >
TReturnTypeCreateEditorOnlyDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
COREUOBJECT_API void GetDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects)
 
COREUOBJECT_API UObjectGetDefaultSubobjectByName (FName ToFind)
 
virtual COREUOBJECT_API void PostReinitProperties ()
 
virtual COREUOBJECT_API void PreSaveRoot (FObjectPreSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PostSaveRoot (FObjectPostSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void CollectSaveOverrides (FObjectCollectSaveOverridesContext SaveContext)
 
UE_FORCEINLINE_HINT bool Modify (bool bAlwaysMarkDirty=true)
 
UE_FORCEINLINE_HINT bool IsCapturingAsRootObjectForTransaction () const
 
virtual bool ResolveSubobject (const TCHAR *SubObjectPath, UObject *&OutObject, bool bLoadIfExists)
 
virtual bool IsReadyForAsyncPostLoad () const
 
virtual COREUOBJECT_API void PostLoadSubobjects (FObjectInstancingGraph *OuterInstanceGraph)
 
virtual COREUOBJECT_API void Serialize (FStructuredArchive::FRecord Record)
 
virtual void ShutdownAfterError ()
 
virtual void PostInterpChange (FProperty *PropertyThatChanged)
 
virtual COREUOBJECT_API void PostRename (UObject *OldOuter, const FName OldName)
 
virtual void PreDuplicate (FObjectDuplicationParameters &DupParams)
 
virtual void PostDuplicate (EDuplicateMode::Type DuplicateMode)
 
virtual COREUOBJECT_API bool NeedsLoadForClient () const
 
virtual COREUOBJECT_API bool NeedsLoadForServer () const
 
virtual COREUOBJECT_API bool NeedsLoadForTargetPlatform (const class ITargetPlatform *TargetPlatform) const
 
virtual bool NeedsLoadForEditorGame () const
 
virtual bool IsEditorOnly () const
 
virtual bool HasNonEditorOnlyReferences () const
 
virtual bool IsPostLoadThreadSafe () const
 
virtual COREUOBJECT_API bool IsDestructionThreadSafe () const
 
virtual COREUOBJECT_API void GetPreloadDependencies (TArray< UObject * > &OutDeps)
 
virtual void GetPrestreamPackages (TArray< UObject * > &OutPrestream)
 
virtual void ExportCustomProperties (FOutputDevice &Out, uint32 Indent)
 
virtual void ImportCustomProperties (const TCHAR *SourceText, FFeedbackContext *Warn)
 
virtual void PostEditImport ()
 
virtual void PostReloadConfig (class FProperty *PropertyThatWasLoaded)
 
virtual FString GetDesc ()
 
COREUOBJECT_API UScriptStructGetSparseClassDataStruct () const
 
virtual bool GetNativePropertyValues (TMap< FString, FString > &out_PropertyValues, uint32 ExportFlags=0) const
 
virtual COREUOBJECT_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize)
 
SIZE_T GetResourceSizeBytes (EResourceSizeMode::Type Mode)
 
virtual FName GetExporterName (void)
 
COREUOBJECT_API void CallAddReferencedObjects (FReferenceCollector &Collector)
 
virtual FRestoreForUObjectOverwriteGetRestoreForUObjectOverwrite ()
 
virtual bool AreNativePropertiesIdenticalTo (UObject *Other) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (TArray< FAssetRegistryTag > &OutTags) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetData &Out) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context, FAssetData &Out) const
 
virtual COREUOBJECT_API bool IsAsset () const
 
virtual COREUOBJECT_API FPrimaryAssetId GetPrimaryAssetId () const
 
virtual COREUOBJECT_API bool IsLocalizedResource () const
 
virtual COREUOBJECT_API bool IsSafeForRootSet () const
 
virtual COREUOBJECT_API void TagSubobjects (EObjectFlags NewFlags)
 
virtual COREUOBJECT_API void GetLifetimeReplicatedProps (TArray< class FLifetimeProperty > &OutLifetimeProps) const
 
virtual COREUOBJECT_API void GetReplicatedCustomConditionState (FCustomPropertyConditionState &OutActiveState) const
 
virtual COREUOBJECT_API void RegisterReplicationFragments (UE::Net::FFragmentRegistrationContext &Context, UE::Net::EFragmentRegistrationFlags RegistrationFlags)
 
virtual COREUOBJECT_API bool IsNameStableForNetworking () const
 
virtual COREUOBJECT_API bool IsFullNameStableForNetworking () const
 
virtual COREUOBJECT_API bool IsSupportedForNetworking () const
 
virtual void GetSubobjectsWithStableNamesForNetworking (TArray< UObject * > &ObjList)
 
virtual COREUOBJECT_API void PreNetReceive ()
 
virtual COREUOBJECT_API void PostNetReceive ()
 
virtual void PostRepNotifies ()
 
virtual COREUOBJECT_API void PreDestroyFromReplication ()
 
COREUOBJECT_API bool IsSelected () const
 
COREUOBJECT_API void SerializeScriptProperties (FArchive &Ar) const
 
COREUOBJECT_API void SerializeScriptProperties (FStructuredArchive::FSlot Slot) const
 
COREUOBJECT_API void ReinitializeProperties (UObject *SourceObject=NULL, struct FObjectInstancingGraph *InstanceGraph=NULL)
 
COREUOBJECT_API FString GetDetailedInfo () const
 
COREUOBJECT_API bool ConditionalBeginDestroy ()
 
COREUOBJECT_API bool ConditionalFinishDestroy ()
 
COREUOBJECT_API void ConditionalPostLoad ()
 
COREUOBJECT_API void ConditionalPreload ()
 
COREUOBJECT_API void ConditionalPostLoadSubobjects (struct FObjectInstancingGraph *OuterInstanceGraph=NULL)
 
bool IsBasedOnArchetype (const UObject *const SomeObject) const
 
COREUOBJECT_API UFunctionFindFunction (FName InName) const
 
COREUOBJECT_API UFunctionFindFunctionChecked (FName InName) const
 
virtual COREUOBJECT_API void BuildSubobjectMapping (UObject *OtherObject, TMap< UObject *, UObject * > &ObjectMapping) const
 
COREUOBJECT_API void CollectDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects, bool bIncludeNestedSubobjects=false) const
 
COREUOBJECT_API bool CheckDefaultSubobjects (bool bForceCheck=false) const
 
COREUOBJECT_API void SaveConfig (uint64 RequiredPropertyFlags=CPF_Config, const TCHAR *Filename=nullptr, FConfigCacheIni *Config=GConfig, bool bAllowCopyToDefaultObject=true)
 
COREUOBJECT_API void SaveConfig (const FSaveConfigContext &Context)
 
COREUOBJECT_API void UpdateDefaultConfigFile (const FString &SpecificFileLocation="")
 
COREUOBJECT_API bool TryUpdateDefaultConfigFile (const FString &SpecificFileLocation="", bool bWarnIfFail=true)
 
COREUOBJECT_API void UpdateGlobalUserConfigFile ()
 
COREUOBJECT_API void UpdateProjectUserConfigFile ()
 
COREUOBJECT_API void UpdateSinglePropertyInConfigFile (const FProperty *InProperty, const FString &InConfigIniName)
 
COREUOBJECT_API FString GetDefaultConfigFilename () const
 
COREUOBJECT_API FString GetGlobalUserConfigFilename () const
 
COREUOBJECT_API FString GetProjectUserConfigFilename () const
 
virtual const TCHARGetConfigOverridePlatform () const
 
virtual void OverrideConfigSection (FString &SectionName)
 
virtual void OverridePerObjectConfigSection (FString &SectionName)
 
COREUOBJECT_API void LoadConfig (UClass *ConfigClass=nullptr, const TCHAR *Filename=nullptr, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=nullptr, TArray< UE::ConfigAccessTracking::FConfigAccessData > *OutAccessedKeys=nullptr)
 
COREUOBJECT_API void ReloadConfig (UClass *ConfigClass=NULL, const TCHAR *Filename=NULL, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=NULL)
 
COREUOBJECT_API void ParseParms (const TCHAR *Parms)
 
COREUOBJECT_API void OutputReferencers (FOutputDevice &Ar, FReferencerInformationList *Referencers=NULL)
 
COREUOBJECT_API void RetrieveReferencers (TArray< FReferencerInformation > *OutInternalReferencers, TArray< FReferencerInformation > *OutExternalReferencers)
 
COREUOBJECT_API void SetLinker (FLinkerLoad *LinkerLoad, int32 LinkerIndex, bool bShouldDetachExisting=true, bool bSilenceLogs=false)
 
COREUOBJECT_API UObjectGetArchetype () const
 
COREUOBJECT_API void GetArchetypeInstances (TArray< UObject * > &Instances)
 
COREUOBJECT_API void InstanceSubobjectTemplates (struct FObjectInstancingGraph *InstanceGraph=NULL)
 
template<class T >
bool Implements () const
 
virtual COREUOBJECT_API void ProcessEvent (UFunction *Function, void *Parms)
 
virtual int32 GetFunctionCallspace (UFunction *Function, FFrame *Stack)
 
virtual bool CallRemoteFunction (UFunction *Function, void *Parms, struct FOutParmRec *OutParms, FFrame *Stack)
 
COREUOBJECT_API bool CallFunctionByNameWithArguments (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor, bool bForceCallWithNonExec=false)
 
COREUOBJECT_API void CallFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
 DECLARE_FUNCTION (ProcessInternal)
 
virtual bool ProcessConsoleExec (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor)
 
COREUOBJECT_API void SkipFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
virtual UClassRegenerateClass (UClass *ClassToRegenerate, UObject *PreviousCDO)
 
COREUOBJECT_API bool IsInBlueprint () const
 
COREUOBJECT_API void DestroyNonNativeProperties ()
 
virtual void MarkAsEditorOnlySubobject ()
 
COREUOBJECT_API void AbortInsideMemberFunction () const
 
 DECLARE_FUNCTION (execUndefined)
 
 DECLARE_FUNCTION (execLocalVariable)
 
 DECLARE_FUNCTION (execInstanceVariable)
 
 DECLARE_FUNCTION (execDefaultVariable)
 
 DECLARE_FUNCTION (execLocalOutVariable)
 
 DECLARE_FUNCTION (execInterfaceVariable)
 
 DECLARE_FUNCTION (execClassSparseDataVariable)
 
 DECLARE_FUNCTION (execInterfaceContext)
 
 DECLARE_FUNCTION (execArrayElement)
 
 DECLARE_FUNCTION (execBoolVariable)
 
 DECLARE_FUNCTION (execClassDefaultVariable)
 
 DECLARE_FUNCTION (execEndFunctionParms)
 
 DECLARE_FUNCTION (execNothing)
 
 DECLARE_FUNCTION (execNothingInt32)
 
 DECLARE_FUNCTION (execNothingOp4a)
 
 DECLARE_FUNCTION (execBreakpoint)
 
 DECLARE_FUNCTION (execTracepoint)
 
 DECLARE_FUNCTION (execWireTracepoint)
 
 DECLARE_FUNCTION (execInstrumentation)
 
 DECLARE_FUNCTION (execEndOfScript)
 
 DECLARE_FUNCTION (execReturnNothing)
 
 DECLARE_FUNCTION (execEmptyParmValue)
 
 DECLARE_FUNCTION (execJump)
 
 DECLARE_FUNCTION (execJumpIfNot)
 
 DECLARE_FUNCTION (execAssert)
 
 DECLARE_FUNCTION (execPushExecutionFlow)
 
 DECLARE_FUNCTION (execPopExecutionFlow)
 
 DECLARE_FUNCTION (execComputedJump)
 
 DECLARE_FUNCTION (execPopExecutionFlowIfNot)
 
 DECLARE_FUNCTION (execLet)
 
 DECLARE_FUNCTION (execLetObj)
 
 DECLARE_FUNCTION (execLetWeakObjPtr)
 
 DECLARE_FUNCTION (execLetBool)
 
 DECLARE_FUNCTION (execLetDelegate)
 
 DECLARE_FUNCTION (execLetMulticastDelegate)
 
 DECLARE_FUNCTION (execAddMulticastDelegate)
 
 DECLARE_FUNCTION (execClearMulticastDelegate)
 
 DECLARE_FUNCTION (execEatReturnValue)
 
 DECLARE_FUNCTION (execRemoveMulticastDelegate)
 
 DECLARE_FUNCTION (execSelf)
 
 DECLARE_FUNCTION (execContext)
 
 DECLARE_FUNCTION (execContext_FailSilent)
 
 DECLARE_FUNCTION (execStructMemberContext)
 
 DECLARE_FUNCTION (execVirtualFunction)
 
 DECLARE_FUNCTION (execFinalFunction)
 
 DECLARE_FUNCTION (execLocalVirtualFunction)
 
 DECLARE_FUNCTION (execLocalFinalFunction)
 
 DECLARE_FUNCTION (execStructCmpEq)
 
 DECLARE_FUNCTION (execStructCmpNe)
 
 DECLARE_FUNCTION (execStructMember)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execNotEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execNotEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execIntConst)
 
 DECLARE_FUNCTION (execInt64Const)
 
 DECLARE_FUNCTION (execUInt64Const)
 
 DECLARE_FUNCTION (execSkipOffsetConst)
 
 DECLARE_FUNCTION (execFloatConst)
 
 DECLARE_FUNCTION (execDoubleConst)
 
 DECLARE_FUNCTION (execStringConst)
 
 DECLARE_FUNCTION (execUnicodeStringConst)
 
 DECLARE_FUNCTION (execTextConst)
 
 DECLARE_FUNCTION (execPropertyConst)
 
 DECLARE_FUNCTION (execObjectConst)
 
 DECLARE_FUNCTION (execSoftObjectConst)
 
 DECLARE_FUNCTION (execFieldPathConst)
 
 DECLARE_FUNCTION (execInstanceDelegate)
 
 DECLARE_FUNCTION (execNameConst)
 
 DECLARE_FUNCTION (execByteConst)
 
 DECLARE_FUNCTION (execIntZero)
 
 DECLARE_FUNCTION (execIntOne)
 
 DECLARE_FUNCTION (execTrue)
 
 DECLARE_FUNCTION (execFalse)
 
 DECLARE_FUNCTION (execNoObject)
 
 DECLARE_FUNCTION (execNullInterface)
 
 DECLARE_FUNCTION (execIntConstByte)
 
 DECLARE_FUNCTION (execRotationConst)
 
 DECLARE_FUNCTION (execVectorConst)
 
 DECLARE_FUNCTION (execVector3fConst)
 
 DECLARE_FUNCTION (execTransformConst)
 
 DECLARE_FUNCTION (execStructConst)
 
 DECLARE_FUNCTION (execSetArray)
 
 DECLARE_FUNCTION (execSetSet)
 
 DECLARE_FUNCTION (execSetMap)
 
 DECLARE_FUNCTION (execArrayConst)
 
 DECLARE_FUNCTION (execSetConst)
 
 DECLARE_FUNCTION (execMapConst)
 
 DECLARE_FUNCTION (execBitFieldConst)
 
 DECLARE_FUNCTION (execNew)
 
 DECLARE_FUNCTION (execClassContext)
 
 DECLARE_FUNCTION (execNativeParm)
 
 DECLARE_FUNCTION (execCast)
 
 DECLARE_FUNCTION (execDynamicCast)
 
 DECLARE_FUNCTION (execMetaCast)
 
 DECLARE_FUNCTION (execInterfaceCast)
 
 DECLARE_FUNCTION (execDoubleToFloatCast)
 
 DECLARE_FUNCTION (execFloatToDoubleCast)
 
 DECLARE_FUNCTION (execObjectToBool)
 
 DECLARE_FUNCTION (execInterfaceToBool)
 
 DECLARE_FUNCTION (execObjectToInterface)
 
 DECLARE_FUNCTION (execInterfaceToInterface)
 
 DECLARE_FUNCTION (execInterfaceToObject)
 
 DECLARE_FUNCTION (execGetDynArrayElement)
 
 DECLARE_FUNCTION (execSetDynArrayElement)
 
 DECLARE_FUNCTION (execGetDynArrayLength)
 
 DECLARE_FUNCTION (execSetDynArrayLength)
 
 DECLARE_FUNCTION (execDynArrayInsert)
 
 DECLARE_FUNCTION (execDynArrayRemove)
 
 DECLARE_FUNCTION (execDynArrayFind)
 
 DECLARE_FUNCTION (execDynArrayFindStruct)
 
 DECLARE_FUNCTION (execDynArrayAdd)
 
 DECLARE_FUNCTION (execDynArrayAddItem)
 
 DECLARE_FUNCTION (execDynArrayInsertItem)
 
 DECLARE_FUNCTION (execDynArrayRemoveItem)
 
 DECLARE_FUNCTION (execDynArraySort)
 
 DECLARE_FUNCTION (execBindDelegate)
 
 DECLARE_FUNCTION (execCallMulticastDelegate)
 
 DECLARE_FUNCTION (execLetValueOnPersistentFrame)
 
 DECLARE_FUNCTION (execCallMathFunction)
 
 DECLARE_FUNCTION (execSwitchValue)
 
 DECLARE_FUNCTION (execArrayGetByRef)
 
 DECLARE_FUNCTION (execAutoRtfmTransact)
 
 DECLARE_FUNCTION (execAutoRtfmStopTransact)
 
 DECLARE_FUNCTION (execAutoRtfmAbortIfNot)
 
void ExecuteUbergraph (int32 EntryPoint)
 
virtual void ValidateGeneratedRepEnums (const TArray< struct FRepRecord > &ClassReps) const
 
virtual uint64 GetNetPushIdDynamic () const
 
- Public Member Functions inherited from UObjectBaseUtility
 UObjectBaseUtility ()
 
 UObjectBaseUtility (EObjectFlags InFlags)
 
void SetFlags (EObjectFlags NewFlags)
 
void ClearFlags (EObjectFlags FlagsToClear)
 
bool HasAnyFlags (EObjectFlags FlagsToCheck) const
 
bool HasAllFlags (EObjectFlags FlagsToCheck) const
 
UE_FORCEINLINE_HINT EObjectFlags GetMaskedFlags (EObjectFlags Mask=RF_AllFlags) const
 
UE_FORCEINLINE_HINT void Mark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT void UnMark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAnyMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAllMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT EObjectMark GetAllMarks () const
 
void MarkAsGarbage ()
 
void ClearGarbage ()
 
UE_FORCEINLINE_HINT void AddToRoot ()
 
UE_FORCEINLINE_HINT void RemoveFromRoot ()
 
UE_FORCEINLINE_HINT bool IsRooted () const
 
UE_FORCEINLINE_HINT int32 GetRefCount () const
 
bool ThisThreadAtomicallyClearedRFUnreachable ()
 
UE_FORCEINLINE_HINT bool IsUnreachable () const
 
UE_FORCEINLINE_HINT bool IsNative () const
 
void SetInternalFlags (EInternalObjectFlags FlagsToSet) const
 
UE_FORCEINLINE_HINT EInternalObjectFlags GetInternalFlags () const
 
UE_FORCEINLINE_HINT bool HasAnyInternalFlags (EInternalObjectFlags FlagsToCheck) const
 
void ClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
bool AtomicallyClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
COREUOBJECT_API FString GetFullName (const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (const UObject *StopOuter, FString &ResultString, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (FStringBuilderBase &ResultString, const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API FString GetPathName (const UObject *StopOuter=NULL) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FString &ResultString) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FStringBuilderBase &ResultString) const
 
virtual bool CanBeClusterRoot () const
 
virtual COREUOBJECT_API bool CanBeInCluster () const
 
virtual COREUOBJECT_API void CreateCluster ()
 
virtual void OnClusterMarkedAsPendingKill ()
 
COREUOBJECT_API void AddToCluster (UObjectBaseUtility *ClusterRootOrObjectFromCluster, bool bAddAsMutableObject=false)
 
COREUOBJECT_API FString GetFullGroupName (bool bStartWithOuter) const
 
UE_FORCEINLINE_HINT FString GetName () const
 
UE_FORCEINLINE_HINT void GetName (FString &ResultString) const
 
UE_FORCEINLINE_HINT void AppendName (FString &ResultString) const
 
COREUOBJECT_API bool IsPackageExternal () const
 
COREUOBJECT_API void DetachExternalPackage ()
 
COREUOBJECT_API void ReattachExternalPackage ()
 
COREUOBJECT_API UObjectGetOutermostObject () const
 
COREUOBJECT_API UPackageGetPackage () const
 
UE_INTERNAL virtual COREUOBJECT_API UE::Core::FVersePath GetVersePath () const
 
COREUOBJECT_API UPackageGetOutermost () const
 
COREUOBJECT_API bool MarkPackageDirty () const
 
COREUOBJECT_API bool IsTemplate (EObjectFlags TemplateTypes=RF_ArchetypeObject|RF_ClassDefaultObject) const
 
COREUOBJECT_API UObjectGetTypedOuter (UClass *Target) const
 
template<typename T >
T * GetTypedOuter () const
 
template<typename InterfaceClassType >
InterfaceClassTypeGetImplementingOuter () const
 
COREUOBJECT_API UObjectBaseUtilityGetImplementingOuterObject (const UClass *InInterfaceClass) const
 
COREUOBJECT_API bool IsIn (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsIn (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInOuter (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsInPackage (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInA (const UClass *SomeBaseClass) const
 
COREUOBJECT_API bool RootPackageHasAnyFlags (uint32 CheckFlagMask) const
 
template<typename OtherClassType >
bool IsA (OtherClassType SomeBase) const
 
template<class T >
bool IsA () const
 
COREUOBJECT_API const UClassFindNearestCommonBaseClass (const UClass *TestClass) const
 
COREUOBJECT_API voidGetInterfaceAddress (UClass *InterfaceClass)
 
COREUOBJECT_API voidGetNativeInterfaceAddress (UClass *InterfaceClass)
 
const voidGetNativeInterfaceAddress (UClass *InterfaceClass) const
 
COREUOBJECT_API bool IsTemplateForSubobjects (EObjectFlags TemplateTypes=RF_ClassDefaultObject|RF_DefaultSubObject|RF_InheritableComponentTemplate) const
 
COREUOBJECT_API bool IsDefaultSubobject () const
 
COREUOBJECT_API class FLinkerLoadGetLinker () const
 
COREUOBJECT_API int32 GetLinkerIndex () const
 
COREUOBJECT_API FPackageFileVersion GetLinkerUEVersion () const
 
int32 GetLinkerUE4Version () const
 
COREUOBJECT_API int32 GetLinkerLicenseeUEVersion () const
 
int32 GetLinkerLicenseeUE4Version () const
 
COREUOBJECT_API int32 GetLinkerCustomVersion (FGuid CustomVersionKey) const
 
UE_FORCEINLINE_HINT bool operator< (const UObjectBaseUtility &Other) const
 
TStatId GetStatID (bool bForDeferredUse=false) const
 
- Public Member Functions inherited from UObjectBase
COREUOBJECT_API UObjectBase (UClass *InClass, EObjectFlags InFlags, EInternalObjectFlags InInternalFlags, UObject *InOuter, FName InName, int32 InInternalIndex=-1, int32 InSerialNumber=0, FRemoteObjectId InRemoteId=FRemoteObjectId())
 
virtual COREUOBJECT_API ~UObjectBase ()
 
COREUOBJECT_API bool IsValidLowLevel () const
 
COREUOBJECT_API bool IsValidLowLevelFast (bool bRecursive=true) const
 
FORCEINLINE uint32 GetUniqueID () const
 
FORCEINLINE UClassGetClass () const
 
FORCEINLINE UObjectGetOuter () const
 
FORCEINLINE FName GetFName () const
 
virtual COREUOBJECT_API FName GetFNameForStatID () const
 
COREUOBJECT_API UPackageGetExternalPackage () const
 
COREUOBJECT_API void SetExternalPackage (UPackage *InPackage)
 
COREUOBJECT_API UPackageGetExternalPackageInternal () const
 
COREUOBJECT_API void MarkAsReachable () const
 
COREUOBJECT_API void AddRef () const
 
COREUOBJECT_API void ReleaseRef () const
 
FORCEINLINE EObjectFlags GetFlags () const
 
FORCENOINLINE void AtomicallySetFlags (EObjectFlags FlagsToAdd)
 
FORCENOINLINE void AtomicallyClearFlags (EObjectFlags FlagsToClear)
 

Static Public Member Functions

static ENGINE_API void SetGlobalRequiredFeatureLevel (ERHIFeatureLevel::Type FeatureLevel, bool bShouldCompile)
 
static ENGINE_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
static ENGINE_API void RecacheAllMaterialUniformExpressions (bool bRecreateUniformBuffer)
 
static ENGINE_API void SubmitRemainingJobsForWorld (UWorld *World, EMaterialShaderPrecompileMode CompileMode=EMaterialShaderPrecompileMode::Default)
 Submits shaders to be compiled for all the materials in the world.
 
static ENGINE_API void AssertDefaultMaterialsExist ()
 
static ENGINE_API void AssertDefaultMaterialsPostLoaded ()
 
static ENGINE_API void InitDefaultMaterials ()
 
static ENGINE_API bool IsDefaultMaterialInitialized ()
 
static ENGINE_API void PrecacheDefaultMaterialPSOs ()
 
static ENGINE_API uint32 GetFeatureLevelsToCompileForAllMaterials ()
 
template<typename FunctionType >
static void IterateOverActiveFeatureLevels (FunctionType InHandler)
 
static UEnumGetSamplerTypeEnum ()
 
static ENGINE_API void FilterOutPlatformShadingModels (EShaderPlatform Platform, FMaterialShadingModelField &ShadingModels)
 
- Static Public Member Functions inherited from UObject
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedServer (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedClient (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API bool CanCreateInCurrentContext (UObject *Template)
 
static COREUOBJECT_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
static COREUOBJECT_API const FNameSourceFileTagName ()
 
static COREUOBJECT_API UObjectGetArchetypeFromRequiredInfo (const UClass *Class, const UObject *Outer, FName Name, EObjectFlags ObjectFlags)
 
- Static Public Member Functions inherited from UObjectBaseUtility
static bool IsGarbageEliminationEnabled ()
 
static bool IsPendingKillEnabled ()
 
static void SetGarbageEliminationEnabled (bool bEnabled)
 
static COREUOBJECT_API void ReloadObjectsFromModifiedConfigSections (const class FConfigModificationTracker *ChangeTracker)
 
- Static Public Member Functions inherited from UObjectBase
static COREUOBJECT_API FString RemoveClassPrefix (const TCHAR *ClassName)
 
static void PrefetchClass (UObject *Object)
 
static void PrefetchOuter (UObject *Object)
 

Public Attributes

TObjectPtr< class USubsurfaceProfileSubsurfaceProfile
 
TArray< TObjectPtr< class USubsurfaceProfile > > SubsurfaceProfiles
 
TArray< TObjectPtr< class USpecularProfile > > SpecularProfiles
 
TObjectPtr< class UNeuralProfileNeuralProfile
 
FOnBaseMaterialIsSet OnBaseMaterialSetEvent
 
FRenderCommandFence ParentRefFence
 
uint8 bIncludedInBaseGame: 1
 
virtual class UMaterialGetMaterial () PURE_VIRTUAL(UMaterialInterface
 
virtual const class UMaterialGetMaterial () const PURE_VIRTUAL(UMaterialInterface
 
virtual const class UMaterialGetMaterial_Concurrent (TMicRecursionGuard RecursionGuard=TMicRecursionGuard()) const PURE_VIRTUAL(UMaterialInterface
 
virtual void GetMaterialInheritanceChain (FMaterialInheritanceChain &OutChain) const PURE_VIRTUAL(UMaterialInterface
 
virtual void GetDependencies (TSet< UMaterialInterface * > &Dependencies) PURE_VIRTUAL(UMaterialInterface
 
virtual class FMaterialRenderProxyGetRenderProxy () const PURE_VIRTUAL(UMaterialInterface
 
virtual UPhysicalMaterialGetPhysicalMaterial () const PURE_VIRTUAL(UMaterialInterface
 
virtual UPhysicalMaterialMaskGetPhysicalMaterialMask () const PURE_VIRTUAL(UMaterialInterface
 
virtual UPhysicalMaterialGetPhysicalMaterialFromMap (int32 Index) const PURE_VIRTUAL(UMaterialInterface
 
virtual void GetUsedTextures(TArray< UTexture * > &OutTextures, TOptional< EMaterialQualityLevel::Type > InSpecificQualityLevel=TOptional< EMaterialQualityLevel::Type >(), TOptional< EShaderPlatform > InSpecificShaderPlatform=TOptional< EShaderPlatform >()) const PURE_VIRTUAL(UMaterialInterface virtual ENGINE_API voi GetUsedTexturesAndIndices )(TArray< UTexture * > &OutTextures, TArray< TArray< int32 > > &OutIndices, EMaterialQualityLevel::Type QualityLevel, ERHIFeatureLevel::Type FeatureLevel) const final
 
virtual void OverrideTexture (const UTexture *InTextureToOverride, UTexture *OverrideTexture, ERHIFeatureLevel::Type InFeatureLevel) PURE_VIRTUAL(UMaterialInterface
 
virtual void SetNumericParameterDefault (EMaterialParameterType Type, const FHashedMaterialParameterInfo &ParameterInfo, const UE::Shader::FValue &Value, EShaderPlatform InShaderPlatform) PURE_VIRTUAL(UMaterialInterface
 
virtual void ClearNumericParameterDefault (EMaterialParameterType Type, const FHashedMaterialParameterInfo &ParameterInfo, EShaderPlatform InShaderPlatform) PURE_VIRTUAL(UMaterialInterface
 
virtual bool CheckMaterialUsage (const EMaterialUsage Usage) PURE_VIRTUAL(UMaterialInterface
 
virtual bool CheckMaterialUsage_Concurrent (const EMaterialUsage Usage) const PURE_VIRTUAL(UMaterialInterface
 
virtual bool GetMaterialLayers (FMaterialLayersFunctions &OutLayers, TMicRecursionGuard RecursionGuard=TMicRecursionGuard()) const PURE_VIRTUAL(UMaterialInterface
 
virtual UMaterialInterfaceGetNaniteOverride (TMicRecursionGuard RecursionGuard=TMicRecursionGuard()) const PURE_VIRTUAL(UMaterialInterface
 
virtual void SaveShaderStableKeysInner(const class ITargetPlatform *TP, const struct FStableShaderKeyAndValue &SaveKeyVal) PURE_VIRTUAL(UMaterialInterface ENGINE_API FMaterialParameterInf GetParameterInfo )(EMaterialParameterAssociation Association, FName ParameterName, UMaterialFunctionInterface *LayerFunction) const
 

Protected Member Functions

ENGINE_API void CacheTexturesSamplingInfo ()
 
virtual ENGINE_API bool CanCacheTexturesSamplingInfo () const
 
ENGINE_API uint32 GetFeatureLevelsToCompileForRendering () const
 
void UpdateMaterialRenderProxy (FMaterialRenderProxy &Proxy)
 
- Protected Member Functions inherited from UObject
virtual FString GetDetailedInfoInternal () const
 
COREUOBJECT_API bool CanCheckDefaultSubObjects (bool bForceCheck, bool &bResult) const
 
virtual COREUOBJECT_API bool CheckDefaultSubobjectsInternal () const
 
- Protected Member Functions inherited from UObjectBase
 UObjectBase ()
 
COREUOBJECT_API UObjectBase (EObjectFlags InFlags)
 
COREUOBJECT_API void LowLevelRename (FName NewName, UObject *NewOuter=NULL)
 
virtual void RegisterDependencies ()
 
COREUOBJECT_API void Register (class UClass *(*StaticClassFn)(), const TCHAR *PackageName, const TCHAR *Name)
 
COREUOBJECT_API void Register (const TCHAR *PackageName, const TCHAR *Name)
 
virtual COREUOBJECT_API void DeferredRegister (UClass *UClassStaticClass, const TCHAR *PackageName, const TCHAR *Name)
 
FORCEINLINE void SetFlagsTo (EObjectFlags NewFlags)
 

Protected Attributes

struct FLightmassMaterialInterfaceSettings LightmassSettings
 
TArray< FMaterialTextureInfoTextureStreamingData
 
TArray< TObjectPtr< UAssetUserData > > AssetUserData
 
TOptional< FMaterialCachedTexturesSamplingInfoCachedTexturesSamplingInfo
 
bool bLoadedCachedExpressionData = false
 
TUniquePtr< FMaterialCachedExpressionDataCachedExpressionData
 

Additional Inherited Members

- Public Types inherited from UObject
enum class  ENetFields_Private { NETFIELD_REP_START = 0 , NETFIELD_REP_END = -1 }
 
typedef UObject WithinClass
 

Constructor & Destructor Documentation

◆ UMaterialInterface() [1/2]

UMaterialInterface::UMaterialInterface ( )
default

◆ UMaterialInterface() [2/2]

UMaterialInterface::UMaterialInterface ( FVTableHelper Helper)

◆ ~UMaterialInterface()

UMaterialInterface::~UMaterialInterface ( )
virtual

Member Function Documentation

◆ AddAssetUserData()

void UMaterialInterface::AddAssetUserData ( UAssetUserData InUserData)
overridevirtual

Reimplemented from IInterface_AssetUserData.

◆ AddReferencedObjects()

void UMaterialInterface::AddReferencedObjects ( UObject InThis,
FReferenceCollector Collector 
)
static

◆ AnalyzeMaterialCompilationInCallback()

void UMaterialInterface::AnalyzeMaterialCompilationInCallback ( TFunctionRef< void(FMaterialCompiler *)>  InCompilationCallback,
FMaterialAnalysisResult OutResult 
)

Return insight on what (e.g. texture coordinates, vertex data, etc) is used in the shader graph compiled by a callback

◆ AnalyzeMaterialCustomOutput()

void UMaterialInterface::AnalyzeMaterialCustomOutput ( UMaterialExpressionCustomOutput InCustomOutput,
int32  InOutputIndex,
FMaterialAnalysisResult OutResult 
)

Return insight on what (e.g. texture coordinates, vertex data, etc) is used in the shader graph of a material custom output

◆ AnalyzeMaterialProperty()

void UMaterialInterface::AnalyzeMaterialProperty ( EMaterialProperty  InProperty,
int32 OutNumTextureCoordinates,
bool bOutRequiresVertexData 
)

Return number of used texture coordinates and whether or not the Vertex data is used in the shader graph

◆ AnalyzeMaterialPropertyEx()

void UMaterialInterface::AnalyzeMaterialPropertyEx ( EMaterialProperty  InProperty,
FMaterialAnalysisResult OutResult 
)

Return insight on what (e.g. texture coordinates, vertex data, etc) is used in the shader graph of a material property

◆ AnalyzeMaterialTranslationOutput() [1/2]

void UMaterialInterface::AnalyzeMaterialTranslationOutput ( FMaterialResource MaterialResource,
EShaderPlatform  ShaderPlatform,
bool  ValidationMode,
FMaterialAnalysisResult OutResult 
)

◆ AnalyzeMaterialTranslationOutput() [2/2]

void UMaterialInterface::AnalyzeMaterialTranslationOutput ( FMaterialResource MaterialResource,
EShaderPlatform  ShaderPlatform,
FMaterialAnalysisResult OutResult 
)

Return insight on errors or warnings generated during translation

◆ AssertDefaultMaterialsExist()

void UMaterialInterface::AssertDefaultMaterialsExist ( )
static

Asserts if any default material does not exist.

◆ AssertDefaultMaterialsPostLoaded()

void UMaterialInterface::AssertDefaultMaterialsPostLoaded ( )
static

Asserts if any default material has not been post-loaded.

◆ BeginDestroy()

void UMaterialInterface::BeginDestroy ( )
overridevirtual

Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.

Reimplemented from UObject.

Reimplemented in UMaterial, and UMaterialInstance.

◆ CacheShaders()

virtual void UMaterialInterface::CacheShaders ( EMaterialShaderPrecompileMode  CompileMode = EMaterialShaderPrecompileMode::Default)
inlinevirtual

Submits remaining shaders for recompilation.

This function will submit any remaining shaders to be compiled for the given material. By default these shader compilation jobs will be compiled in the background.

Parameters
CompileModeControls whether or not we block on the shader compile results.

Reimplemented in UMaterial, and UMaterialInstance.

◆ CacheTexturesSamplingInfo()

void UMaterialInterface::CacheTexturesSamplingInfo ( )
protected

◆ CalculateTexturesSamplingInfo()

FTextureSamplingInfo UMaterialInterface::CalculateTexturesSamplingInfo ( UTexture Texture)
virtual

Reimplemented in UMaterialInstance.

◆ CanCacheTexturesSamplingInfo()

bool UMaterialInterface::CanCacheTexturesSamplingInfo ( ) const
protectedvirtual

Reimplemented in UMaterialInstanceDynamic.

◆ CastsRayTracedShadows()

bool UMaterialInterface::CastsRayTracedShadows ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ DumpDebugInfo()

virtual void UMaterialInterface::DumpDebugInfo ( FOutputDevice OutputDevice) const
inlinevirtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ EnsureIsComplete()

void UMaterialInterface::EnsureIsComplete ( )

Checks to see if this material has all its shaders cached and if not, will perform a synchronous compilation of those.

Materials are not guaranteed to have all their shaders compiled after loading and using this function before a draw will ensure that the material will not render until it's ready to (and use a fallback material instead). This needs to be avoided in the common render path but can be useful in critical tools (e.g. landscape) that rely on the material and cannot afford a fallback material. In the editor, it will display a toast when waiting for the shaders to compile.

See also
CacheShaders

◆ FilterOutPlatformShadingModels()

void UMaterialInterface::FilterOutPlatformShadingModels ( EShaderPlatform  Platform,
FMaterialShadingModelField ShadingModels 
)
static

Filter out ShadingModels field to a shader platform settings

◆ FindTextureStreamingDataIndexRange()

bool UMaterialInterface::FindTextureStreamingDataIndexRange ( FName  TextureName,
int32 LowerIndex,
int32 HigherIndex 
) const

Find entries within TextureStreamingData that match the given name.

◆ FinishDestroy()

void UMaterialInterface::FinishDestroy ( )
overridevirtual

Called to finish destroying the object. After UObject::FinishDestroy is called, the object's memory should no longer be accessed.

Warning
Because properties are destroyed here, Super::FinishDestroy() should always be called at the end of your child class's FinishDestroy() method, rather than at the beginning.

Reimplemented from UObject.

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetAllDoubleVectorParameterInfo()

void UMaterialInterface::GetAllDoubleVectorParameterInfo ( TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const

◆ GetAllFontParameterInfo()

void UMaterialInterface::GetAllFontParameterInfo ( TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const

◆ GetAllParameterCollectionParameterInfo()

void UMaterialInterface::GetAllParameterCollectionParameterInfo ( TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const

◆ GetAllParameterInfoOfType()

void UMaterialInterface::GetAllParameterInfoOfType ( EMaterialParameterType  Type,
TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const
virtual

◆ GetAllParametersOfType()

void UMaterialInterface::GetAllParametersOfType ( EMaterialParameterType  Type,
TMap< FMaterialParameterInfo, FMaterialParameterMetadata > &  OutParameters 
) const
virtual

Reimplemented in UMaterialInstance.

◆ GetAllRuntimeVirtualTextureParameterInfo()

void UMaterialInterface::GetAllRuntimeVirtualTextureParameterInfo ( TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const

◆ GetAllScalarParameterInfo()

void UMaterialInterface::GetAllScalarParameterInfo ( TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const

◆ GetAllSparseVolumeTextureParameterInfo()

void UMaterialInterface::GetAllSparseVolumeTextureParameterInfo ( TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const

◆ GetAllTextureCollectionParameterInfo()

void UMaterialInterface::GetAllTextureCollectionParameterInfo ( TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const

◆ GetAllTextureParameterInfo()

void UMaterialInterface::GetAllTextureParameterInfo ( TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const

◆ GetAllVectorParameterInfo()

void UMaterialInterface::GetAllVectorParameterInfo ( TArray< FMaterialParameterInfo > &  OutParameterInfo,
TArray< FGuid > &  OutParameterIds 
) const

◆ GetAssetUserDataOfClass()

UAssetUserData * UMaterialInterface::GetAssetUserDataOfClass ( TSubclassOf< UAssetUserData InUserDataClass)
overridevirtual

Returns an instance of the provided AssetUserData class if it's contained in the target asset.

Parameters
InUserDataClassUAssetUserData sub class to get
Returns
The instance of the UAssetUserData class contained, or null if it doesn't exist

Reimplemented from IInterface_AssetUserData.

◆ GetBaseMaterial()

UMaterial * UMaterialInterface::GetBaseMaterial ( )

Walks up parent chain and finds the base Material that this is an instance of. Just calls the virtual GetMaterial()

◆ GetBlendableLocation()

EBlendableLocation UMaterialInterface::GetBlendableLocation ( const UMaterial Base) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetBlendablePriority()

int32 UMaterialInterface::GetBlendablePriority ( const UMaterial Base) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetBlendMode()

EBlendMode UMaterialInterface::GetBlendMode ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetCachedExpressionData()

const FMaterialCachedExpressionData & UMaterialInterface::GetCachedExpressionData ( TMicRecursionGuard  RecursionGuard = TMicRecursionGuard()) const
virtual

Reimplemented in UMaterialInstance.

◆ GetCachedTexturesSamplingInfo()

const FMaterialCachedTexturesSamplingInfo * UMaterialInterface::GetCachedTexturesSamplingInfo ( ) const
inline

◆ GetCastDynamicShadowAsMasked()

bool UMaterialInterface::GetCastDynamicShadowAsMasked ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetCastShadowAsMasked()

virtual bool UMaterialInterface::GetCastShadowAsMasked ( ) const
inlinevirtual
Returns
The bCastShadowAsMasked value for this material.

Reimplemented in UMaterialInstance.

◆ GetDiffuseBoost()

virtual float UMaterialInterface::GetDiffuseBoost ( ) const
inlinevirtual
Returns
The Diffuse boost value for this material.

Reimplemented in UMaterialInstance.

◆ GetDisplacementFadeRange()

FDisplacementFadeRange UMaterialInterface::GetDisplacementFadeRange ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetDisplacementScaling()

FDisplacementScaling UMaterialInterface::GetDisplacementScaling ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetDoubleVectorParameterDefaultValue()

bool UMaterialInterface::GetDoubleVectorParameterDefaultValue ( const FHashedMaterialParameterInfo ParameterInfo,
FVector4d OutValue 
) const

◆ GetDoubleVectorParameterValue()

bool UMaterialInterface::GetDoubleVectorParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
FVector4d OutValue,
bool  bOveriddenOnly = false 
) const

◆ GetEmissiveBoost()

virtual float UMaterialInterface::GetEmissiveBoost ( ) const
inlinevirtual
Returns
The Emissive boost value for this material.

Reimplemented in UMaterialInstance.

◆ GetExportResolutionScale()

virtual float UMaterialInterface::GetExportResolutionScale ( ) const
inlinevirtual
Returns
The ExportResolutionScale value for this material.

Reimplemented in UMaterialInstance.

◆ GetFeatureLevelsToCompileForAllMaterials()

uint32 UMaterialInterface::GetFeatureLevelsToCompileForAllMaterials ( )
static

Get bitfield indicating which feature levels should be compiled by default

◆ GetFeatureLevelsToCompileForRendering()

uint32 UMaterialInterface::GetFeatureLevelsToCompileForRendering ( ) const
protected

Returns a bitfield indicating which feature levels should be compiled for rendering. GMaxRHIFeatureLevel is always present

◆ GetFontParameterDefaultValue()

bool UMaterialInterface::GetFontParameterDefaultValue ( const FHashedMaterialParameterInfo ParameterInfo,
class UFont *&  OutFontValue,
int32 OutFontPage 
) const

◆ GetFontParameterValue()

bool UMaterialInterface::GetFontParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
class UFont *&  OutFontValue,
int32 OutFontPage,
bool  bOveriddenOnly = false 
) const

◆ GetHeight()

int32 UMaterialInterface::GetHeight ( ) const

◆ GetLightingGuid()

const FGuid & UMaterialInterface::GetLightingGuid ( ) const
inline

◆ GetLightingGuidChain()

void UMaterialInterface::GetLightingGuidChain ( bool  bIncludeTextures,
TArray< FGuid > &  OutGuids 
) const
virtual

Returns all the Guids related to this material. For material instances, this includes the parent hierarchy. Used for versioning as parent changes don't update the child instance Guids.

Parameters
bIncludeTexturesWhether to include the referenced texture Guids.
OutGuidsThe list of all resource guids affecting the precomputed lighting system and texture streamer.

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetMaterialResource() [1/4]

virtual const FMaterialResource * UMaterialInterface::GetMaterialResource ( ERHIFeatureLevel::Type  InFeatureLevel,
EMaterialQualityLevel::Type  QualityLevel = EMaterialQualityLevel::Num 
) const
inlinefinalvirtual

Get the static permutation resource if the instance has one

Returns
- the appropriate FMaterialResource if one exists, otherwise NULL

◆ GetMaterialResource() [2/4]

virtual FMaterialResource * UMaterialInterface::GetMaterialResource ( ERHIFeatureLevel::Type  InFeatureLevel,
EMaterialQualityLevel::Type  QualityLevel = EMaterialQualityLevel::Num 
)
inlinefinalvirtual

Get the static permutation resource if the instance has one

Returns
- the appropriate FMaterialResource if one exists, otherwise NULL

◆ GetMaterialResource() [3/4]

virtual FMaterialResource * UMaterialInterface::GetMaterialResource ( EShaderPlatform  InShaderPlatform,
EMaterialQualityLevel::Type  QualityLevel = EMaterialQualityLevel::Num 
)
inlinevirtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetMaterialResource() [4/4]

virtual const FMaterialResource * UMaterialInterface::GetMaterialResource ( EShaderPlatform  InShaderPlatform,
EMaterialQualityLevel::Type  QualityLevel = EMaterialQualityLevel::Num 
) const
inlinevirtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetMaxWorldPositionOffsetDisplacement()

float UMaterialInterface::GetMaxWorldPositionOffsetDisplacement ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetNaniteOverideMaterial()

UMaterialInterface * UMaterialInterface::GetNaniteOverideMaterial ( ) const
inline

Get the associated nanite override material.

◆ GetNeuralProfile_Internal()

UNeuralProfile * UMaterialInterface::GetNeuralProfile_Internal ( ) const
virtual

Reimplemented in UMaterial.

◆ GetOpacityMaskClipValue()

float UMaterialInterface::GetOpacityMaskClipValue ( ) const
virtual

Access to overridable properties of the base material.

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetOverrideCastShadowAsMasked()

bool UMaterialInterface::GetOverrideCastShadowAsMasked ( ) const
inline
Returns
The override bOverrideCastShadowAsMasked setting of the material.

◆ GetOverrideDiffuseBoost()

bool UMaterialInterface::GetOverrideDiffuseBoost ( ) const
inline
Returns
The override diffuse boost setting of the material.

◆ GetOverrideEmissiveBoost()

bool UMaterialInterface::GetOverrideEmissiveBoost ( ) const
inline
Returns
The override emissive boost setting of the material.

◆ GetOverrideExportResolutionScale()

bool UMaterialInterface::GetOverrideExportResolutionScale ( ) const
inline
Returns
The override export resolution scale setting of the material.

◆ GetParameterCollectionParameterDefaultValue()

bool UMaterialInterface::GetParameterCollectionParameterDefaultValue ( const FHashedMaterialParameterInfo ParameterInfo,
class UMaterialParameterCollection *&  OutValue 
) const

◆ GetParameterCollectionParameterValue()

bool UMaterialInterface::GetParameterCollectionParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
class UMaterialParameterCollection *&  OutValue,
bool  bOveriddenOnly = false 
) const
virtual

◆ GetParameterDefaultValue()

bool UMaterialInterface::GetParameterDefaultValue ( EMaterialParameterType  Type,
const FMemoryImageMaterialParameterInfo ParameterInfo,
FMaterialParameterMetadata OutValue 
) const

◆ GetParameterValue()

bool UMaterialInterface::GetParameterValue ( EMaterialParameterType  Type,
const FMemoryImageMaterialParameterInfo ParameterInfo,
FMaterialParameterMetadata OutValue,
EMaterialGetParameterValueFlags  Flags = EMaterialGetParameterValueFlags::Default 
) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetQualityLevelUsage()

void UMaterialInterface::GetQualityLevelUsage ( TArray< bool, TInlineAllocator< EMaterialQualityLevel::Num > > &  QualityLevelsUsed,
EShaderPlatform  ShaderPlatform,
bool  bCooking = false 
)

Determines whether each quality level has different nodes by inspecting the material's expressions. Or is required by the material quality setting overrides.

Parameters
QualityLevelsUsedoutput array of used quality levels.
ShaderPlatformThe shader platform to use for the quality settings.
bCookingDuring cooking, certain quality levels may be discarded

◆ GetQualityLevelUsageForCooking()

void UMaterialInterface::GetQualityLevelUsageForCooking ( TArray< bool, TInlineAllocator< EMaterialQualityLevel::Num > > &  QualityLevelsUsed,
EShaderPlatform  ShaderPlatform 
)
inline

◆ GetReferencedTextureCollections()

TConstArrayView< TObjectPtr< UTextureCollection > > UMaterialInterface::GetReferencedTextureCollections ( ) const

◆ GetReferencedTextures()

TArrayView< const TObjectPtr< UObject > > UMaterialInterface::GetReferencedTextures ( ) const

Get textures referenced by expressions, including nested functions.

◆ GetRefractionSettings()

bool UMaterialInterface::GetRefractionSettings ( float OutBiasValue) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetRelevance() [1/2]

FMaterialRelevance UMaterialInterface::GetRelevance ( ERHIFeatureLevel::Type  InFeatureLevel) const
Returns
The material's relevance.

◆ GetRelevance() [2/2]

FMaterialRelevance UMaterialInterface::GetRelevance ( EShaderPlatform  ShaderPlatform) const

◆ GetRelevance_Concurrent() [1/2]

FMaterialRelevance UMaterialInterface::GetRelevance_Concurrent ( ERHIFeatureLevel::Type  InFeatureLevel) const
Returns
The material's relevance, from concurrent render thread updates.

◆ GetRelevance_Concurrent() [2/2]

FMaterialRelevance UMaterialInterface::GetRelevance_Concurrent ( EShaderPlatform  ShaderPlatform) const

◆ GetRuntimeVirtualTextureParameterDefaultValue()

bool UMaterialInterface::GetRuntimeVirtualTextureParameterDefaultValue ( const FHashedMaterialParameterInfo ParameterInfo,
class URuntimeVirtualTexture *&  OutValue 
) const

◆ GetRuntimeVirtualTextureParameterValue()

bool UMaterialInterface::GetRuntimeVirtualTextureParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
class URuntimeVirtualTexture *&  OutValue,
bool  bOveriddenOnly = false 
) const

◆ GetSamplerTypeEnum()

static UEnum * UMaterialInterface::GetSamplerTypeEnum ( )
inlinestatic

Access the cached uenum type information for material sampler type

◆ GetScalarParameterDefaultValue()

bool UMaterialInterface::GetScalarParameterDefaultValue ( const FHashedMaterialParameterInfo ParameterInfo,
float OutValue 
) const

◆ GetScalarParameterValue()

bool UMaterialInterface::GetScalarParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
float OutValue,
bool  bOveriddenOnly = false 
) const

◆ GetShadingModels()

FMaterialShadingModelField UMaterialInterface::GetShadingModels ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetSparseVolumeTextureParameterDefaultValue()

bool UMaterialInterface::GetSparseVolumeTextureParameterDefaultValue ( const FHashedMaterialParameterInfo ParameterInfo,
class USparseVolumeTexture *&  OutValue 
) const

◆ GetSparseVolumeTextureParameterValue()

bool UMaterialInterface::GetSparseVolumeTextureParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
class USparseVolumeTexture *&  OutValue,
bool  bOveriddenOnly = false 
) const

◆ GetSpecularProfile_Internal()

USpecularProfile * UMaterialInterface::GetSpecularProfile_Internal ( uint32  Index) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetSpecularProfileOverride_Internal()

USpecularProfile * UMaterialInterface::GetSpecularProfileOverride_Internal ( ) const
virtual

Reimplemented in UMaterialInstance.

◆ GetSubstrateCompilationConfig()

const FSubstrateCompilationConfig & UMaterialInterface::GetSubstrateCompilationConfig ( ) const

◆ GetSubsurfaceProfile_Internal()

USubsurfaceProfile * UMaterialInterface::GetSubsurfaceProfile_Internal ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetSubsurfaceProfileOverride_Internal()

USubsurfaceProfile * UMaterialInterface::GetSubsurfaceProfileOverride_Internal ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetSubsurfaceProfileRoot_Internal() [1/2]

USubsurfaceProfile * UMaterialInterface::GetSubsurfaceProfileRoot_Internal ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetSubsurfaceProfileRoot_Internal() [2/2]

USubsurfaceProfile * UMaterialInterface::GetSubsurfaceProfileRoot_Internal ( uint32  Index) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ GetTextureCollectionParameterDefaultValue()

bool UMaterialInterface::GetTextureCollectionParameterDefaultValue ( const FHashedMaterialParameterInfo ParameterInfo,
class UTextureCollection *&  OutValue 
) const

◆ GetTextureCollectionParameterValue()

bool UMaterialInterface::GetTextureCollectionParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
class UTextureCollection *&  OutValue,
bool  bOveriddenOnly = false 
) const
virtual

Reimplemented in UMaterialInstance.

◆ GetTextureDensity()

float UMaterialInterface::GetTextureDensity ( FName  TextureName,
const struct FMeshUVChannelInfo UVChannelData 
) const
virtual

Returns the density of a texture in (LocalSpace Unit / Texture). Used for texture streaming metrics.

Parameters
TextureNameThe name of the texture to get the data for.
UVChannelDataThe mesh UV density in (LocalSpace Unit / UV Unit).
Returns
The density, or zero if no data is available for this texture.

Reimplemented in UMaterialInstance.

◆ GetTextureDensityWithCache()

float UMaterialInterface::GetTextureDensityWithCache ( const FTextureSamplingInfo TextureSamplingInfo,
const FMeshUVChannelInfo UVChannelData 
) const

◆ GetTextureParameterDefaultValue()

bool UMaterialInterface::GetTextureParameterDefaultValue ( const FHashedMaterialParameterInfo ParameterInfo,
class UTexture *&  OutValue 
) const

◆ GetTextureParameterValue()

bool UMaterialInterface::GetTextureParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
class UTexture *&  OutValue,
bool  bOveriddenOnly = false 
) const
virtual

Reimplemented in UMaterialInstance.

◆ GetTextureStreamingData() [1/2]

TArray< FMaterialTextureInfo > & UMaterialInterface::GetTextureStreamingData ( )
inline

◆ GetTextureStreamingData() [2/2]

const TArray< FMaterialTextureInfo > & UMaterialInterface::GetTextureStreamingData ( ) const
inline

Accessor to the data.

◆ GetUsedTextures()

virtual void UMaterialInterface::GetUsedTextures ( TArray< UTexture * > &  OutTextures,
EMaterialQualityLevel::Type  QualityLevel,
bool  bAllQualityLevels,
ERHIFeatureLevel::Type  FeatureLevel,
bool  bAllFeatureLevels 
) const
inlinefinalvirtual

◆ GetUsedTexturesAndIndices()

virtual ENGINE_API void UMaterialInterface::GetUsedTexturesAndIndices ( TArray< UTexture * > &  OutTextures,
TArray< TArray< int32 > > &  OutIndices,
EMaterialQualityLevel::Type  QualityLevel,
EShaderPlatform  InShaderPlatform 
) const
virtual

Reimplemented in UMaterialInstance, and UMaterial.

◆ GetUserSceneTextureOutput()

FName UMaterialInterface::GetUserSceneTextureOutput ( const UMaterial Base) const

◆ GetUserSceneTextureOverride()

bool UMaterialInterface::GetUserSceneTextureOverride ( FName InOutValue) const
virtual

Reimplemented in UMaterialInstance.

◆ GetVectorParameterDefaultValue()

bool UMaterialInterface::GetVectorParameterDefaultValue ( const FHashedMaterialParameterInfo ParameterInfo,
FLinearColor OutValue 
) const

◆ GetVectorParameterValue()

bool UMaterialInterface::GetVectorParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
FLinearColor OutValue,
bool  bOveriddenOnly = false 
) const

◆ GetWidth()

int32 UMaterialInterface::GetWidth ( ) const

◆ HasCustomizedUVs()

bool UMaterialInterface::HasCustomizedUVs ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ HasCustomPrimitiveData()

bool UMaterialInterface::HasCustomPrimitiveData ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ HasMeshPaintTexture()

bool UMaterialInterface::HasMeshPaintTexture ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ HasPixelAnimation()

bool UMaterialInterface::HasPixelAnimation ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ HasSubstrateRoughnessTracking()

bool UMaterialInterface::HasSubstrateRoughnessTracking ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ HasTextureStreamingData()

bool UMaterialInterface::HasTextureStreamingData ( ) const
inline

Returns whether there is any streaming data in the component.

◆ HasVertexInterpolator()

bool UMaterialInterface::HasVertexInterpolator ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ InitDefaultMaterials()

void UMaterialInterface::InitDefaultMaterials ( )
static

Initializes all default materials.

◆ IsCompatibleWithLumenCardSharing()

bool UMaterialInterface::IsCompatibleWithLumenCardSharing ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsCompiling()

bool UMaterialInterface::IsCompiling ( ) const
inline

◆ IsComplete()

virtual bool UMaterialInterface::IsComplete ( ) const
inlinevirtual

Checks to see if this material has all its shaders cached.

Materials are not guaranteed to have all their shaders compiled after loading. It can be useful to check for completeness in order to cache remaining shaders.

Returns
Whether or not all shaders for this material exist.
See also
CacheShaders
Note
This function will return true if the resources are not cache for this material yet.

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsDefaultMaterialInitialized()

bool UMaterialInterface::IsDefaultMaterialInitialized ( )
static

Check if default materials as been initialized.

◆ IsDeferredDecal()

bool UMaterialInterface::IsDeferredDecal ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsDependent()

virtual bool UMaterialInterface::IsDependent ( UMaterialInterface TestDependency)
inlinevirtual

Test this material for dependency on a given material.

Parameters
TestDependency- The material to test for dependency upon.
Returns
True if the material is dependent on TestDependency.

Reimplemented in UMaterialInstance.

◆ IsDependent_Concurrent()

virtual bool UMaterialInterface::IsDependent_Concurrent ( UMaterialInterface TestDependency,
TMicRecursionGuard  RecursionGuard = TMicRecursionGuard() 
)
inlinevirtual

Same as above, but can be called concurrently

Reimplemented in UMaterialInstance.

◆ IsDisplacementFadeEnabled()

bool UMaterialInterface::IsDisplacementFadeEnabled ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsDitheredLODTransition()

bool UMaterialInterface::IsDitheredLODTransition ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsMasked()

bool UMaterialInterface::IsMasked ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsPostProcessMaterial()

bool UMaterialInterface::IsPostProcessMaterial ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsPropertyActive()

bool UMaterialInterface::IsPropertyActive ( EMaterialProperty  InProperty) const
virtual

Checks to see if an input property should be active, based on the state of the material

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsReadyForFinishDestroy()

bool UMaterialInterface::IsReadyForFinishDestroy ( )
overridevirtual

Called to check if the object is ready for FinishDestroy. This is called after BeginDestroy to check the completion of the potentially asynchronous object cleanup.

Returns
True if the object's asynchronous cleanup has completed and it is ready for FinishDestroy to be called.

Reimplemented from UObject.

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsShadingModelFromMaterialExpression()

bool UMaterialInterface::IsShadingModelFromMaterialExpression ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsTessellationEnabled()

bool UMaterialInterface::IsTessellationEnabled ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsThinSurface()

bool UMaterialInterface::IsThinSurface ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsTranslucencyVelocityFromDepth()

bool UMaterialInterface::IsTranslucencyVelocityFromDepth ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsTranslucencyWritingCustomDepth()

bool UMaterialInterface::IsTranslucencyWritingCustomDepth ( ) const
virtual

Reimplemented in UMaterial.

◆ IsTranslucencyWritingFrontLayerTransparency()

bool UMaterialInterface::IsTranslucencyWritingFrontLayerTransparency ( ) const
virtual

Reimplemented in UMaterial.

◆ IsTranslucencyWritingVelocity()

bool UMaterialInterface::IsTranslucencyWritingVelocity ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsTwoSided()

bool UMaterialInterface::IsTwoSided ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsUIMaterial()

bool UMaterialInterface::IsUIMaterial ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ IsUsingMotionVectorWorldOffset_Concurrent()

bool UMaterialInterface::IsUsingMotionVectorWorldOffset_Concurrent ( EShaderPlatform  InShaderPlatform) const

◆ IsUsingNewHLSLGenerator()

bool UMaterialInterface::IsUsingNewHLSLGenerator ( ) const

◆ IsUsingNewTranslatorPrototype()

bool UMaterialInterface::IsUsingNewTranslatorPrototype ( ) const

◆ IsUsingTemporalResponsiveness_Concurrent()

bool UMaterialInterface::IsUsingTemporalResponsiveness_Concurrent ( EShaderPlatform  InShaderPlatform) const

◆ IsUsingWorldPositionOffset_Concurrent() [1/2]

bool UMaterialInterface::IsUsingWorldPositionOffset_Concurrent ( ERHIFeatureLevel::Type  InFeatureLevel) const
Returns
The material's relevance bUsesWorldPositionOffset, from concurrent render thread updates.

◆ IsUsingWorldPositionOffset_Concurrent() [2/2]

bool UMaterialInterface::IsUsingWorldPositionOffset_Concurrent ( EShaderPlatform  InShaderPlatform) const

◆ IterateOverActiveFeatureLevels()

template<typename FunctionType >
static void UMaterialInterface::IterateOverActiveFeatureLevels ( FunctionType  InHandler)
inlinestatic

Iterate over all feature levels currently marked as active

◆ LogMaterialsAndTextures()

virtual void UMaterialInterface::LogMaterialsAndTextures ( FOutputDevice Ar,
int32  Indent 
) const
inlinevirtual

Output to the log which materials and textures are used by this material.

Parameters
IndentNumber of tabs to put before the log.

Reimplemented in UMaterial, and UMaterialInstance.

◆ NumSpecularProfile_Internal()

uint32 UMaterialInterface::NumSpecularProfile_Internal ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ NumSubsurfaceProfileRoot_Internal()

uint32 UMaterialInterface::NumSubsurfaceProfileRoot_Internal ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ OnAssignedAsOverride()

void UMaterialInterface::OnAssignedAsOverride ( const UObject Owner)
virtual

Callback triggered when the material has been assigned as an override material

◆ OnRemovedAsOverride()

void UMaterialInterface::OnRemovedAsOverride ( const UObject Owner)
virtual

Callback triggered when the material has been removed as an override material

◆ OverrideBlendableSettings()

void UMaterialInterface::OverrideBlendableSettings ( class FSceneView View,
float  Weight 
) const
overridevirtual
Parameters
Weight0..1, excluding 0, 1=fully take the values from this object, crash if outside the valid range.

Implements IBlendableInterface.

◆ OverrideNumericParameterDefault()

virtual void UMaterialInterface::OverrideNumericParameterDefault ( EMaterialParameterType  Type,
const FHashedMaterialParameterInfo ParameterInfo,
const UE::Shader::FValue Value,
bool  bOverride,
ERHIFeatureLevel::Type  FeatureLevel 
)
inlinefinalvirtual

Overrides the default value of the given parameter (transient).
This is used to implement realtime previewing of parameter defaults. Handles updating dependent MI's and cached uniform expressions.

◆ PostCDOContruct()

void UMaterialInterface::PostCDOContruct ( )
overridevirtual

Called after the C++ constructor has run on the Class Default Object (CDO) for a class. This is an obscure routine used to deal with the recursion in the construction of the default materials

Reimplemented from UObject.

◆ PostDuplicate()

void UMaterialInterface::PostDuplicate ( bool  bDuplicateForPIE)
overridevirtual

Called after duplication & serialization and before PostLoad. Used to e.g. make sure UStaticMesh's UModel gets copied as well. Note: NOT called on components on actor duplication (alt-drag or copy-paste). Use PostEditImport as well to cover that case.

Reimplemented from UObject.

Reimplemented in UMaterial, and UMaterialInstance.

◆ PostInitProperties()

void UMaterialInterface::PostInitProperties ( )
overridevirtual

Called after the C++ constructor and after the properties have been initialized, including those loaded from config. This is called before any serialization or other setup has happened.

Reimplemented from UObject.

Reimplemented in UMaterial, and UMaterialInstance.

◆ PostLoad()

void UMaterialInterface::PostLoad ( )
overridevirtual

Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

Reimplemented from UObject.

Reimplemented in UMaterial, and UMaterialInstance.

◆ PrecacheDefaultMaterialPSOs()

void UMaterialInterface::PrecacheDefaultMaterialPSOs ( )
static

Precache PSOs for all default materials.

◆ PrecachePSOs() [1/5]

virtual FGraphEventArray UMaterialInterface::PrecachePSOs ( const FPSOPrecacheVertexFactoryDataList VertexFactoryDataList,
const struct FPSOPrecacheParams PreCacheParams,
EPSOPrecachePriority  Priority,
TArray< FMaterialPSOPrecacheRequestID > &  OutMaterialPSORequestIDs 
)
inlinevirtual

◆ PrecachePSOs() [2/5]

FGraphEventArray UMaterialInterface::PrecachePSOs ( const FVertexFactoryType VertexFactoryType,
const struct FPSOPrecacheParams PreCacheParams 
)
inline

Precache PSOs which can be used for this material for the given vertex factory type and material paramaters

◆ PrecachePSOs() [3/5]

FGraphEventArray UMaterialInterface::PrecachePSOs ( const TConstArrayView< const FVertexFactoryType * > &  VertexFactoryTypes,
const struct FPSOPrecacheParams PreCacheParams 
)
inline

◆ PrecachePSOs() [4/5]

FGraphEventArray UMaterialInterface::PrecachePSOs ( const TConstArrayView< const FVertexFactoryType * > &  VertexFactoryTypes,
const struct FPSOPrecacheParams PreCacheParams,
EPSOPrecachePriority  PSOPrecachePriority,
TArray< FMaterialPSOPrecacheRequestID > &  OutMaterialPSORequestIDs 
)
inline

◆ PrecachePSOs() [5/5]

FGraphEventArray UMaterialInterface::PrecachePSOs ( const TConstArrayView< const FVertexFactoryType * > &  VertexFactoryTypes,
const struct FPSOPrecacheParams PreCacheParams,
TArray< FMaterialPSOPrecacheRequestID > &  OutMaterialPSORequestIDs 
)
inline

◆ PreSave()

void UMaterialInterface::PreSave ( FObjectPreSaveContext  SaveContext)
overridevirtual

Presave function. Gets called once before an object gets serialized for saving. This function is necessary for save time computation as Serialize gets called three times per object from within SavePackage.

Warning
: Objects created from within PreSave will NOT have PreSave called on them!!!

Reimplemented from UObject.

Reimplemented in UMaterial.

◆ RecacheAllMaterialUniformExpressions()

void UMaterialInterface::RecacheAllMaterialUniformExpressions ( bool  bRecreateUniformBuffer)
static

Re-caches uniform expressions for all material interfaces Set bRecreateUniformBuffer to true if uniform buffer layout will change (e.g. FMaterial is being recompiled). In that case calling needs to use FMaterialUpdateContext to recreate the rendering state of primitives using this material.

Parameters
bRecreateUniformBuffer- true forces uniform buffer recreation.

◆ RecacheUniformExpressions()

virtual void UMaterialInterface::RecacheUniformExpressions ( bool  bRecreateUniformBuffer) const
inlinevirtual

Re-caches uniform expressions for this material interface
Set bRecreateUniformBuffer to true if uniform buffer layout will change (e.g. FMaterial is being recompiled). In that case calling needs to use FMaterialUpdateContext to recreate the rendering state of primitives using this material.

Parameters
bRecreateUniformBuffer- true forces uniform buffer recreation.

Reimplemented in UMaterial, and UMaterialInstance.

◆ RemoveUserDataOfClass()

void UMaterialInterface::RemoveUserDataOfClass ( TSubclassOf< UAssetUserData InUserDataClass)
overridevirtual

Reimplemented from IInterface_AssetUserData.

◆ Rename()

bool UMaterialInterface::Rename ( const TCHAR NewName = nullptr,
UObject NewOuter = nullptr,
ERenameFlags  Flags = REN_None 
)
overridevirtual

Rename this object to a unique name, or change its outer.

Remarks
A unique name will be generated if NewName is null and if either is true: NewOuter is null or NewOuter equals the current outer.
Parameters
NewNameThe new name of the object, if null then NewOuter should be set
NewOuterNew Outer this object will be placed within, if null it will use the current outer
FlagsFlags to specify what happens during the rename

Reimplemented from UObject.

◆ Serialize()

void UMaterialInterface::Serialize ( FArchive Ar)
overridevirtual

Handles reading, writing, and reference collecting using FArchive. This implementation handles all FProperty serialization, but can be overridden for native variables.

Reimplemented from UObject.

Reimplemented in UMaterial, and UMaterialInstance.

◆ SetCastShadowAsMasked()

void UMaterialInterface::SetCastShadowAsMasked ( bool  InCastShadowAsMasked)
inline
Parameters
InCastShadowAsMaskedThe CastShadowAsMasked value for this material.

◆ SetDiffuseBoost()

void UMaterialInterface::SetDiffuseBoost ( float  InDiffuseBoost)
inline
Parameters
InDiffuseBoostThe Diffuse boost value for this material.

◆ SetEmissiveBoost()

void UMaterialInterface::SetEmissiveBoost ( float  InEmissiveBoost)
inline
Parameters
InEmissiveBoostThe Emissive boost value for this material.

◆ SetExportResolutionScale()

void UMaterialInterface::SetExportResolutionScale ( float  InExportResolutionScale)
inline
Parameters
InExportResolutionScaleThe ExportResolutionScale value for this material.

◆ SetFeatureLevelToCompile()

void UMaterialInterface::SetFeatureLevelToCompile ( ERHIFeatureLevel::Type  FeatureLevel,
bool  bShouldCompile 
)

Set which feature levels this material instance should compile. GMaxRHIFeatureLevel is always compiled!

◆ SetForceMipLevelsToBeResident()

void UMaterialInterface::SetForceMipLevelsToBeResident ( bool  OverrideForceMiplevelsToBeResident,
bool  bForceMiplevelsToBeResidentValue,
float  ForceDuration,
int32  CinematicTextureGroups = 0,
bool  bFastResponse = false 
)
virtual

Force the streaming system to disregard the normal logic for the specified duration and instead always load all mip-levels for all textures used by this material.

Parameters
OverrideForceMiplevelsToBeResident- Whether to use (true) or ignore (false) the bForceMiplevelsToBeResidentValue parameter.
bForceMiplevelsToBeResidentValue- true forces all mips to stream in. false lets other factors decide what to do with the mips.
ForceDuration- Number of seconds to keep all mip-levels in memory, disregarding the normal priority logic. Negative value turns it off.
CinematicTextureGroups- Bitfield indicating texture groups that should use extra high-resolution mips
bFastResponse- USE WITH EXTREME CAUTION! Fast response textures incur sizable GT overhead and disturb streaming metric calculation. Avoid whenever possible.

◆ SetGlobalRequiredFeatureLevel()

void UMaterialInterface::SetGlobalRequiredFeatureLevel ( ERHIFeatureLevel::Type  FeatureLevel,
bool  bShouldCompile 
)
static

Set which feature levels all materials should compile to. GMaxRHIFeatureLevel is always compiled.

◆ SetLightingGuid()

void UMaterialInterface::SetLightingGuid ( )
inline

◆ SetOverrideCastShadowAsMasked()

void UMaterialInterface::SetOverrideCastShadowAsMasked ( bool  bInOverrideCastShadowAsMasked)
inline
Parameters
bInOverrideCastShadowAsMaskedThe override CastShadowAsMasked setting to set.

◆ SetOverrideDiffuseBoost()

void UMaterialInterface::SetOverrideDiffuseBoost ( bool  bInOverrideDiffuseBoost)
inline
Parameters
bInOverrideDiffuseBoostThe override diffuse boost setting of the parent material.

◆ SetOverrideEmissiveBoost()

void UMaterialInterface::SetOverrideEmissiveBoost ( bool  bInOverrideEmissiveBoost)
inline
Parameters
bInOverrideEmissiveBoostThe override emissive boost setting to set.

◆ SetOverrideExportResolutionScale()

void UMaterialInterface::SetOverrideExportResolutionScale ( bool  bInOverrideExportResolutionScale)
inline
Parameters
bInOverrideExportResolutionScaleThe override export resolution scale setting of the parent material.

◆ SetSubstrateCompilationConfig()

ENGINE_API void UMaterialInterface::SetSubstrateCompilationConfig ( FSubstrateCompilationConfig SubstrateCompilationConfig)

◆ SetTextureStreamingData()

void UMaterialInterface::SetTextureStreamingData ( const TArray< FMaterialTextureInfo > &  InTextureStreamingData)

Set new texture streaming data.

◆ ShouldAlwaysEvaluateWorldPositionOffset()

bool UMaterialInterface::ShouldAlwaysEvaluateWorldPositionOffset ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

◆ SortTextureStreamingData()

void UMaterialInterface::SortTextureStreamingData ( bool  bForceSort,
bool  bFinalSort 
)

Sort the texture streaming data by names to accelerate search. Only sorts if required.

Parameters
bForceSortIf true, force the operation even though the data might be already sorted.
bFinalSortIf true, the means there won't be any other sort after. This allows to remove null entries (platform dependent).

◆ SubmitRemainingJobsForWorld()

void UMaterialInterface::SubmitRemainingJobsForWorld ( UWorld World,
EMaterialShaderPrecompileMode  CompileMode = EMaterialShaderPrecompileMode::Default 
)
static

Submits shaders to be compiled for all the materials in the world.

This function will submit any remaining shaders to be compiled for all the materials in the passed in world. By default these shader compilation jobs will be compiled in the background so if you need the results immediately you can call FinishAllCompilation() to block on the results.

If the world is nullptr this will submit remaining shaders to be compiled for all the loaded materials.

GShaderCompilingManager->SubmitRemainingJobsForWorld(World);
FShaderCompilingManager * GShaderCompilingManager
Definition ShaderCompiler.cpp:617
ENGINE_API void FinishAllCompilation() override
Definition ShaderCompiler.cpp:2727
Parameters
WorldOnly compile shaders for materials that are used on primitives in this world.
CompileModeControls whether or not we block on the shader compile results.
Note
This will only submit shader compile jobs for missing shaders on each material. Calling this multiple times on the same world will result in a no-op.

◆ UpdateLightmassTextureTracking()

virtual bool UMaterialInterface::UpdateLightmassTextureTracking ( )
inlinevirtual

Check if the textures have changed since the last time the material was serialized for Lightmass... Update the lists while in here. NOTE: This will mark the package dirty if they have changed.

Returns
bool true if the textures have changed. false if they have not.

Reimplemented in UMaterial, and UMaterialInstance.

◆ UpdateMaterialRenderProxy()

void UMaterialInterface::UpdateMaterialRenderProxy ( FMaterialRenderProxy Proxy)
protected

◆ UseAnyStreamingTexture()

bool UMaterialInterface::UseAnyStreamingTexture ( ) const

Return whether this material refer to any streaming textures.

◆ WritesToRuntimeVirtualTexture()

bool UMaterialInterface::WritesToRuntimeVirtualTexture ( ) const
virtual

Reimplemented in UMaterial, and UMaterialInstance.

Member Data Documentation

◆ AssetUserData

TArray<TObjectPtr<UAssetUserData> > UMaterialInterface::AssetUserData
protected

Array of user data stored with the asset

◆ bIncludedInBaseGame

uint8 UMaterialInterface::bIncludedInBaseGame

Whether this material interface is included in the base game (and not in a DLC)

◆ bLoadedCachedExpressionData

bool UMaterialInterface::bLoadedCachedExpressionData = false
protected

Set if CachedExpressionData was loaded from disk, should typically be true when running with cooked data, and false in the editor

◆ CachedExpressionData

TUniquePtr<FMaterialCachedExpressionData> UMaterialInterface::CachedExpressionData
protected

Cached data generated from the material's expressions, may be nullptr UMaterials should always have cached data UMaterialInstances will have cached data if they have overriden material layers (possibly for other reasons in the future)

◆ CachedTexturesSamplingInfo

TOptional<FMaterialCachedTexturesSamplingInfo> UMaterialInterface::CachedTexturesSamplingInfo
protected

Pre-cached texture sampling information used for texture streaming (calculated on load)

◆ CheckMaterialUsage

virtual bool UMaterialInterface::CheckMaterialUsage(const EMaterialUsage Usage) PURE_VIRTUAL(UMaterialInterface

Checks if the material can be used with the given usage flag.
If the flag isn't set in the editor, it will be set and the material will be recompiled with it.

Parameters
Usage- The usage flag to check
Returns
bool - true if the material can be used for rendering with the given type.

◆ CheckMaterialUsage_Concurrent

virtual bool UMaterialInterface::CheckMaterialUsage_Concurrent(const EMaterialUsage Usage) const PURE_VIRTUAL(UMaterialInterface

Same as above but is valid to call from any thread. In the editor, this might spin and stall for a shader compile

◆ ClearNumericParameterDefault

virtual void UMaterialInterface::ClearNumericParameterDefault(EMaterialParameterType Type, const FHashedMaterialParameterInfo &ParameterInfo, EShaderPlatform InShaderPlatform) PURE_VIRTUAL(UMaterialInterface

◆ GetDependencies

virtual void UMaterialInterface::GetDependencies(TSet< UMaterialInterface * > &Dependencies) PURE_VIRTUAL(UMaterialInterface

Get this material dependencies.

Parameters
Dependencies- List of materials this interface depends on.

◆ GetMaterial [1/2]

virtual const class UMaterial* UMaterialInterface::GetMaterial() const PURE_VIRTUAL(UMaterialInterface

Get the material which we are instancing. Walks up parent chain and finds the base Material that this is an instance of.

◆ GetMaterial [2/2]

virtual class UMaterial* UMaterialInterface::GetMaterial() PURE_VIRTUAL(UMaterialInterface

Get the material which we are instancing. Walks up parent chain and finds the base Material that this is an instance of.

◆ GetMaterial_Concurrent

virtual const class UMaterial* UMaterialInterface::GetMaterial_Concurrent(TMicRecursionGuard RecursionGuard=TMicRecursionGuard()) const PURE_VIRTUAL(UMaterialInterface

Same as above, but can be called concurrently

◆ GetMaterialInheritanceChain

virtual void UMaterialInterface::GetMaterialInheritanceChain(FMaterialInheritanceChain &OutChain) const PURE_VIRTUAL(UMaterialInterface

◆ GetMaterialLayers

Get the material layers stack

Returns
- material layers stack, or nullptr if material has no layers

◆ GetNaniteOverride

virtual UMaterialInterface* UMaterialInterface::GetNaniteOverride(TMicRecursionGuard RecursionGuard=TMicRecursionGuard()) const PURE_VIRTUAL(UMaterialInterface

Get the associated nanite override material

Returns
- nanite override, if none was set returns null as a signal to use this material instead

◆ GetParameterInfo

FMaterialParameterInfo UMaterialInterface::GetParameterInfo

◆ GetPhysicalMaterial

virtual UPhysicalMaterial* UMaterialInterface::GetPhysicalMaterial() const PURE_VIRTUAL(UMaterialInterface

Return a pointer to the physical material used by this material instance.

Returns
The physical material.

◆ GetPhysicalMaterialFromMap

virtual UPhysicalMaterial* UMaterialInterface::GetPhysicalMaterialFromMap(int32 Index) const PURE_VIRTUAL(UMaterialInterface

Return a pointer to the physical material from mask map at given index.

Returns
The physical material.

◆ GetPhysicalMaterialMask

virtual UPhysicalMaterialMask* UMaterialInterface::GetPhysicalMaterialMask() const PURE_VIRTUAL(UMaterialInterface

Return a pointer to the physical material mask used by this material instance.

Returns
The physical material.

◆ GetRenderProxy

virtual class FMaterialRenderProxy* UMaterialInterface::GetRenderProxy() const PURE_VIRTUAL(UMaterialInterface

Return a pointer to the FMaterialRenderProxy used for rendering.

Parameters
Selectedspecify true to return an alternate material used for rendering this material when part of a selection
Note
: only valid in the editor!
Returns
The resource to use for rendering this material instance.

◆ GetUsedTexturesAndIndices

void UMaterialInterface::GetUsedTexturesAndIndices
final

Return the textures used to render this material.

Parameters
OutTexturesOutput of used textures for this material.
InSpecificQualityLevelIf set, only search textures for the given Quality Level, otherwise search for all Quality levels.
InSpecificShaderPlatformIf set, only search textures for the given Shader Platform, otherwise search for all Shader Platforms. Return the textures used to render this material and the material indices bound to each. Because material indices can change for each shader, this is limited to a single platform and quality level. An empty array in OutIndices means the index is undefined.

◆ LightmassSettings

struct FLightmassMaterialInterfaceSettings UMaterialInterface::LightmassSettings
protected

The Lightmass settings for this object.

◆ NeuralProfile

TObjectPtr<class UNeuralProfile> UMaterialInterface::NeuralProfile

Neural network profile. For internal usage, not editable/visible

◆ OnBaseMaterialSetEvent

FOnBaseMaterialIsSet UMaterialInterface::OnBaseMaterialSetEvent

Event triggered when the base material is set

◆ OverrideTexture

Override a specific texture (transient)

Parameters
InTextureToOverrideThe texture to override
OverrideTextureThe new texture to use

◆ ParentRefFence

FRenderCommandFence UMaterialInterface::ParentRefFence

A fence to track when the primitive is no longer used as a parent

◆ SetNumericParameterDefault

◆ SpecularProfiles

TArray<TObjectPtr<class USpecularProfile> > UMaterialInterface::SpecularProfiles

Specular Profile. For internal usage, not editable/visible

◆ SubsurfaceProfile

TObjectPtr<class USubsurfaceProfile> UMaterialInterface::SubsurfaceProfile

SubsurfaceProfile, for Screen Space Subsurface Scattering..

◆ SubsurfaceProfiles

TArray<TObjectPtr<class USubsurfaceProfile> > UMaterialInterface::SubsurfaceProfiles

Subsurface Profiles. For internal usage, not editable/visible. For Substrate, there can be many in a material similarly to SpecularProfile (even though only one can be specified per pixel due to the post processing)

◆ TextureStreamingData

TArray<FMaterialTextureInfo> UMaterialInterface::TextureStreamingData
protected

Data used by the texture streaming to know how each texture is sampled by the material. Sorted by names for quick access.


The documentation for this class was generated from the following files: