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

#include <MaterialInstanceSupport.h>

+ Inheritance diagram for FMaterialInstanceResource:

Public Member Functions

 FMaterialInstanceResource (UMaterialInstance *InOwner)
 
void GameThread_Destroy ()
 
virtual FString GetFriendlyName () const override
 
virtual const FMaterialGetMaterialNoFallback (ERHIFeatureLevel::Type FeatureLevel) const override
 
virtual const FMaterialRenderProxyGetFallback (ERHIFeatureLevel::Type InFeatureLevel) const override
 
virtual UMaterialInterfaceGetMaterialInterface () const override
 
virtual bool GetParameterValue (EMaterialParameterType Type, const FHashedMaterialParameterInfo &ParameterInfo, FMaterialParameterValue &OutValue, const FMaterialRenderContext &Context) const override
 
virtual bool GetUserSceneTextureOverride (FName &InOutValue) const override
 
virtual EBlendableLocation GetBlendableLocation (const FMaterial *Base) const override
 
virtual int32 GetBlendablePriority (const FMaterial *Base) const override
 
void GameThread_SetParent (UMaterialInterface *ParentMaterialInterface)
 
void GameThread_UpdateCachedData (const FMaterialInstanceCachedData &CachedData)
 
void InitMIParameters (struct FMaterialInstanceParameterSet &ParameterSet)
 
void RenderThread_ClearParameters ()
 
template<typename ValueType >
void RenderThread_UpdateParameter (const FHashedMaterialParameterInfo &ParameterInfo, const ValueType &Value)
 
template<typename ValueType >
bool RenderThread_GetParameterValue (const FHashedMaterialParameterInfo &ParameterInfo, FMaterialParameterValue &OutValue) const
 
template<>
FORCEINLINE THashedMaterialParameterMap< bool > & GetValueArray ()
 
template<>
FORCEINLINE THashedMaterialParameterMap< float > & GetValueArray ()
 
template<>
FORCEINLINE THashedMaterialParameterMap< FLinearColor > & GetValueArray ()
 
template<>
FORCEINLINE THashedMaterialParameterMap< FVector4d > & GetValueArray ()
 
template<>
FORCEINLINE THashedMaterialParameterMap< const UTexture * > & GetValueArray ()
 
template<>
FORCEINLINE THashedMaterialParameterMap< const UTextureCollection * > & GetValueArray ()
 
template<>
FORCEINLINE THashedMaterialParameterMap< const URuntimeVirtualTexture * > & GetValueArray ()
 
template<>
FORCEINLINE THashedMaterialParameterMap< const USparseVolumeTexture * > & GetValueArray ()
 
template<>
FORCEINLINE THashedMaterialParameterMap< const UMaterialParameterCollection * > & GetValueArray ()
 
template<>
FORCEINLINE const THashedMaterialParameterMap< bool > & GetValueArray () const
 
template<>
FORCEINLINE const THashedMaterialParameterMap< float > & GetValueArray () const
 
template<>
FORCEINLINE const THashedMaterialParameterMap< FLinearColor > & GetValueArray () const
 
template<>
FORCEINLINE const THashedMaterialParameterMap< FVector4d > & GetValueArray () const
 
template<>
FORCEINLINE const THashedMaterialParameterMap< const UTexture * > & GetValueArray () const
 
template<>
FORCEINLINE const THashedMaterialParameterMap< const UTextureCollection * > & GetValueArray () const
 
template<>
FORCEINLINE const THashedMaterialParameterMap< const URuntimeVirtualTexture * > & GetValueArray () const
 
template<>
FORCEINLINE const THashedMaterialParameterMap< const USparseVolumeTexture * > & GetValueArray () const
 
template<>
FORCEINLINE const THashedMaterialParameterMap< const UMaterialParameterCollection * > & GetValueArray () const
 
- Public Member Functions inherited from FMaterialRenderProxy
ENGINE_API FMaterialRenderProxy (FString InMaterialName)
 
virtual ENGINE_API ~FMaterialRenderProxy ()
 
ENGINE_API void EvaluateUniformExpressions (FRHICommandListBase &RHICmdList, FUniformExpressionCache &OutUniformExpressionCache, const FMaterialRenderContext &Context, FUniformExpressionCacheAsyncUpdater *Updater=nullptr) const
 
ENGINE_API void CacheUniformExpressions (FRHICommandListBase &RHICmdList, bool bRecreateUniformBuffer)
 
ENGINE_API void CancelCacheUniformExpressions ()
 
ENGINE_API void CacheUniformExpressions_GameThread (bool bRecreateUniformBuffer)
 
ENGINE_API void InvalidateUniformExpressionCache (bool bRecreateUniformBuffer)
 
ENGINE_API void UpdateUniformExpressionCacheIfNeeded (ERHIFeatureLevel::Type InFeatureLevel) const
 
ENGINE_API const FMaterialUpdateUniformExpressionCacheIfNeeded (FRHICommandListBase &RHICmdList, ERHIFeatureLevel::Type InFeatureLevel) const
 
ENGINE_API const FMaterialGetMaterialWithFallback (ERHIFeatureLevel::Type InFeatureLevel, const FMaterialRenderProxy *&OutFallbackMaterialRenderProxy) const
 
ENGINE_API const FMaterialGetIncompleteMaterialWithFallback (ERHIFeatureLevel::Type InFeatureLevel) const
 
ENGINE_API bool GetVectorValue (const FHashedMaterialParameterInfo &ParameterInfo, FLinearColor *OutValue, const FMaterialRenderContext &Context) const
 
ENGINE_API bool GetScalarValue (const FHashedMaterialParameterInfo &ParameterInfo, float *OutValue, const FMaterialRenderContext &Context) const
 
ENGINE_API bool GetTextureValue (const FHashedMaterialParameterInfo &ParameterInfo, const UTexture **OutValue, const FMaterialRenderContext &Context) const
 
ENGINE_API bool GetTextureValue (const FHashedMaterialParameterInfo &ParameterInfo, const URuntimeVirtualTexture **OutValue, const FMaterialRenderContext &Context) const
 
ENGINE_API bool GetTextureValue (const FHashedMaterialParameterInfo &ParameterInfo, const USparseVolumeTexture **OutValue, const FMaterialRenderContext &Context) const
 
ENGINE_API bool GetTextureCollectionValue (const FHashedMaterialParameterInfo &ParameterInfo, const UTextureCollection **OutValue, const FMaterialRenderContext &Context) const
 
ENGINE_API bool GetParameterCollectionValue (const FHashedMaterialParameterInfo &ParameterInfo, const UMaterialParameterCollection **OutValue, const FMaterialRenderContext &Context) const
 
ENGINE_API bool GetParameterShaderValue (EMaterialParameterType Type, const FHashedMaterialParameterInfo &ParameterInfo, UE::Shader::FValue &OutValue, const FMaterialRenderContext &Context) const
 
ENGINE_API FName GetUserSceneTextureOutput (const FMaterial *Base) const
 
bool IsDeleted () const
 
void MarkForGarbageCollection ()
 
bool IsMarkedForGarbageCollection () const
 
void MarkTransient ()
 
virtual ENGINE_API void InitRHI (FRHICommandListBase &RHICmdList) override
 
virtual ENGINE_API void ReleaseRHI () override
 
virtual ENGINE_API void ReleaseResource () override
 
void SetSubsurfaceProfileRT (const USubsurfaceProfile *Ptr)
 
const USubsurfaceProfileGetSubsurfaceProfileRT () const
 
void ClearSubsurfaceProfileRT ()
 
void AddSubsurfaceProfileRT (const USubsurfaceProfile *Ptr)
 
const USubsurfaceProfileGetSubsurfaceProfileRT (uint32 Index) const
 
const uint32 NumSubsurfaceProfileRT () const
 
void AddSpecularProfileRT (const USpecularProfile *Ptr)
 
const USpecularProfileGetSpecularProfileRT (uint32 Index) const
 
const uint32 NumSpecularProfileRT () const
 
void SetSpecularProfileOverrideRT (const USpecularProfile *Ptr)
 
const USpecularProfileGetSpecularProfileOverrideRT () const
 
void SetNeuralProfileRT (const UNeuralProfile *Ptr)
 
const UNeuralProfileGetNeuralProfileRT () const
 
int32 GetExpressionCacheSerialNumber () const
 
const FString & GetMaterialName () const
 
- Public Member Functions inherited from FRenderResource
RENDERCORE_API FRenderResource ()
 
RENDERCORE_API FRenderResource (ERHIFeatureLevel::Type InFeatureLevel)
 
RENDERCORE_API FRenderResource (const FRenderResource &)
 
RENDERCORE_API FRenderResource (FRenderResource &&)
 
RENDERCORE_API FRenderResourceoperator= (const FRenderResource &Other)
 
RENDERCORE_API FRenderResourceoperator= (FRenderResource &&Other)
 
virtual RENDERCORE_API ~FRenderResource ()
 
virtual RENDERCORE_API void InitResource (FRHICommandListBase &RHICmdList)
 
RENDERCORE_API void UpdateRHI (FRHICommandListBase &RHICmdList)
 
bool IsInitialized () const
 
int32 GetListIndex () const
 
EInitPhase GetInitPhase () const
 
void SetOwnerName (FName InOwnerName)
 
FName GetOwnerName () const
 
void SetResourceName (FName InResourceName)
 
FName GetResourceName () const
 

Additional Inherited Members

- Public Types inherited from FRenderResource
enum class  EInitPhase : uint8 { Pre , Default , MAX }
 
- Static Public Member Functions inherited from FMaterialRenderProxy
static ENGINE_API void UpdateDeferredCachedUniformExpressions ()
 
static ENGINE_API void UpdateDeferredCachedUniformExpressions (FRHICommandListBase &RHICmdList, UE::Tasks::FTask *TaskIfAsync=nullptr)
 
static ENGINE_API bool HasDeferredUniformExpressionCacheRequests ()
 
- Static Public Member Functions inherited from FRenderResource
static RENDERCORE_API void ReleaseRHIForAllResources ()
 
static RENDERCORE_API void InitPreRHIResources ()
 
static RENDERCORE_API void ChangeFeatureLevel (ERHIFeatureLevel::Type NewFeatureLevel)
 
static RENDERCORE_API FName SetScopeName (FName Name)
 
- Public Attributes inherited from FMaterialRenderProxy
FUniformExpressionCacheContainer UniformExpressionCache
 
FImmutableSamplerState ImmutableSamplerState
 
- Public Attributes inherited from FRenderResource
ERenderResourceState ResourceState = ERenderResourceState::Default
 
- Protected Member Functions inherited from FRenderResource
void SetFeatureLevel (const FStaticFeatureLevel InFeatureLevel)
 
const FStaticFeatureLevel GetFeatureLevel () const
 
bool HasValidFeatureLevel () const
 
template<typename T >
FBufferRHIRef CreateRHIBuffer (FRHICommandListBase &RHICmdList, T &InOutResourceObject, uint32 ResourceCount, EBufferUsageFlags InBufferUsageFlags, const TCHAR *InDebugName)
 
void SetInitPhase (EInitPhase InInitPhase)
 
- Protected Member Functions inherited from FNoncopyable
 FNoncopyable ()
 
 ~FNoncopyable ()
 
- Static Protected Member Functions inherited from FRenderResource
static RENDERCORE_API FRHICommandListBaseGetImmediateCommandList ()
 

Detailed Description

The resource used to render a UMaterialInstance.

Constructor & Destructor Documentation

◆ FMaterialInstanceResource()

FMaterialInstanceResource::FMaterialInstanceResource ( UMaterialInstance InOwner)

Initialization constructor.

Member Function Documentation

◆ GameThread_Destroy()

void FMaterialInstanceResource::GameThread_Destroy ( )

Called from the game thread to destroy the material instance on the rendering thread.

◆ GameThread_SetParent()

void FMaterialInstanceResource::GameThread_SetParent ( UMaterialInterface ParentMaterialInterface)

◆ GameThread_UpdateCachedData()

void FMaterialInstanceResource::GameThread_UpdateCachedData ( const FMaterialInstanceCachedData CachedData)

◆ GetBlendableLocation()

EBlendableLocation FMaterialInstanceResource::GetBlendableLocation ( const FMaterial Base) const
overridevirtual

Reimplemented from FMaterialRenderProxy.

◆ GetBlendablePriority()

int32 FMaterialInstanceResource::GetBlendablePriority ( const FMaterial Base) const
overridevirtual

Reimplemented from FMaterialRenderProxy.

◆ GetFallback()

const FMaterialRenderProxy * FMaterialInstanceResource::GetFallback ( ERHIFeatureLevel::Type  InFeatureLevel) const
overridevirtual

Implements FMaterialRenderProxy.

◆ GetFriendlyName()

virtual FString FMaterialInstanceResource::GetFriendlyName ( ) const
inlineoverridevirtual
Returns
The resource's friendly name. Typically a UObject name.

Reimplemented from FRenderResource.

◆ GetMaterialInterface()

UMaterialInterface * FMaterialInstanceResource::GetMaterialInterface ( ) const
overridevirtual

Reimplemented from FMaterialRenderProxy.

◆ GetMaterialNoFallback()

const FMaterial * FMaterialInstanceResource::GetMaterialNoFallback ( ERHIFeatureLevel::Type  FeatureLevel) const
overridevirtual

Get the FMaterial that should be used for rendering, but might not be in a valid state to actually use. Can return NULL.

Implements FMaterialRenderProxy.

◆ GetParameterValue()

bool FMaterialInstanceResource::GetParameterValue ( EMaterialParameterType  Type,
const FHashedMaterialParameterInfo ParameterInfo,
FMaterialParameterValue OutValue,
const FMaterialRenderContext Context 
) const
overridevirtual

Implements FMaterialRenderProxy.

◆ GetUserSceneTextureOverride()

bool FMaterialInstanceResource::GetUserSceneTextureOverride ( FName InOutValue) const
overridevirtual

Reimplemented from FMaterialRenderProxy.

◆ GetValueArray() [1/18]

template<>
FORCEINLINE THashedMaterialParameterMap< bool > & FMaterialInstanceResource::GetValueArray ( )

◆ GetValueArray() [2/18]

template<>
FORCEINLINE THashedMaterialParameterMap< float > & FMaterialInstanceResource::GetValueArray ( )

◆ GetValueArray() [3/18]

template<>
FORCEINLINE THashedMaterialParameterMap< FLinearColor > & FMaterialInstanceResource::GetValueArray ( )

◆ GetValueArray() [4/18]

template<>
FORCEINLINE THashedMaterialParameterMap< FVector4d > & FMaterialInstanceResource::GetValueArray ( )

◆ GetValueArray() [5/18]

template<>
FORCEINLINE THashedMaterialParameterMap< const UTexture * > & FMaterialInstanceResource::GetValueArray ( )

◆ GetValueArray() [6/18]

template<>
FORCEINLINE THashedMaterialParameterMap< const UTextureCollection * > & FMaterialInstanceResource::GetValueArray ( )

◆ GetValueArray() [7/18]

template<>
FORCEINLINE THashedMaterialParameterMap< const URuntimeVirtualTexture * > & FMaterialInstanceResource::GetValueArray ( )

◆ GetValueArray() [8/18]

template<>
FORCEINLINE THashedMaterialParameterMap< const USparseVolumeTexture * > & FMaterialInstanceResource::GetValueArray ( )

◆ GetValueArray() [9/18]

template<>
FORCEINLINE THashedMaterialParameterMap< const UMaterialParameterCollection * > & FMaterialInstanceResource::GetValueArray ( )

◆ GetValueArray() [10/18]

template<>
FORCEINLINE const THashedMaterialParameterMap< bool > & FMaterialInstanceResource::GetValueArray ( ) const

◆ GetValueArray() [11/18]

template<>
FORCEINLINE const THashedMaterialParameterMap< float > & FMaterialInstanceResource::GetValueArray ( ) const

◆ GetValueArray() [12/18]

template<>
FORCEINLINE const THashedMaterialParameterMap< FLinearColor > & FMaterialInstanceResource::GetValueArray ( ) const

◆ GetValueArray() [13/18]

template<>
FORCEINLINE const THashedMaterialParameterMap< FVector4d > & FMaterialInstanceResource::GetValueArray ( ) const

◆ GetValueArray() [14/18]

template<>
FORCEINLINE const THashedMaterialParameterMap< const UTexture * > & FMaterialInstanceResource::GetValueArray ( ) const

◆ GetValueArray() [15/18]

template<>
FORCEINLINE const THashedMaterialParameterMap< const UTextureCollection * > & FMaterialInstanceResource::GetValueArray ( ) const

◆ GetValueArray() [16/18]

template<>
FORCEINLINE const THashedMaterialParameterMap< const URuntimeVirtualTexture * > & FMaterialInstanceResource::GetValueArray ( ) const

◆ GetValueArray() [17/18]

template<>
FORCEINLINE const THashedMaterialParameterMap< const USparseVolumeTexture * > & FMaterialInstanceResource::GetValueArray ( ) const

◆ GetValueArray() [18/18]

template<>
FORCEINLINE const THashedMaterialParameterMap< const UMaterialParameterCollection * > & FMaterialInstanceResource::GetValueArray ( ) const

◆ InitMIParameters()

void FMaterialInstanceResource::InitMIParameters ( struct FMaterialInstanceParameterSet ParameterSet)

◆ RenderThread_ClearParameters()

void FMaterialInstanceResource::RenderThread_ClearParameters ( )
inline

Clears all parameters set on this material instance.

◆ RenderThread_GetParameterValue()

template<typename ValueType >
bool FMaterialInstanceResource::RenderThread_GetParameterValue ( const FHashedMaterialParameterInfo ParameterInfo,
FMaterialParameterValue OutValue 
) const
inline

Retrieves a parameter by name.

◆ RenderThread_UpdateParameter()

template<typename ValueType >
void FMaterialInstanceResource::RenderThread_UpdateParameter ( const FHashedMaterialParameterInfo ParameterInfo,
const ValueType &  Value 
)
inline

Updates a named parameter on the render thread.


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