UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMaterial Class Referenceabstract

#include <MaterialShared.h>

+ Inheritance diagram for FMaterial:

Classes

struct  FBuildShaderMapIdArgs
 

Public Member Functions

uint32 AddRef () const
 
uint32 Release () const
 
uint32 GetRefCount () const
 
 FMaterial ()
 
virtual ENGINE_API ~FMaterial ()
 
virtual ENGINE_API bool PrepareDestroy_GameThread ()
 
virtual ENGINE_API void PrepareDestroy_RenderThread ()
 
ENGINE_API bool CacheShaders (EShaderPlatform Platform, EMaterialShaderPrecompileMode PrecompileMode=EMaterialShaderPrecompileMode::Default, const ITargetPlatform *TargetPlatform=nullptr)
 
ENGINE_API bool CacheShaders (EMaterialShaderPrecompileMode PrecompileMode=EMaterialShaderPrecompileMode::Default, const ITargetPlatform *TargetPlatform=nullptr)
 
ENGINE_API bool CacheShaders (const FMaterialShaderMapId &ShaderMapId, EShaderPlatform Platform, EMaterialShaderPrecompileMode PrecompileMode=EMaterialShaderPrecompileMode::Default, const ITargetPlatform *TargetPlatform=nullptr)
 
ENGINE_API bool CacheShaders (const FMaterialShaderMapId &ShaderMapId, EMaterialShaderPrecompileMode PrecompileMode=EMaterialShaderPrecompileMode::Default, const ITargetPlatform *TargetPlatform=nullptr)
 
ENGINE_API FGraphEventArray CollectPSOs (ERHIFeatureLevel::Type InFeatureLevel, const FPSOPrecacheVertexFactoryDataList &VertexFactoryDataList, const FPSOPrecacheParams &PreCacheParams, EPSOPrecachePriority Priority, TArray< FMaterialPSOPrecacheRequestID > &OutMaterialPSORequestIDs)
 
ENGINE_API FGraphEventArray CollectPSOs (const FPSOPrecacheVertexFactoryDataList &VertexFactoryDataList, const FPSOPrecacheParams &PreCacheParams, EPSOPrecachePriority Priority, TArray< FMaterialPSOPrecacheRequestID > &OutMaterialPSORequestIDs)
 
ENGINE_API TArray< FMaterialPSOPrecacheRequestIDGetMaterialPSOPrecacheRequestIDs () const
 
void ClearPrecachedPSORequestIDs ()
 
virtual ENGINE_API bool ShouldCache (EShaderPlatform Platform, const FShaderType *ShaderType, const FVertexFactoryType *VertexFactoryType) const final
 
virtual ENGINE_API bool ShouldCache (const FShaderType *ShaderType, const FVertexFactoryType *VertexFactoryType) const
 
ENGINE_API bool ShouldCachePipeline (EShaderPlatform Platform, const FShaderPipelineType *PipelineType, const FVertexFactoryType *VertexFactoryType) const
 
ENGINE_API bool ShouldCachePipeline (const FShaderPipelineType *PipelineType, const FVertexFactoryType *VertexFactoryType) const
 
virtual ENGINE_API void LegacySerialize (FArchive &Ar)
 
void SerializeInlineShaderMap (FArchive &Ar, const FName &SerializingAsset=NAME_None)
 
void RegisterInlineShaderMap (bool bLoadingCooked)
 
void ReleaseShaderMap ()
 
void DiscardShaderMap ()
 
virtual void GetShaderMapId (EShaderPlatform Platform, const ITargetPlatform *TargetPlatform, FMaterialShaderMapId &OutId) const
 
void BuildShaderMapId (FMaterialShaderMapId &OutId, EShaderPlatform Platform, const ITargetPlatform *TargetPlatform, EMaterialKeyInclude IncludeFlags=EMaterialKeyInclude::All) const
 
void BuildShaderMapId (FMaterialShaderMapId &OutId, const ITargetPlatform *TargetPlatform, EMaterialKeyInclude IncludeFlags=EMaterialKeyInclude::All) const
 
virtual EMaterialDomain GetMaterialDomain () const =0
 
virtual bool IsTwoSided () const =0
 
virtual bool IsThinSurface () const =0
 
virtual bool IsDitheredLODTransition () const =0
 
virtual bool IsTranslucencyWritingCustomDepth () const
 
virtual bool IsTranslucencyWritingVelocity () const
 
virtual bool IsTranslucencyVelocityFromDepth () const
 
virtual bool IsTranslucencyWritingFrontLayerTransparency () const
 
virtual bool IsTangentSpaceNormal () const
 
virtual bool ShouldGenerateSphericalParticleNormals () const
 
virtual bool ShouldDisableDepthTest () const
 
virtual bool ShouldWriteOnlyAlpha () const
 
virtual bool ShouldEnableResponsiveAA () const
 
virtual bool ShouldDoSSR () const
 
virtual bool ShouldDoContactShadows () const
 
virtual bool HasPixelAnimation () const
 
virtual bool UsesTemporalResponsiveness () const
 
virtual bool UsesMotionVectorWorldOffset () const
 
virtual bool IsLightFunction () const =0
 
virtual bool IsUsedWithEditorCompositing () const
 
virtual bool IsDeferredDecal () const =0
 
virtual bool IsUIMaterial () const =0
 
virtual bool IsVolumetricPrimitive () const =0
 
virtual bool IsWireframe () const =0
 
virtual bool IsPostProcessMaterial () const
 
virtual bool IsSpecialEngineMaterial () const =0
 
virtual bool IsUsedWithSkeletalMesh () const
 
virtual bool IsUsedWithLandscape () const
 
virtual bool IsUsedWithParticleSystem () const
 
virtual bool IsUsedWithParticleSprites () const
 
virtual bool IsUsedWithBeamTrails () const
 
virtual bool IsUsedWithMeshParticles () const
 
virtual bool IsUsedWithNiagaraSprites () const
 
virtual bool IsUsedWithNiagaraRibbons () const
 
virtual bool IsUsedWithNiagaraMeshParticles () const
 
virtual bool IsUsedWithStaticLighting () const
 
virtual bool IsUsedWithMorphTargets () const
 
virtual bool IsUsedWithSplineMeshes () const
 
virtual bool IsUsedWithInstancedStaticMeshes () const
 
virtual bool IsUsedWithGeometryCollections () const
 
virtual bool IsUsedWithAPEXCloth () const
 
virtual bool IsUsedWithNanite () const
 
virtual bool IsUsedWithVoxels () const
 
virtual bool IsUsedWithVolumetricCloud () const
 
virtual bool IsUsedWithHeterogeneousVolumes () const
 
virtual bool SamplesMaterialCache () const
 
virtual bool HasMaterialCacheOutput () const
 
virtual bool IsUsedWithUI () const
 
virtual bool IsUsedWithGeometryCache () const
 
virtual bool IsUsedWithWater () const
 
virtual bool IsUsedWithHairStrands () const
 
virtual bool IsUsedWithLidarPointCloud () const
 
virtual bool IsUsedWithVirtualHeightfieldMesh () const
 
virtual bool IsUsedWithNeuralNetworks () const
 
virtual bool IsUsedWithStaticMesh () const
 
virtual bool IsFullyRough () const
 
virtual bool GetForceCompatibleWithLightFunctionAtlas () const
 
virtual bool UseNormalCurvatureToRoughness () const
 
virtual enum EMaterialFloatPrecisionMode GetMaterialFloatPrecisionMode () const
 
virtual bool IsUsingAlphaToCoverage () const
 
virtual bool IsUsingPreintegratedGFForSimpleIBL () const
 
virtual bool IsUsingHQForwardReflections () const
 
virtual bool GetForwardBlendsSkyLightCubemaps () const
 
virtual bool IsUsingPlanarForwardReflections () const
 
virtual bool IsNonmetal () const
 
virtual bool UseLmDirectionality () const
 
virtual bool IsMasked () const =0
 
virtual bool IsDitherMasked () const
 
virtual bool AllowNegativeEmissiveColor () const
 
virtual enum EBlendMode GetBlendMode () const =0
 
virtual ENGINE_API enum ERefractionMode GetRefractionMode () const
 
virtual bool GetRootNodeOverridesDefaultRefraction () const =0
 
virtual FMaterialShadingModelField GetShadingModels () const =0
 
virtual bool IsShadingModelFromMaterialExpression () const =0
 
virtual enum ETranslucencyLightingMode GetTranslucencyLightingMode () const
 
virtual float GetOpacityMaskClipValue () const =0
 
virtual bool GetCastDynamicShadowAsMasked () const =0
 
virtual bool IsDistorted () const
 
virtual ERefractionCoverageMode GetRefractionCoverageMode () const
 
virtual EPixelDepthOffsetMode GetPixelDepthOffsetMode () const
 
virtual float GetTranslucencyDirectionalLightingIntensity () const
 
virtual float GetTranslucentShadowDensityScale () const
 
virtual float GetTranslucentSelfShadowDensityScale () const
 
virtual float GetTranslucentSelfShadowSecondDensityScale () const
 
virtual float GetTranslucentSelfShadowSecondOpacity () const
 
virtual float GetTranslucentBackscatteringExponent () const
 
virtual FDisplacementScaling GetDisplacementScaling () const
 
virtual bool IsDisplacementFadeEnabled () const
 
virtual FDisplacementFadeRange GetDisplacementFadeRange () const
 
virtual bool IsTranslucencyAfterDOFEnabled () const
 
virtual bool IsTranslucencyAfterMotionBlurEnabled () const
 
virtual bool IsDualBlendingEnabled (EShaderPlatform Platform) const final
 
virtual bool IsDualBlendingEnabled () const
 
virtual bool IsMobileSeparateTranslucencyEnabled () const
 
virtual FLinearColor GetTranslucentMultipleScatteringExtinction () const
 
virtual float GetTranslucentShadowStartOffset () const
 
virtual float GetRefractionDepthBiasValue () const
 
virtual bool ShouldApplyFogging () const
 
virtual bool ShouldApplyCloudFogging () const
 
virtual bool ShouldAlwaysEvaluateWorldPositionOffset () const
 
virtual bool ComputeFogPerPixel () const
 
virtual bool IsSky () const
 
virtual bool HasSubstrateRoughnessTracking () const
 
virtual bool AllowTranslucentLocalLightShadow () const
 
virtual float GetTranslucentLocalLightShadowQuality () const
 
virtual float GetTranslucentDirectionalLightShadowQuality () const
 
virtual FString GetFriendlyName () const =0
 
virtual FString GetAssetName () const
 
FString GetUniqueAssetName (EShaderPlatform Platform, const FMaterialShaderMapId &ShaderMapId) const
 
FString GetUniqueAssetName (const FMaterialShaderMapId &ShaderMapId) const
 
virtual bool HasVertexPositionOffsetConnected () const
 
virtual bool HasPixelDepthOffsetConnected () const
 
virtual uint32 GetMaterialDecalResponse () const
 
virtual bool HasBaseColorConnected () const
 
virtual bool HasNormalConnected () const
 
virtual bool HasRoughnessConnected () const
 
virtual bool HasSpecularConnected () const
 
virtual bool HasMetallicConnected () const
 
virtual bool HasEmissiveColorConnected () const
 
virtual bool HasAnisotropyConnected () const
 
virtual bool HasAmbientOcclusionConnected () const
 
virtual bool HasMaterialPropertyConnected (EMaterialProperty In) const
 
virtual bool HasDisplacementConnected () const
 
virtual bool IsSubstrateMaterial () const
 
virtual bool RequiresSynchronousCompilation () const
 
virtual bool IsDefaultMaterial () const
 
virtual int32 GetNumCustomizedUVs () const
 
virtual int32 GetNumMaterialCacheTags () const
 
virtual int32 GetBlendableLocation () const
 
virtual int32 GetBlendablePriority () const
 
virtual bool GetBlendableOutputAlpha () const
 
virtual bool GetDisablePreExposureScale () const
 
virtual bool IsStencilTestEnabled () const
 
virtual uint32 GetStencilRefValue () const
 
virtual uint32 GetStencilCompare () const
 
virtual bool HasPerInstanceCustomData () const
 
virtual bool HasPerInstanceRandom () const
 
virtual bool HasVertexInterpolator () const
 
virtual bool HasRuntimeVirtualTextureOutput () const
 
virtual bool HasFirstPersonOutput () const
 
virtual bool CastsRayTracedShadows () const
 
virtual bool IsTessellationEnabled () const
 
virtual bool HasRenderTracePhysicalMaterialOutputs () const
 
virtual uint16 GetPreshaderGap () const
 
virtual EMaterialShadingRate GetShadingRate () const
 
virtual int32 GetNeuralProfileId () const
 
virtual bool IsVariableRateShadingAllowed () const
 
virtual void GetShaderTags (TArray< FName > &OutShaderTags) const
 
virtual EMaterialTranslateValidationFlags GetMaterialTranslateValidationFlags () const
 
virtual bool IsPersistent () const =0
 
virtual UMaterialInterfaceGetMaterialInterface () const
 
FName GetOwnerFName () const
 
virtual bool IsPreview () const
 
ENGINE_API const FMaterialCachedExpressionDataGetCachedExpressionData () const
 
ENGINE_API bool IsRequiredComplete () const
 
ENGINE_API bool HasValidGameThreadShaderMap () const
 
bool ShouldCastDynamicShadows () const
 
EMaterialQualityLevel::Type GetQualityLevel () const
 
ENGINE_API const FUniformExpressionSetGetUniformExpressions () const
 
ENGINE_API TArrayView< const FMaterialTextureParameterInfoGetUniformTextureExpressions (EMaterialTextureParameterType Type) const
 
ENGINE_API TConstArrayView< FMaterialTextureCollectionParameterInfoGetUniformTextureCollectionExpressions () const
 
ENGINE_API TArrayView< const FMaterialNumericParameterInfoGetUniformNumericParameterExpressions () const
 
TArrayView< const FMaterialTextureParameterInfoGetUniform2DTextureExpressions () const
 
TArrayView< const FMaterialTextureParameterInfoGetUniformCubeTextureExpressions () const
 
TArrayView< const FMaterialTextureParameterInfoGetUniform2DArrayTextureExpressions () const
 
TArrayView< const FMaterialTextureParameterInfoGetUniformVolumeTextureExpressions () const
 
TArrayView< const FMaterialTextureParameterInfoGetUniformVirtualTextureExpressions () const
 
TArrayView< const FMaterialTextureParameterInfoGetUniformSparseVolumeTextureExpressions () const
 
const FStaticFeatureLevel GetFeatureLevel () const
 
const EShaderPlatform GetShaderPlatform () const
 
bool GetUsesDynamicParameter () const
 
ENGINE_API bool RequiresSceneColorCopy_GameThread () const
 
ENGINE_API bool RequiresSceneColorCopy_RenderThread () const
 
ENGINE_API bool NeedsSceneTextures () const
 
ENGINE_API bool NeedsGBuffer () const
 
ENGINE_API bool UsesEyeAdaptation () const
 
ENGINE_API bool UsesGlobalDistanceField_GameThread () const
 
ENGINE_API bool MaterialUsesWorldPositionOffset_RenderThread () const
 
ENGINE_API bool MaterialUsesWorldPositionOffset_GameThread () const
 
ENGINE_API bool MaterialUsesDisplacement_RenderThread () const
 
ENGINE_API bool MaterialUsesDisplacement_GameThread () const
 
ENGINE_API bool MaterialUsesPixelDepthOffset_RenderThread () const
 
ENGINE_API bool MaterialUsesPixelDepthOffset_GameThread () const
 
ENGINE_API bool MaterialUsesTemporalResponsiveness_RenderThread () const
 
ENGINE_API bool MaterialUsesTemporalResponsiveness_GameThread () const
 
ENGINE_API bool MaterialUsesMotionVectorWorldOffset_RenderThread () const
 
ENGINE_API bool MaterialUsesMotionVectorWorldOffset_GameThread () const
 
ENGINE_API bool MaterialModifiesMeshPosition_RenderThread () const
 
ENGINE_API bool MaterialModifiesMeshPosition_GameThread () const
 
ENGINE_API bool MaterialUsesDistanceCullFade_GameThread () const
 
ENGINE_API bool MaterialUsesSceneDepthLookup_RenderThread () const
 
ENGINE_API bool MaterialUsesSceneDepthLookup_GameThread () const
 
ENGINE_API uint8 GetCustomDepthStencilUsageMask_GameThread () const
 
ENGINE_API bool MaterialMayModifyMeshPosition () const
 
ENGINE_API uint8 GetRuntimeVirtualTextureOutputAttibuteMask_GameThread () const
 
ENGINE_API uint8 GetRuntimeVirtualTextureOutputAttibuteMask_RenderThread () const
 
ENGINE_API bool MaterialUsesAnisotropy_GameThread () const
 
ENGINE_API bool MaterialUsesAnisotropy_RenderThread () const
 
ENGINE_API bool MaterialIsLightFunctionAtlasCompatible_GameThread () const
 
ENGINE_API bool MaterialIsLightFunctionAtlasCompatible_RenderThread () const
 
ENGINE_API uint8 MaterialGetSubstrateMaterialType_GameThread () const
 
ENGINE_API uint8 MaterialGetSubstrateMaterialType_RenderThread () const
 
ENGINE_API uint8 MaterialGetSubstrateClosureCount_GameThread () const
 
ENGINE_API uint8 MaterialGetSubstrateClosureCount_RenderThread () const
 
ENGINE_API uint8 MaterialGetSubstrateUintPerPixel_GameThread () const
 
ENGINE_API uint8 MaterialGetSubstrateUintPerPixel_RenderThread () const
 
ENGINE_API ESubstrateTileType MaterialGetSubstrateTileType_GameThread () const
 
ENGINE_API ESubstrateTileType MaterialGetSubstrateTileType_RenderThread () const
 
ENGINE_API ESubstrateBsdfFeature MaterialGetSubstrateMaterialBsdfFeatures_GameThread () const
 
ENGINE_API ESubstrateBsdfFeature MaterialGetSubstrateMaterialBsdfFeatures_RenderThread () const
 
class FMaterialShaderMapGetGameThreadShaderMap () const
 
ENGINE_API void SetGameThreadShaderMap (FMaterialShaderMap *InMaterialShaderMap)
 
ENGINE_API void SetInlineShaderMap (FMaterialShaderMap *InMaterialShaderMap)
 
ENGINE_API void UpdateInlineShaderMapIsComplete ()
 
ENGINE_API class FMaterialShaderMapGetRenderingThreadShaderMap () const
 
bool IsGameThreadShaderMapComplete () const
 
bool IsRenderingThreadShaderMapComplete () const
 
ENGINE_API void SetRenderingThreadShaderMap (TRefCountPtr< FMaterialShaderMap > &InMaterialShaderMap)
 
virtual ENGINE_API void AddReferencedObjects (FReferenceCollector &Collector)
 
virtual TArrayView< const TObjectPtr< UObject > > GetReferencedTextures () const =0
 
virtual TConstArrayView< TObjectPtr< UTextureCollection > > GetReferencedTextureCollections () const =0
 
template<typename ShaderType >
TShaderRef< ShaderType > GetShader (FVertexFactoryType *VertexFactoryType, const typename ShaderType::FPermutationDomain &PermutationVector, bool bFatalIfMissing=true) const
 
template<typename ShaderType >
TShaderRef< ShaderType > GetShader (FVertexFactoryType *VertexFactoryType, int32 PermutationId=0, bool bFatalIfMissing=true) const
 
ENGINE_API FShaderPipelineRef GetShaderPipeline (class FShaderPipelineType *ShaderPipelineType, FVertexFactoryType *VertexFactoryType, bool bFatalIfNotFound=true) const
 
ENGINE_API bool TryGetShaders (const FMaterialShaderTypes &InTypes, const FVertexFactoryType *InVertexFactoryType, FMaterialShaders &OutShaders) const
 
ENGINE_API bool HasShaders (const FMaterialShaderTypes &InTypes, const FVertexFactoryType *InVertexFactoryType) const
 
ENGINE_API bool ShouldCacheShaders (const EShaderPlatform ShaderPlatform, const FMaterialShaderTypes &InTypes, const FVertexFactoryType *InVertexFactoryType) const
 
ENGINE_API bool ShouldCacheShaders (const FMaterialShaderTypes &InTypes, const FVertexFactoryType *InVertexFactoryType) const
 
virtual FString GetMaterialUsageDescription () const =0
 
virtual bool GetAllowDevelopmentShaderCompile () const
 
virtual EMaterialShaderMapUsage::Type GetMaterialShaderMapUsage () const
 
ENGINE_API bool GetMaterialExpressionSource (FString &OutSource)
 
ENGINE_API void GetPreshaderStats (uint32 &TotalParameters, uint32 &TotalOps) const
 
ENGINE_API bool WritesEveryPixel (bool bShadowPass=false) const
 
ENGINE_API bool WritesEveryPixel (bool bShadowPass, bool bVFTypeSupportsNullPixelShader) const
 
virtual void SetupExtraCompilationSettings (const EShaderPlatform Platform, FExtraShaderCompilerSettings &Settings) const final
 
virtual void SetupExtraCompilationSettings (FExtraShaderCompilerSettings &Settings) const
 
void DumpDebugInfo (FOutputDevice &OutputDevice)
 
void SaveShaderStableKeys (EShaderPlatform TargetShaderPlatform, struct FStableShaderKeyAndValue &SaveKeyVal)
 
void SaveShaderStableKeys (struct FStableShaderKeyAndValue &SaveKeyVal)
 
virtual FString GetFullPath () const
 
void SetOwnerBeginDestroyed ()
 
bool IsOwnerBeginDestroyed () const
 
virtual void FeedbackMaterialLayersInstancedGraphFromCompilation (const FMaterialLayersFunctions *InLayers)
 
virtual const FMaterialLayersFunctionsGetMaterialLayers () const
 

Static Public Member Functions

static ENGINE_API void SetShaderMapsOnMaterialResources (const TMap< TRefCountPtr< FMaterial >, TRefCountPtr< FMaterialShaderMap > > &MaterialsToUpdate)
 
static ENGINE_API void DeferredDelete (FMaterial *Material)
 
static ENGINE_API void DeleteMaterialsOnRenderThread (TArray< TRefCountPtr< FMaterial > > &MaterialsRenderThread)
 
template<typename TMaterial >
static void DeferredDeleteArray (TArray< TRefCountPtr< TMaterial > > &Materials)
 
template<typename TMaterial >
static void DeferredDeleteArray (TArray< TMaterial * > &Materials)
 

Protected Member Functions

virtual ENGINE_API void BuildShaderMapIdOverride (const FBuildShaderMapIdArgs &Args) const
 
const FMaterialShaderMapGetShaderMapToUse () const
 
virtual int32 CompilePropertyAndSetMaterialProperty (EMaterialProperty Property, class FMaterialCompiler *Compiler, EShaderFrequency OverrideShaderFrequency=SF_NumFrequencies, bool bUsePreviousFrameTime=false) const =0
 
virtual int32 CompileCustomAttribute (const FGuid &AttributeID, class FMaterialCompiler *Compiler) const
 
virtual FString GetBaseMaterialPathName () const
 
virtual FString GetDebugName () const
 
void SetQualityLevelProperties (ERHIFeatureLevel::Type InFeatureLevel, EMaterialQualityLevel::Type InQualityLevel=EMaterialQualityLevel::Num)
 
void SetQualityLevelProperties (EShaderPlatform InShaderPlatform, EMaterialQualityLevel::Type InQualityLevel=EMaterialQualityLevel::Num)
 
virtual EMaterialShaderMapUsage::Type GetShaderMapUsage () const
 
virtual FGuid GetMaterialId () const =0
 
ENGINE_API void GetDependentShaderAndVFTypes (EShaderPlatform Platform, const FPlatformTypeLayoutParameters &LayoutParams, TArray< FShaderType * > &OutShaderTypes, TArray< const FShaderPipelineType * > &OutShaderPipelineTypes, TArray< FVertexFactoryType * > &OutVFTypes) const
 
ENGINE_API void GetDependentShaderAndVFTypes (const FPlatformTypeLayoutParameters &LayoutParams, TArray< FShaderType * > &OutShaderTypes, TArray< const FShaderPipelineType * > &OutShaderPipelineTypes, TArray< FVertexFactoryType * > &OutVFTypes) const
 
bool GetLoadedCookedShaderMapId () const
 
void SetAllowPixelDepthOffset (bool bEnable)
 
bool AllowPixelDepthOffset () const
 

Friends

class FMaterialShaderMap
 
class FShaderCompilingManager
 
class FHLSLMaterialTranslator
 
class FMaterialHLSLErrorHandler
 
class UE::Cook::FODSCClientData
 

Detailed Description

FMaterial serves 3 intertwined purposes: Represents a material to the material compilation process, and provides hooks for extensibility (CompileProperty, etc) Represents a material to the renderer, with functions to access material properties Stores a cached shader map, and other transient output from a compile, which is necessary with async shader compiling (when a material finishes async compilation, the shader map and compile errors need to be stored somewhere)

Constructor & Destructor Documentation

◆ FMaterial()

FMaterial::FMaterial ( )
inline

Minimal initialization constructor.

◆ ~FMaterial()

FMaterial::~FMaterial ( )
virtual

Destructor

Member Function Documentation

◆ AddRef()

uint32 FMaterial::AddRef ( ) const
inline

◆ AddReferencedObjects()

void FMaterial::AddReferencedObjects ( FReferenceCollector Collector)
virtual

Reimplemented in FMaterialResource.

◆ AllowNegativeEmissiveColor()

virtual bool FMaterial::AllowNegativeEmissiveColor ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ AllowPixelDepthOffset()

bool FMaterial::AllowPixelDepthOffset ( ) const
inlineprotected

◆ AllowTranslucentLocalLightShadow()

virtual bool FMaterial::AllowTranslucentLocalLightShadow ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ BuildShaderMapId() [1/2]

void FMaterial::BuildShaderMapId ( FMaterialShaderMapId OutId,
const ITargetPlatform TargetPlatform,
EMaterialKeyInclude  IncludeFlags = EMaterialKeyInclude::All 
) const
inline

◆ BuildShaderMapId() [2/2]

void FMaterial::BuildShaderMapId ( FMaterialShaderMapId OutId,
EShaderPlatform  Platform,
const ITargetPlatform TargetPlatform,
EMaterialKeyInclude  IncludeFlags = EMaterialKeyInclude::All 
) const
inline

Returns the ShaderMapId used in DDC and IncrementalCook for the ShaderMap created for this FMaterial.

◆ BuildShaderMapIdOverride()

void FMaterial::BuildShaderMapIdOverride ( const FBuildShaderMapIdArgs Args) const
protectedvirtual

The function that should be override by subclasses that want to modify either the DDC key or the IncrementalCook key.

Reimplemented in FMaterialResource.

◆ CacheShaders() [1/4]

bool FMaterial::CacheShaders ( const FMaterialShaderMapId ShaderMapId,
EMaterialShaderPrecompileMode  PrecompileMode = EMaterialShaderPrecompileMode::Default,
const ITargetPlatform TargetPlatform = nullptr 
)

◆ CacheShaders() [2/4]

bool FMaterial::CacheShaders ( const FMaterialShaderMapId ShaderMapId,
EShaderPlatform  Platform,
EMaterialShaderPrecompileMode  PrecompileMode = EMaterialShaderPrecompileMode::Default,
const ITargetPlatform TargetPlatform = nullptr 
)

Caches the material shaders for the given static parameter set and platform. This is used by material resources of UMaterialInstances.

◆ CacheShaders() [3/4]

bool FMaterial::CacheShaders ( EMaterialShaderPrecompileMode  PrecompileMode = EMaterialShaderPrecompileMode::Default,
const ITargetPlatform TargetPlatform = nullptr 
)

◆ CacheShaders() [4/4]

bool FMaterial::CacheShaders ( EShaderPlatform  Platform,
EMaterialShaderPrecompileMode  PrecompileMode = EMaterialShaderPrecompileMode::Default,
const ITargetPlatform TargetPlatform = nullptr 
)

Caches the material shaders for this material on the given platform. This is used by material resources of UMaterials.

Caches the material shaders for this material with no static parameters on the given platform. This is used by material resources of UMaterials.

◆ CastsRayTracedShadows()

virtual bool FMaterial::CastsRayTracedShadows ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ ClearPrecachedPSORequestIDs()

void FMaterial::ClearPrecachedPSORequestIDs ( )

Clear all cached PSO data because manager has been reset

◆ CollectPSOs() [1/2]

FGraphEventArray FMaterial::CollectPSOs ( const FPSOPrecacheVertexFactoryDataList VertexFactoryDataList,
const FPSOPrecacheParams PreCacheParams,
EPSOPrecachePriority  Priority,
TArray< FMaterialPSOPrecacheRequestID > &  OutMaterialPSORequestIDs 
)

◆ CollectPSOs() [2/2]

FGraphEventArray FMaterial::CollectPSOs ( ERHIFeatureLevel::Type  InFeatureLevel,
const FPSOPrecacheVertexFactoryDataList VertexFactoryDataList,
const FPSOPrecacheParams PreCacheParams,
EPSOPrecachePriority  Priority,
TArray< FMaterialPSOPrecacheRequestID > &  OutMaterialPSORequestIDs 
)

Collect all possible PSO's which can be used with this material for given parameters - PSOs will be async precached

◆ CompileCustomAttribute()

virtual int32 FMaterial::CompileCustomAttribute ( const FGuid AttributeID,
class FMaterialCompiler Compiler 
) const
inlineprotectedvirtual

Used to translate code for custom output attributes such as ClearCoatBottomNormal

Reimplemented in FMaterialResource.

◆ CompilePropertyAndSetMaterialProperty()

virtual int32 FMaterial::CompilePropertyAndSetMaterialProperty ( EMaterialProperty  Property,
class FMaterialCompiler Compiler,
EShaderFrequency  OverrideShaderFrequency = SF_NumFrequencies,
bool  bUsePreviousFrameTime = false 
) const
protectedpure virtual

Entry point for compiling a specific material property. This must call SetMaterialProperty.

Parameters
OverrideShaderFrequencySF_NumFrequencies to not override
Returns
cases to the proper type e.g. Compiler->ForceCast(Ret, GetValueType(Property));

Implemented in FMaterialResource.

◆ ComputeFogPerPixel()

virtual bool FMaterial::ComputeFogPerPixel ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ DeferredDelete()

void FMaterial::DeferredDelete ( FMaterial Material)
static

◆ DeferredDeleteArray() [1/2]

template<typename TMaterial >
static void FMaterial::DeferredDeleteArray ( TArray< TMaterial * > &  Materials)
inlinestatic

◆ DeferredDeleteArray() [2/2]

template<typename TMaterial >
static void FMaterial::DeferredDeleteArray ( TArray< TRefCountPtr< TMaterial > > &  Materials)
inlinestatic

◆ DeleteMaterialsOnRenderThread()

void FMaterial::DeleteMaterialsOnRenderThread ( TArray< TRefCountPtr< FMaterial > > &  MaterialsRenderThread)
static

◆ DiscardShaderMap()

void FMaterial::DiscardShaderMap ( )

Discards loaded shader maps if the application can't render

◆ DumpDebugInfo()

void FMaterial::DumpDebugInfo ( FOutputDevice OutputDevice)

◆ FeedbackMaterialLayersInstancedGraphFromCompilation()

virtual void FMaterial::FeedbackMaterialLayersInstancedGraphFromCompilation ( const FMaterialLayersFunctions InLayers)
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetAllowDevelopmentShaderCompile()

virtual bool FMaterial::GetAllowDevelopmentShaderCompile ( ) const
inlinevirtual

Returns true if this material is allowed to make development shaders via the global CVar CompileShadersForDevelopment.

Reimplemented in FMaterialResource.

◆ GetAssetName()

virtual FString FMaterial::GetAssetName ( ) const
inlinevirtual

Similar to GetFriendlyName, but but avoids historical behavior of the former, returning the exact asset name for material instances instead of just the material.

Reimplemented in FMaterialResource.

◆ GetBaseMaterialPathName()

virtual FString FMaterial::GetBaseMaterialPathName ( ) const
inlineprotectedvirtual

Useful for debugging.

Reimplemented in FMaterialResource.

◆ GetBlendableLocation()

virtual int32 FMaterial::GetBlendableLocation ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetBlendableOutputAlpha()

virtual bool FMaterial::GetBlendableOutputAlpha ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetBlendablePriority()

virtual int32 FMaterial::GetBlendablePriority ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetBlendMode()

virtual enum EBlendMode FMaterial::GetBlendMode ( ) const
pure virtual

Implemented in FMaterialResource.

◆ GetCachedExpressionData()

const FMaterialCachedExpressionData & FMaterial::GetCachedExpressionData ( ) const

◆ GetCastDynamicShadowAsMasked()

virtual bool FMaterial::GetCastDynamicShadowAsMasked ( ) const
pure virtual

Implemented in FMaterialResource.

◆ GetCustomDepthStencilUsageMask_GameThread()

uint8 FMaterial::GetCustomDepthStencilUsageMask_GameThread ( ) const

The material usage mask of CustomDepth and CustomStencil

◆ GetDebugName()

virtual FString FMaterial::GetDebugName ( ) const
inlineprotectedvirtual

Reimplemented in FMaterialResource.

◆ GetDependentShaderAndVFTypes() [1/2]

void FMaterial::GetDependentShaderAndVFTypes ( const FPlatformTypeLayoutParameters LayoutParams,
TArray< FShaderType * > &  OutShaderTypes,
TArray< const FShaderPipelineType * > &  OutShaderPipelineTypes,
TArray< FVertexFactoryType * > &  OutVFTypes 
) const
protected

◆ GetDependentShaderAndVFTypes() [2/2]

void FMaterial::GetDependentShaderAndVFTypes ( EShaderPlatform  Platform,
const FPlatformTypeLayoutParameters LayoutParams,
TArray< FShaderType * > &  OutShaderTypes,
TArray< const FShaderPipelineType * > &  OutShaderPipelineTypes,
TArray< FVertexFactoryType * > &  OutVFTypes 
) const
protected

Produces arrays of any shader and vertex factory type that this material is dependent on.

◆ GetDisablePreExposureScale()

virtual bool FMaterial::GetDisablePreExposureScale ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetDisplacementFadeRange()

virtual FDisplacementFadeRange FMaterial::GetDisplacementFadeRange ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetDisplacementScaling()

virtual FDisplacementScaling FMaterial::GetDisplacementScaling ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetFeatureLevel()

const FStaticFeatureLevel FMaterial::GetFeatureLevel ( ) const
inline

◆ GetForceCompatibleWithLightFunctionAtlas()

virtual bool FMaterial::GetForceCompatibleWithLightFunctionAtlas ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetForwardBlendsSkyLightCubemaps()

virtual bool FMaterial::GetForwardBlendsSkyLightCubemaps ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetFriendlyName()

virtual FString FMaterial::GetFriendlyName ( ) const
pure virtual

Implemented in FMaterialResource.

◆ GetFullPath()

virtual FString FMaterial::GetFullPath ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetGameThreadShaderMap()

class FMaterialShaderMap * FMaterial::GetGameThreadShaderMap ( ) const
inline

◆ GetLoadedCookedShaderMapId()

bool FMaterial::GetLoadedCookedShaderMapId ( ) const
inlineprotected

◆ GetMaterialDecalResponse()

virtual uint32 FMaterial::GetMaterialDecalResponse ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetMaterialDomain()

virtual EMaterialDomain FMaterial::GetMaterialDomain ( ) const
pure virtual

Implemented in FMaterialResource.

◆ GetMaterialExpressionSource()

bool FMaterial::GetMaterialExpressionSource ( FString &  OutSource)

Get user source code for the material, with a list of code snippets to highlight representing the code for each MaterialExpression

Parameters
OutSource- generated source code
OutHighlightMap- source code highlight list
Returns
- true on Success

◆ GetMaterialFloatPrecisionMode()

virtual enum EMaterialFloatPrecisionMode FMaterial::GetMaterialFloatPrecisionMode ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetMaterialId()

virtual FGuid FMaterial::GetMaterialId ( ) const
protectedpure virtual

Gets the Guid that represents this material.

Implemented in FMaterialResource.

◆ GetMaterialInterface()

virtual UMaterialInterface * FMaterial::GetMaterialInterface ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetMaterialLayers()

virtual const FMaterialLayersFunctions * FMaterial::GetMaterialLayers ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetMaterialPSOPrecacheRequestIDs()

TArray< FMaterialPSOPrecacheRequestID > FMaterial::GetMaterialPSOPrecacheRequestIDs ( ) const

Collect all PSO request information already done for this material

◆ GetMaterialShaderMapUsage()

virtual EMaterialShaderMapUsage::Type FMaterial::GetMaterialShaderMapUsage ( ) const
inlinevirtual

Returns which shadermap this material is bound to.

◆ GetMaterialTranslateValidationFlags()

virtual EMaterialTranslateValidationFlags FMaterial::GetMaterialTranslateValidationFlags ( ) const
inlinevirtual

◆ GetMaterialUsageDescription()

virtual FString FMaterial::GetMaterialUsageDescription ( ) const
pure virtual

Returns a string that describes the material's usage for debugging purposes.

Implemented in FMaterialResource.

◆ GetNeuralProfileId()

virtual int32 FMaterial::GetNeuralProfileId ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetNumCustomizedUVs()

virtual int32 FMaterial::GetNumCustomizedUVs ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetNumMaterialCacheTags()

virtual int32 FMaterial::GetNumMaterialCacheTags ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetOpacityMaskClipValue()

virtual float FMaterial::GetOpacityMaskClipValue ( ) const
pure virtual

Implemented in FMaterialResource.

◆ GetOwnerFName()

FName FMaterial::GetOwnerFName ( ) const

For tracking ownership data

◆ GetPixelDepthOffsetMode()

virtual EPixelDepthOffsetMode FMaterial::GetPixelDepthOffsetMode ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetPreshaderGap()

virtual uint16 FMaterial::GetPreshaderGap ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetPreshaderStats()

void FMaterial::GetPreshaderStats ( uint32 TotalParameters,
uint32 TotalOps 
) const

Returns summary statistics for preshaders

◆ GetQualityLevel()

EMaterialQualityLevel::Type FMaterial::GetQualityLevel ( ) const
inline

◆ GetRefCount()

uint32 FMaterial::GetRefCount ( ) const
inline

◆ GetReferencedTextureCollections()

virtual TConstArrayView< TObjectPtr< UTextureCollection > > FMaterial::GetReferencedTextureCollections ( ) const
pure virtual

Implemented in FMaterialResource.

◆ GetReferencedTextures()

virtual TArrayView< const TObjectPtr< UObject > > FMaterial::GetReferencedTextures ( ) const
pure virtual

Implemented in FMaterialResource.

◆ GetRefractionCoverageMode()

virtual ERefractionCoverageMode FMaterial::GetRefractionCoverageMode ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetRefractionDepthBiasValue()

virtual float FMaterial::GetRefractionDepthBiasValue ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetRefractionMode()

ERefractionMode FMaterial::GetRefractionMode ( ) const
virtual

Reimplemented in FMaterialResource.

◆ GetRenderingThreadShaderMap()

FMaterialShaderMap * FMaterial::GetRenderingThreadShaderMap ( ) const

◆ GetRootNodeOverridesDefaultRefraction()

virtual bool FMaterial::GetRootNodeOverridesDefaultRefraction ( ) const
pure virtual

Implemented in FMaterialResource.

◆ GetRuntimeVirtualTextureOutputAttibuteMask_GameThread()

uint8 FMaterial::GetRuntimeVirtualTextureOutputAttibuteMask_GameThread ( ) const

Get the runtime virtual texture output attribute mask for the material.

◆ GetRuntimeVirtualTextureOutputAttibuteMask_RenderThread()

uint8 FMaterial::GetRuntimeVirtualTextureOutputAttibuteMask_RenderThread ( ) const

◆ GetShader() [1/2]

template<typename ShaderType >
TShaderRef< ShaderType > FMaterial::GetShader ( FVertexFactoryType VertexFactoryType,
const typename ShaderType::FPermutationDomain &  PermutationVector,
bool  bFatalIfMissing = true 
) const
inline

Finds the shader matching the template type and the passed in vertex factory, asserts if not found. Note - Only implemented for FMeshMaterialShaderTypes

◆ GetShader() [2/2]

template<typename ShaderType >
TShaderRef< ShaderType > FMaterial::GetShader ( FVertexFactoryType VertexFactoryType,
int32  PermutationId = 0,
bool  bFatalIfMissing = true 
) const
inline

◆ GetShaderMapId()

virtual void FMaterial::GetShaderMapId ( EShaderPlatform  Platform,
const ITargetPlatform TargetPlatform,
FMaterialShaderMapId OutId 
) const
inlinevirtual

◆ GetShaderMapToUse()

const FMaterialShaderMap * FMaterial::GetShaderMapToUse ( ) const
protected

◆ GetShaderMapUsage()

virtual EMaterialShaderMapUsage::Type FMaterial::GetShaderMapUsage ( ) const
inlineprotectedvirtual

Gets the shader map usage of the material, which will be included in the DDC key. This mechanism allows derived material classes to create different DDC keys with the same base material. For example lightmass exports diffuse and emissive, each of which requires a material resource with the same base material.

◆ GetShaderPipeline()

FShaderPipelineRef FMaterial::GetShaderPipeline ( class FShaderPipelineType ShaderPipelineType,
FVertexFactoryType VertexFactoryType,
bool  bFatalIfNotFound = true 
) const

◆ GetShaderPlatform()

const EShaderPlatform FMaterial::GetShaderPlatform ( ) const
inline

◆ GetShaderTags()

virtual void FMaterial::GetShaderTags ( TArray< FName > &  OutShaderTags) const
inlinevirtual

◆ GetShadingModels()

virtual FMaterialShadingModelField FMaterial::GetShadingModels ( ) const
pure virtual

Implemented in FMaterialResource.

◆ GetShadingRate()

virtual EMaterialShadingRate FMaterial::GetShadingRate ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetStencilCompare()

virtual uint32 FMaterial::GetStencilCompare ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetStencilRefValue()

virtual uint32 FMaterial::GetStencilRefValue ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucencyDirectionalLightingIntensity()

virtual float FMaterial::GetTranslucencyDirectionalLightingIntensity ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucencyLightingMode()

virtual enum ETranslucencyLightingMode FMaterial::GetTranslucencyLightingMode ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucentBackscatteringExponent()

virtual float FMaterial::GetTranslucentBackscatteringExponent ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucentDirectionalLightShadowQuality()

virtual float FMaterial::GetTranslucentDirectionalLightShadowQuality ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucentLocalLightShadowQuality()

virtual float FMaterial::GetTranslucentLocalLightShadowQuality ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucentMultipleScatteringExtinction()

virtual FLinearColor FMaterial::GetTranslucentMultipleScatteringExtinction ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucentSelfShadowDensityScale()

virtual float FMaterial::GetTranslucentSelfShadowDensityScale ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucentSelfShadowSecondDensityScale()

virtual float FMaterial::GetTranslucentSelfShadowSecondDensityScale ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucentSelfShadowSecondOpacity()

virtual float FMaterial::GetTranslucentSelfShadowSecondOpacity ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucentShadowDensityScale()

virtual float FMaterial::GetTranslucentShadowDensityScale ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetTranslucentShadowStartOffset()

virtual float FMaterial::GetTranslucentShadowStartOffset ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ GetUniform2DArrayTextureExpressions()

TArrayView< const FMaterialTextureParameterInfo > FMaterial::GetUniform2DArrayTextureExpressions ( ) const
inline

◆ GetUniform2DTextureExpressions()

TArrayView< const FMaterialTextureParameterInfo > FMaterial::GetUniform2DTextureExpressions ( ) const
inline

◆ GetUniformCubeTextureExpressions()

TArrayView< const FMaterialTextureParameterInfo > FMaterial::GetUniformCubeTextureExpressions ( ) const
inline

◆ GetUniformExpressions()

const FUniformExpressionSet & FMaterial::GetUniformExpressions ( ) const

◆ GetUniformNumericParameterExpressions()

TArrayView< const FMaterialNumericParameterInfo > FMaterial::GetUniformNumericParameterExpressions ( ) const

◆ GetUniformSparseVolumeTextureExpressions()

TArrayView< const FMaterialTextureParameterInfo > FMaterial::GetUniformSparseVolumeTextureExpressions ( ) const
inline

◆ GetUniformTextureCollectionExpressions()

TConstArrayView< FMaterialTextureCollectionParameterInfo > FMaterial::GetUniformTextureCollectionExpressions ( ) const

◆ GetUniformTextureExpressions()

TArrayView< const FMaterialTextureParameterInfo > FMaterial::GetUniformTextureExpressions ( EMaterialTextureParameterType  Type) const

◆ GetUniformVirtualTextureExpressions()

TArrayView< const FMaterialTextureParameterInfo > FMaterial::GetUniformVirtualTextureExpressions ( ) const
inline

◆ GetUniformVolumeTextureExpressions()

TArrayView< const FMaterialTextureParameterInfo > FMaterial::GetUniformVolumeTextureExpressions ( ) const
inline

◆ GetUniqueAssetName() [1/2]

FString FMaterial::GetUniqueAssetName ( const FMaterialShaderMapId ShaderMapId) const
inline

◆ GetUniqueAssetName() [2/2]

FString FMaterial::GetUniqueAssetName ( EShaderPlatform  Platform,
const FMaterialShaderMapId ShaderMapId 
) const
inline

GetUniqueAssetName just returns GetAssetName in non-editor builds

◆ GetUsesDynamicParameter()

bool FMaterial::GetUsesDynamicParameter ( ) const
inline

◆ HasAmbientOcclusionConnected()

virtual bool FMaterial::HasAmbientOcclusionConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasAnisotropyConnected()

virtual bool FMaterial::HasAnisotropyConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasBaseColorConnected()

virtual bool FMaterial::HasBaseColorConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasDisplacementConnected()

virtual bool FMaterial::HasDisplacementConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasEmissiveColorConnected()

virtual bool FMaterial::HasEmissiveColorConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasFirstPersonOutput()

virtual bool FMaterial::HasFirstPersonOutput ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasMaterialCacheOutput()

virtual bool FMaterial::HasMaterialCacheOutput ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasMaterialPropertyConnected()

virtual bool FMaterial::HasMaterialPropertyConnected ( EMaterialProperty  In) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasMetallicConnected()

virtual bool FMaterial::HasMetallicConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasNormalConnected()

virtual bool FMaterial::HasNormalConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasPerInstanceCustomData()

virtual bool FMaterial::HasPerInstanceCustomData ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasPerInstanceRandom()

virtual bool FMaterial::HasPerInstanceRandom ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasPixelAnimation()

virtual bool FMaterial::HasPixelAnimation ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasPixelDepthOffsetConnected()

virtual bool FMaterial::HasPixelDepthOffsetConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasRenderTracePhysicalMaterialOutputs()

virtual bool FMaterial::HasRenderTracePhysicalMaterialOutputs ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasRoughnessConnected()

virtual bool FMaterial::HasRoughnessConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasRuntimeVirtualTextureOutput()

virtual bool FMaterial::HasRuntimeVirtualTextureOutput ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasShaders()

bool FMaterial::HasShaders ( const FMaterialShaderTypes InTypes,
const FVertexFactoryType InVertexFactoryType 
) const

◆ HasSpecularConnected()

virtual bool FMaterial::HasSpecularConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasSubstrateRoughnessTracking()

virtual bool FMaterial::HasSubstrateRoughnessTracking ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasValidGameThreadShaderMap()

bool FMaterial::HasValidGameThreadShaderMap ( ) const

Checks if there is a valid GameThreadShaderMap, that is, the material can be rendered as intended.

Returns
returns true if there is a GameThreadShaderMap.

◆ HasVertexInterpolator()

virtual bool FMaterial::HasVertexInterpolator ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ HasVertexPositionOffsetConnected()

virtual bool FMaterial::HasVertexPositionOffsetConnected ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsDefaultMaterial()

virtual bool FMaterial::IsDefaultMaterial ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsDeferredDecal()

virtual bool FMaterial::IsDeferredDecal ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsDisplacementFadeEnabled()

virtual bool FMaterial::IsDisplacementFadeEnabled ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsDistorted()

virtual bool FMaterial::IsDistorted ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsDitheredLODTransition()

virtual bool FMaterial::IsDitheredLODTransition ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsDitherMasked()

virtual bool FMaterial::IsDitherMasked ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsDualBlendingEnabled() [1/2]

virtual bool FMaterial::IsDualBlendingEnabled ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsDualBlendingEnabled() [2/2]

virtual bool FMaterial::IsDualBlendingEnabled ( EShaderPlatform  Platform) const
inlinefinalvirtual

◆ IsFullyRough()

virtual bool FMaterial::IsFullyRough ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsGameThreadShaderMapComplete()

bool FMaterial::IsGameThreadShaderMapComplete ( ) const
inline

◆ IsLightFunction()

virtual bool FMaterial::IsLightFunction ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsMasked()

virtual bool FMaterial::IsMasked ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsMobileSeparateTranslucencyEnabled()

virtual bool FMaterial::IsMobileSeparateTranslucencyEnabled ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsNonmetal()

virtual bool FMaterial::IsNonmetal ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsOwnerBeginDestroyed()

bool FMaterial::IsOwnerBeginDestroyed ( ) const
inline

◆ IsPersistent()

virtual bool FMaterial::IsPersistent ( ) const
pure virtual

Should shaders compiled for this material be saved to disk?

Implemented in FMaterialResource.

◆ IsPostProcessMaterial()

virtual bool FMaterial::IsPostProcessMaterial ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsPreview()

virtual bool FMaterial::IsPreview ( ) const
inlinevirtual

◆ IsRenderingThreadShaderMapComplete()

bool FMaterial::IsRenderingThreadShaderMapComplete ( ) const
inline

◆ IsRequiredComplete()

bool FMaterial::IsRequiredComplete ( ) const

Is the material required to be complete? Default materials, special engine materials, etc

◆ IsShadingModelFromMaterialExpression()

virtual bool FMaterial::IsShadingModelFromMaterialExpression ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsSky()

virtual bool FMaterial::IsSky ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsSpecialEngineMaterial()

virtual bool FMaterial::IsSpecialEngineMaterial ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsStencilTestEnabled()

virtual bool FMaterial::IsStencilTestEnabled ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsSubstrateMaterial()

virtual bool FMaterial::IsSubstrateMaterial ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsTangentSpaceNormal()

virtual bool FMaterial::IsTangentSpaceNormal ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsTessellationEnabled()

virtual bool FMaterial::IsTessellationEnabled ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsThinSurface()

virtual bool FMaterial::IsThinSurface ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsTranslucencyAfterDOFEnabled()

virtual bool FMaterial::IsTranslucencyAfterDOFEnabled ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsTranslucencyAfterMotionBlurEnabled()

virtual bool FMaterial::IsTranslucencyAfterMotionBlurEnabled ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsTranslucencyVelocityFromDepth()

virtual bool FMaterial::IsTranslucencyVelocityFromDepth ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsTranslucencyWritingCustomDepth()

virtual bool FMaterial::IsTranslucencyWritingCustomDepth ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsTranslucencyWritingFrontLayerTransparency()

virtual bool FMaterial::IsTranslucencyWritingFrontLayerTransparency ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsTranslucencyWritingVelocity()

virtual bool FMaterial::IsTranslucencyWritingVelocity ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsTwoSided()

virtual bool FMaterial::IsTwoSided ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsUIMaterial()

virtual bool FMaterial::IsUIMaterial ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsUsedWithAPEXCloth()

virtual bool FMaterial::IsUsedWithAPEXCloth ( ) const
inlinevirtual

◆ IsUsedWithBeamTrails()

virtual bool FMaterial::IsUsedWithBeamTrails ( ) const
inlinevirtual

◆ IsUsedWithEditorCompositing()

virtual bool FMaterial::IsUsedWithEditorCompositing ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsedWithGeometryCache()

virtual bool FMaterial::IsUsedWithGeometryCache ( ) const
inlinevirtual

◆ IsUsedWithGeometryCollections()

virtual bool FMaterial::IsUsedWithGeometryCollections ( ) const
inlinevirtual

◆ IsUsedWithHairStrands()

virtual bool FMaterial::IsUsedWithHairStrands ( ) const
inlinevirtual

◆ IsUsedWithHeterogeneousVolumes()

virtual bool FMaterial::IsUsedWithHeterogeneousVolumes ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsedWithInstancedStaticMeshes()

virtual bool FMaterial::IsUsedWithInstancedStaticMeshes ( ) const
inlinevirtual

◆ IsUsedWithLandscape()

virtual bool FMaterial::IsUsedWithLandscape ( ) const
inlinevirtual

◆ IsUsedWithLidarPointCloud()

virtual bool FMaterial::IsUsedWithLidarPointCloud ( ) const
inlinevirtual

◆ IsUsedWithMeshParticles()

virtual bool FMaterial::IsUsedWithMeshParticles ( ) const
inlinevirtual

◆ IsUsedWithMorphTargets()

virtual bool FMaterial::IsUsedWithMorphTargets ( ) const
inlinevirtual

◆ IsUsedWithNanite()

virtual bool FMaterial::IsUsedWithNanite ( ) const
inlinevirtual

◆ IsUsedWithNeuralNetworks()

virtual bool FMaterial::IsUsedWithNeuralNetworks ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsedWithNiagaraMeshParticles()

virtual bool FMaterial::IsUsedWithNiagaraMeshParticles ( ) const
inlinevirtual

◆ IsUsedWithNiagaraRibbons()

virtual bool FMaterial::IsUsedWithNiagaraRibbons ( ) const
inlinevirtual

◆ IsUsedWithNiagaraSprites()

virtual bool FMaterial::IsUsedWithNiagaraSprites ( ) const
inlinevirtual

◆ IsUsedWithParticleSprites()

virtual bool FMaterial::IsUsedWithParticleSprites ( ) const
inlinevirtual

◆ IsUsedWithParticleSystem()

virtual bool FMaterial::IsUsedWithParticleSystem ( ) const
inlinevirtual

◆ IsUsedWithSkeletalMesh()

virtual bool FMaterial::IsUsedWithSkeletalMesh ( ) const
inlinevirtual

◆ IsUsedWithSplineMeshes()

virtual bool FMaterial::IsUsedWithSplineMeshes ( ) const
inlinevirtual

◆ IsUsedWithStaticLighting()

virtual bool FMaterial::IsUsedWithStaticLighting ( ) const
inlinevirtual

◆ IsUsedWithStaticMesh()

virtual bool FMaterial::IsUsedWithStaticMesh ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsedWithUI()

virtual bool FMaterial::IsUsedWithUI ( ) const
inlinevirtual

◆ IsUsedWithVirtualHeightfieldMesh()

virtual bool FMaterial::IsUsedWithVirtualHeightfieldMesh ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsedWithVolumetricCloud()

virtual bool FMaterial::IsUsedWithVolumetricCloud ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsedWithVoxels()

virtual bool FMaterial::IsUsedWithVoxels ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsedWithWater()

virtual bool FMaterial::IsUsedWithWater ( ) const
inlinevirtual

◆ IsUsingAlphaToCoverage()

virtual bool FMaterial::IsUsingAlphaToCoverage ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsingHQForwardReflections()

virtual bool FMaterial::IsUsingHQForwardReflections ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsingPlanarForwardReflections()

virtual bool FMaterial::IsUsingPlanarForwardReflections ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsUsingPreintegratedGFForSimpleIBL()

virtual bool FMaterial::IsUsingPreintegratedGFForSimpleIBL ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsVariableRateShadingAllowed()

virtual bool FMaterial::IsVariableRateShadingAllowed ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ IsVolumetricPrimitive()

virtual bool FMaterial::IsVolumetricPrimitive ( ) const
pure virtual

Implemented in FMaterialResource.

◆ IsWireframe()

virtual bool FMaterial::IsWireframe ( ) const
pure virtual

Implemented in FMaterialResource.

◆ LegacySerialize()

void FMaterial::LegacySerialize ( FArchive Ar)
virtual

Serializes the material.

Reimplemented in FMaterialResource.

◆ MaterialGetSubstrateClosureCount_GameThread()

uint8 FMaterial::MaterialGetSubstrateClosureCount_GameThread ( ) const

Get Substrate material BSDF count.

◆ MaterialGetSubstrateClosureCount_RenderThread()

uint8 FMaterial::MaterialGetSubstrateClosureCount_RenderThread ( ) const

◆ MaterialGetSubstrateMaterialBsdfFeatures_GameThread()

ESubstrateBsdfFeature FMaterial::MaterialGetSubstrateMaterialBsdfFeatures_GameThread ( ) const

Get Substrate material BSDFs features.

◆ MaterialGetSubstrateMaterialBsdfFeatures_RenderThread()

ESubstrateBsdfFeature FMaterial::MaterialGetSubstrateMaterialBsdfFeatures_RenderThread ( ) const

◆ MaterialGetSubstrateMaterialType_GameThread()

uint8 FMaterial::MaterialGetSubstrateMaterialType_GameThread ( ) const

Get Substrate material type (single, single, complex slab).

◆ MaterialGetSubstrateMaterialType_RenderThread()

uint8 FMaterial::MaterialGetSubstrateMaterialType_RenderThread ( ) const

◆ MaterialGetSubstrateTileType_GameThread()

ESubstrateTileType FMaterial::MaterialGetSubstrateTileType_GameThread ( ) const

Get Substrate tile type requirement.

◆ MaterialGetSubstrateTileType_RenderThread()

ESubstrateTileType FMaterial::MaterialGetSubstrateTileType_RenderThread ( ) const

◆ MaterialGetSubstrateUintPerPixel_GameThread()

uint8 FMaterial::MaterialGetSubstrateUintPerPixel_GameThread ( ) const

Get Substrate material uint count per pixel.

◆ MaterialGetSubstrateUintPerPixel_RenderThread()

uint8 FMaterial::MaterialGetSubstrateUintPerPixel_RenderThread ( ) const

◆ MaterialIsLightFunctionAtlasCompatible_GameThread()

bool FMaterial::MaterialIsLightFunctionAtlasCompatible_GameThread ( ) const

Get whether or not the material is compatible with the light function atlas.

◆ MaterialIsLightFunctionAtlasCompatible_RenderThread()

bool FMaterial::MaterialIsLightFunctionAtlasCompatible_RenderThread ( ) const

◆ MaterialMayModifyMeshPosition()

bool FMaterial::MaterialMayModifyMeshPosition ( ) const

Note: This function is only intended for use in deciding whether or not shader permutations are required before material translation occurs.

◆ MaterialModifiesMeshPosition_GameThread()

bool FMaterial::MaterialModifiesMeshPosition_GameThread ( ) const

◆ MaterialModifiesMeshPosition_RenderThread()

bool FMaterial::MaterialModifiesMeshPosition_RenderThread ( ) const

Does the material modify the mesh position.

◆ MaterialUsesAnisotropy_GameThread()

bool FMaterial::MaterialUsesAnisotropy_GameThread ( ) const

◆ MaterialUsesAnisotropy_RenderThread()

bool FMaterial::MaterialUsesAnisotropy_RenderThread ( ) const

◆ MaterialUsesDisplacement_GameThread()

bool FMaterial::MaterialUsesDisplacement_GameThread ( ) const

◆ MaterialUsesDisplacement_RenderThread()

bool FMaterial::MaterialUsesDisplacement_RenderThread ( ) const

Does the material use displacement.

◆ MaterialUsesDistanceCullFade_GameThread()

bool FMaterial::MaterialUsesDistanceCullFade_GameThread ( ) const

Does the material use a distance cull fade.

◆ MaterialUsesMotionVectorWorldOffset_GameThread()

bool FMaterial::MaterialUsesMotionVectorWorldOffset_GameThread ( ) const

◆ MaterialUsesMotionVectorWorldOffset_RenderThread()

bool FMaterial::MaterialUsesMotionVectorWorldOffset_RenderThread ( ) const

Does the material use a motion vector offset.

◆ MaterialUsesPixelDepthOffset_GameThread()

bool FMaterial::MaterialUsesPixelDepthOffset_GameThread ( ) const

◆ MaterialUsesPixelDepthOffset_RenderThread()

bool FMaterial::MaterialUsesPixelDepthOffset_RenderThread ( ) const

Does the material use a pixel depth offset.

◆ MaterialUsesSceneDepthLookup_GameThread()

bool FMaterial::MaterialUsesSceneDepthLookup_GameThread ( ) const

◆ MaterialUsesSceneDepthLookup_RenderThread()

bool FMaterial::MaterialUsesSceneDepthLookup_RenderThread ( ) const

Does the material use a SceneDepth lookup.

◆ MaterialUsesTemporalResponsiveness_GameThread()

bool FMaterial::MaterialUsesTemporalResponsiveness_GameThread ( ) const

◆ MaterialUsesTemporalResponsiveness_RenderThread()

bool FMaterial::MaterialUsesTemporalResponsiveness_RenderThread ( ) const

Does the material use temporal responsiveness.

◆ MaterialUsesWorldPositionOffset_GameThread()

bool FMaterial::MaterialUsesWorldPositionOffset_GameThread ( ) const

◆ MaterialUsesWorldPositionOffset_RenderThread()

bool FMaterial::MaterialUsesWorldPositionOffset_RenderThread ( ) const

Does the material use world position offset.

◆ NeedsGBuffer()

bool FMaterial::NeedsGBuffer ( ) const

◆ NeedsSceneTextures()

bool FMaterial::NeedsSceneTextures ( ) const

◆ PrepareDestroy_GameThread()

bool FMaterial::PrepareDestroy_GameThread ( )
virtual

Prepares to destroy the material, must be called from game thread Returns 'true' if PrepareDestroy_RenderThread() is required

◆ PrepareDestroy_RenderThread()

void FMaterial::PrepareDestroy_RenderThread ( )
virtual

Prepares to destroy the material, must be called from render thread, only if PrepareDestroy_GameThread() returned true

◆ RegisterInlineShaderMap()

void FMaterial::RegisterInlineShaderMap ( bool  bLoadingCooked)

Serializes the shader map inline in this material, including any shader dependencies.

◆ Release()

uint32 FMaterial::Release ( ) const
inline

◆ ReleaseShaderMap()

void FMaterial::ReleaseShaderMap ( )

Releases this material's shader map. Must only be called on materials not exposed to the rendering thread!

◆ RequiresSceneColorCopy_GameThread()

bool FMaterial::RequiresSceneColorCopy_GameThread ( ) const

◆ RequiresSceneColorCopy_RenderThread()

bool FMaterial::RequiresSceneColorCopy_RenderThread ( ) const

◆ RequiresSynchronousCompilation()

virtual bool FMaterial::RequiresSynchronousCompilation ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ SamplesMaterialCache()

virtual bool FMaterial::SamplesMaterialCache ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ SaveShaderStableKeys() [1/2]

void FMaterial::SaveShaderStableKeys ( EShaderPlatform  TargetShaderPlatform,
struct FStableShaderKeyAndValue SaveKeyVal 
)

◆ SaveShaderStableKeys() [2/2]

void FMaterial::SaveShaderStableKeys ( struct FStableShaderKeyAndValue SaveKeyVal)

◆ SerializeInlineShaderMap()

void FMaterial::SerializeInlineShaderMap ( FArchive Ar,
const FName SerializingAsset = NAME_None 
)

Serializes the shader map inline in this material, including any shader dependencies.

◆ SetAllowPixelDepthOffset()

void FMaterial::SetAllowPixelDepthOffset ( bool  bEnable)
inlineprotected

◆ SetGameThreadShaderMap()

void FMaterial::SetGameThreadShaderMap ( FMaterialShaderMap InMaterialShaderMap)

◆ SetInlineShaderMap()

void FMaterial::SetInlineShaderMap ( FMaterialShaderMap InMaterialShaderMap)

◆ SetOwnerBeginDestroyed()

void FMaterial::SetOwnerBeginDestroyed ( )
inline

◆ SetQualityLevelProperties() [1/2]

void FMaterial::SetQualityLevelProperties ( ERHIFeatureLevel::Type  InFeatureLevel,
EMaterialQualityLevel::Type  InQualityLevel = EMaterialQualityLevel::Num 
)
inlineprotected

◆ SetQualityLevelProperties() [2/2]

void FMaterial::SetQualityLevelProperties ( EShaderPlatform  InShaderPlatform,
EMaterialQualityLevel::Type  InQualityLevel = EMaterialQualityLevel::Num 
)
inlineprotected

◆ SetRenderingThreadShaderMap()

void FMaterial::SetRenderingThreadShaderMap ( TRefCountPtr< FMaterialShaderMap > &  InMaterialShaderMap)

◆ SetShaderMapsOnMaterialResources()

void FMaterial::SetShaderMapsOnMaterialResources ( const TMap< TRefCountPtr< FMaterial >, TRefCountPtr< FMaterialShaderMap > > &  MaterialsToUpdate)
static

Sets shader maps on the specified materials without blocking.

◆ SetupExtraCompilationSettings() [1/2]

virtual void FMaterial::SetupExtraCompilationSettings ( const EShaderPlatform  Platform,
FExtraShaderCompilerSettings Settings 
) const
inlinefinalvirtual

call during shader compilation jobs setup to fill additional settings that may be required by classes who inherit from this

◆ SetupExtraCompilationSettings() [2/2]

virtual void FMaterial::SetupExtraCompilationSettings ( FExtraShaderCompilerSettings Settings) const
inlinevirtual

◆ ShouldAlwaysEvaluateWorldPositionOffset()

virtual bool FMaterial::ShouldAlwaysEvaluateWorldPositionOffset ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ ShouldApplyCloudFogging()

virtual bool FMaterial::ShouldApplyCloudFogging ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ ShouldApplyFogging()

virtual bool FMaterial::ShouldApplyFogging ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ ShouldCache() [1/2]

bool FMaterial::ShouldCache ( const FShaderType ShaderType,
const FVertexFactoryType VertexFactoryType 
) const
virtual

Reimplemented in FLandscapeMaterialResource.

◆ ShouldCache() [2/2]

bool FMaterial::ShouldCache ( EShaderPlatform  Platform,
const FShaderType ShaderType,
const FVertexFactoryType VertexFactoryType 
) const
finalvirtual

Should the shader for this material with the given platform, shader type and vertex factory type combination be compiled

Parameters
ShaderTypeWhich shader is being compiled
VertexFactoryWhich vertex factory is being compiled (can be NULL)
Returns
true if the shader should be compiled

◆ ShouldCachePipeline() [1/2]

bool FMaterial::ShouldCachePipeline ( const FShaderPipelineType PipelineType,
const FVertexFactoryType VertexFactoryType 
) const

◆ ShouldCachePipeline() [2/2]

bool FMaterial::ShouldCachePipeline ( EShaderPlatform  Platform,
const FShaderPipelineType PipelineType,
const FVertexFactoryType VertexFactoryType 
) const

◆ ShouldCacheShaders() [1/2]

bool FMaterial::ShouldCacheShaders ( const EShaderPlatform  ShaderPlatform,
const FMaterialShaderTypes InTypes,
const FVertexFactoryType InVertexFactoryType 
) const

◆ ShouldCacheShaders() [2/2]

bool FMaterial::ShouldCacheShaders ( const FMaterialShaderTypes InTypes,
const FVertexFactoryType InVertexFactoryType 
) const

◆ ShouldCastDynamicShadows()

bool FMaterial::ShouldCastDynamicShadows ( ) const
inline

Returns whether this material should be considered for casting dynamic shadows.

◆ ShouldDisableDepthTest()

virtual bool FMaterial::ShouldDisableDepthTest ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ ShouldDoContactShadows()

virtual bool FMaterial::ShouldDoContactShadows ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ ShouldDoSSR()

virtual bool FMaterial::ShouldDoSSR ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ ShouldEnableResponsiveAA()

virtual bool FMaterial::ShouldEnableResponsiveAA ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ ShouldGenerateSphericalParticleNormals()

virtual bool FMaterial::ShouldGenerateSphericalParticleNormals ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ ShouldWriteOnlyAlpha()

virtual bool FMaterial::ShouldWriteOnlyAlpha ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ TryGetShaders()

bool FMaterial::TryGetShaders ( const FMaterialShaderTypes InTypes,
const FVertexFactoryType InVertexFactoryType,
FMaterialShaders OutShaders 
) const

◆ UpdateInlineShaderMapIsComplete()

void FMaterial::UpdateInlineShaderMapIsComplete ( )

◆ UseLmDirectionality()

virtual bool FMaterial::UseLmDirectionality ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ UseNormalCurvatureToRoughness()

virtual bool FMaterial::UseNormalCurvatureToRoughness ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ UsesEyeAdaptation()

bool FMaterial::UsesEyeAdaptation ( ) const

◆ UsesGlobalDistanceField_GameThread()

bool FMaterial::UsesGlobalDistanceField_GameThread ( ) const

◆ UsesMotionVectorWorldOffset()

virtual bool FMaterial::UsesMotionVectorWorldOffset ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ UsesTemporalResponsiveness()

virtual bool FMaterial::UsesTemporalResponsiveness ( ) const
inlinevirtual

Reimplemented in FMaterialResource.

◆ WritesEveryPixel() [1/2]

bool FMaterial::WritesEveryPixel ( bool  bShadowPass,
bool  bVFTypeSupportsNullPixelShader 
) const

◆ WritesEveryPixel() [2/2]

bool FMaterial::WritesEveryPixel ( bool  bShadowPass = false) const

Friends And Related Symbol Documentation

◆ FHLSLMaterialTranslator

friend class FHLSLMaterialTranslator
friend

◆ FMaterialHLSLErrorHandler

friend class FMaterialHLSLErrorHandler
friend

◆ FMaterialShaderMap

friend class FMaterialShaderMap
friend

◆ FShaderCompilingManager

◆ UE::Cook::FODSCClientData

friend class UE::Cook::FODSCClientData
friend

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