12#include "MaterialInstance.generated.h"
36 bool bIsUsedAsAtlasPosition;
47 bIsUsedAsAtlasPosition ==
Other.bIsUsedAsAtlasPosition &&
48 Curve ==
Other.Curve &&
53 return !((*this) ==
Other);
57 : bIsUsedAsAtlasPosition(
false)
67#if WITH_EDITORONLY_DATA
87#if WITH_EDITORONLY_DATA
99 ParameterInfo ==
Other.ParameterInfo &&
100 ParameterValue ==
Other.ParameterValue &&
101 ExpressionGUID ==
Other.ExpressionGUID;
105 return !((*this) ==
Other);
114#if WITH_EDITORONLY_DATA
115 OutResult.ExpressionGuid = ExpressionGUID;
118 OutResult.bUsedAsAtlasPosition = AtlasData.bIsUsedAsAtlasPosition;
129#if WITH_EDITORONLY_DATA
155 ParameterInfo ==
Other.ParameterInfo &&
156 ParameterValue ==
Other.ParameterValue &&
157 ExpressionGUID ==
Other.ExpressionGUID;
161 return !((*this) ==
Other);
170#if WITH_EDITORONLY_DATA
171 OutResult.ExpressionGuid = ExpressionGUID;
204 ParameterInfo ==
Other.ParameterInfo &&
205 ParameterValue ==
Other.ParameterValue &&
206 ExpressionGUID ==
Other.ExpressionGUID;
210 return !((*this) ==
Other);
219#if WITH_EDITORONLY_DATA
220 OutResult.ExpressionGuid = ExpressionGUID;
231#if WITH_EDITORONLY_DATA
252 bool IsValid()
const {
return GetValue(*
this) !=
nullptr; }
257 ParameterInfo ==
Other.ParameterInfo &&
258 ParameterValue ==
Other.ParameterValue &&
259 ExpressionGUID ==
Other.ExpressionGUID;
263 return !((*this) ==
Other);
272#if WITH_EDITORONLY_DATA
273 OutResult.ExpressionGuid = ExpressionGUID;
300 bool IsValid()
const {
return GetValue(*
this) !=
nullptr; }
305 ParameterInfo ==
Other.ParameterInfo &&
306 ParameterValue ==
Other.ParameterValue &&
307 ExpressionGUID ==
Other.ExpressionGUID;
311 return !((*this) ==
Other);
320#if WITH_EDITORONLY_DATA
321 OutResult.ExpressionGuid = ExpressionGUID;
348 bool IsValid()
const {
return GetValue(*
this) !=
nullptr; }
353 ParameterInfo ==
Other.ParameterInfo &&
354 ParameterValue ==
Other.ParameterValue &&
355 ExpressionGUID ==
Other.ExpressionGUID;
359 return !((*this) ==
Other);
368#if WITH_EDITORONLY_DATA
369 OutResult.ExpressionGuid = ExpressionGUID;
396 bool IsValid()
const {
return GetValue(*
this) !=
nullptr; }
401 ParameterInfo ==
Other.ParameterInfo &&
402 ParameterValue ==
Other.ParameterValue &&
403 ExpressionGUID ==
Other.ExpressionGUID;
407 return !((*this) ==
Other);
416#if WITH_EDITORONLY_DATA
417 OutResult.ExpressionGuid = ExpressionGUID;
444 bool IsValid()
const {
return GetValue(*
this) !=
nullptr; }
449 ParameterInfo ==
Other.ParameterInfo &&
450 ParameterValue ==
Other.ParameterValue &&
451 ExpressionGUID ==
Other.ExpressionGUID;
455 return !((*this) ==
Other);
464#if WITH_EDITORONLY_DATA
465 OutResult.ExpressionGuid = ExpressionGUID;
476#if WITH_EDITORONLY_DATA
500 bool IsValid()
const {
return GetValue(*
this) !=
nullptr; }
505 ParameterInfo ==
Other.ParameterInfo &&
506 FontValue ==
Other.FontValue &&
507 FontPage ==
Other.FontPage &&
508 ExpressionGUID ==
Other.ExpressionGUID;
512 return !((*this) ==
Other);
521#if WITH_EDITORONLY_DATA
522 OutResult.ExpressionGuid = ExpressionGUID;
542 bool bOverrideBlendableLocation =
false;
543 bool bOverrideBlendablePriority =
false;
545 int32 BlendablePriorityOverride = 0;
551 if (
InA.Num() !=
InB.Num())
561 AA.Sort([](
const T&
A,
const T&
B) {
return B.ExpressionGUID <
A.ExpressionGUID; });
562 BB.Sort([](
const T&
A,
const T&
B) {
return B.ExpressionGUID <
A.ExpressionGUID; });
594#if WITH_EDITORONLY_DATA
595class FMaterialInstanceParameterUpdateContext
630#if WITH_EDITORONLY_DATA
642 UPROPERTY(EditAnywhere, Category = PhysicalMaterialMask)
653#if WITH_EDITORONLY_DATA
677 uint8 bHasStaticPermutationResource:1;
681 uint8 bOverrideSubsurfaceProfile:1;
685 uint8 bOverrideSpecularProfile:1;
689 uint8 bOverrideBlendableLocation:1;
693 uint8 bOverrideBlendablePriority : 1;
696 uint8 bIsThinSurface : 1;
698 uint8 bCastDynamicShadowAsMasked : 1;
699 uint8 bOutputTranslucentVelocity : 1;
700 uint8 bIsShadingModelFromMaterialExpression : 1;
701 uint8 bHasPixelAnimation : 1;
702 uint8 bEnableTessellation : 1;
703 uint8 bEnableDisplacementFade : 1;
704 uint8 bCompatibleWithLumenCardSharing : 1;
720 float OpacityMaskClipValue;
725 float MaxWorldPositionOffsetDisplacement;
788#if WITH_EDITORONLY_DATA
833#if WITH_EDITORONLY_DATA
865 mutable bool bResourceCreated =
false;
868 mutable bool bCachingUniformExpressions =
false;
923 virtual ENGINE_API bool UpdateLightmassTextureTracking()
override;
924 virtual ENGINE_API bool GetCastShadowAsMasked()
const override;
925 virtual ENGINE_API float GetEmissiveBoost()
const override;
926 virtual ENGINE_API float GetDiffuseBoost()
const override;
927 virtual ENGINE_API float GetExportResolutionScale()
const override;
948 ENGINE_API virtual float GetOpacityMaskClipValue()
const override;
949 ENGINE_API virtual bool GetCastDynamicShadowAsMasked()
const override;
952 ENGINE_API virtual bool IsShadingModelFromMaterialExpression()
const override;
953 ENGINE_API virtual bool IsTwoSided()
const override;
954 ENGINE_API virtual bool IsThinSurface()
const override;
955 ENGINE_API virtual bool IsTranslucencyWritingVelocity()
const override;
956 ENGINE_API virtual bool IsTranslucencyVelocityFromDepth()
const override;
957 ENGINE_API virtual bool IsDitheredLODTransition()
const override;
958 ENGINE_API virtual bool IsMasked()
const override;
959 ENGINE_API virtual bool WritesToRuntimeVirtualTexture()
const override;
960 ENGINE_API virtual bool HasMeshPaintTexture()
const override;
961 ENGINE_API virtual bool HasCustomPrimitiveData()
const override;
963 ENGINE_API virtual bool IsDisplacementFadeEnabled()
const override;
965 ENGINE_API virtual float GetMaxWorldPositionOffsetDisplacement()
const override;
966 ENGINE_API virtual bool ShouldAlwaysEvaluateWorldPositionOffset()
const override;
967 ENGINE_API virtual bool IsDeferredDecal()
const override;
968 ENGINE_API virtual bool IsUIMaterial()
const override;
969 ENGINE_API virtual bool IsPostProcessMaterial()
const override;
970 ENGINE_API virtual bool HasVertexInterpolator()
const override;
971 ENGINE_API virtual bool HasCustomizedUVs()
const override;
972 ENGINE_API virtual bool HasPixelAnimation()
const override;
981 ENGINE_API virtual bool CastsRayTracedShadows()
const override;
982 ENGINE_API virtual bool IsTessellationEnabled()
const override;
983 ENGINE_API virtual bool HasSubstrateRoughnessTracking()
const override;
984 ENGINE_API virtual bool IsCompatibleWithLumenCardSharing()
const override;
996 virtual ENGINE_API void PostInitProperties()
override;
1008#if WITH_EDITORONLY_DATA
1011 virtual ENGINE_API void BeginDestroy()
override;
1012 virtual ENGINE_API bool IsReadyForFinishDestroy()
override;
1013 virtual ENGINE_API void FinishDestroy()
override;
1056 ENGINE_API void UpdateOverridableBaseProperties();
1070 bool bBlocking =
false
1080#if WITH_EDITORONLY_DATA
1086#if WITH_EDITORONLY_DATA
1104 ENGINE_API virtual bool HasOverridenBaseProperties()
const;
1122#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1129 UE_DEPRECATED(5.7,
"Please use GetMaterialResource with EShaderPlatform argument and not ERHIFeatureLevel::Type")
1159 ENGINE_API virtual bool IsComplete()
const override;
1162 ENGINE_API virtual bool IsCompiling()
const override;
1166 void StartCacheUniformExpressions()
const;
1167 void FinishCacheUniformExpressions()
const;
1182 bool UpdateParameters();
1206 bool SetScalarParameterByIndexInternal(
int32 ParameterIndex,
float Value);
1247 void PropagateDataToMaterialProxy();
1252 friend class UMaterialEditingLibrary;
1255 friend class FMaterialInstanceParameterUpdateContext;
EBlendableLocation
Definition BlendableInterface.h:15
@ BL_SceneColorAfterTonemapping
Definition BlendableInterface.h:75
@ BeginCacheForCookedPlatformData
@ IsCachedCookedPlatformDataLoaded
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EBlendMode
Definition EngineTypes.h:245
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
bool CompareValueArraysByExpressionGUID(const TArray< T > &InA, const TArray< T > &InB)
Definition MaterialInstance.h:549
EMaterialInstanceClearParameterFlag
Definition MaterialInstance.h:583
EMaterialUsage
Definition MaterialInterface.h:73
TMaterialRecursionGuard< class UMaterialInterface > TMicRecursionGuard
Definition MaterialInterface.h:205
EMaterialGetParameterValueFlags
Definition MaterialParameters.h:260
EMaterialParameterType
Definition MaterialParameters.h:187
EMaterialSetParameterValueFlags
Definition MaterialParameters.h:271
EMaterialShaderPrecompileMode
Definition MaterialShaderPrecompileMode.h:7
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
EPSOPrecachePriority
Definition PipelineStateCache.h:33
EMaterialProperty
Definition SceneTypes.h:148
CORE_API bool IsInParallelGameThread()
Definition ThreadingBase.cpp:207
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
Definition Archive.h:1208
Definition MaterialCompiler.h:109
Definition MaterialInstanceSupport.h:208
Definition MaterialRenderProxy.h:102
Definition MaterialShared.h:3076
Definition MaterialShared.h:1194
Definition MaterialShared.h:1518
Definition MaterialShared.h:3326
Definition NameTypes.h:617
Definition OutputDevice.h:133
Definition UObjectGlobals.h:2492
Definition SecureHash.h:226
Definition EnumAsByte.h:22
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
Definition CurveLinearColorAtlas.h:72
Definition CurveLinearColor.h:29
Definition MaterialFunctionInterface.h:59
Definition MaterialInstance.h:618
Definition MaterialInstance.h:627
class FMaterialInstanceResource * Resource
Definition MaterialInstance.h:811
void SetReentrantFlag(const bool bValue, bool bIsInGameThread=IsInGameThread())
Definition MaterialInstance.h:738
uint8 bLoadedCachedData
Definition MaterialInstance.h:706
TUniquePtr< FMaterialInstanceCachedData > CachedData
Definition MaterialInstance.h:845
TEnumAsByte< EBlendMode > BlendMode
Definition MaterialInstance.h:709
Definition MaterialInterface.h:275
Definition MaterialInterface.h:296
Definition MaterialParameterCollection.h:79
Definition Material.h:432
Definition PhysicalMaterialMask.h:22
Definition PhysicalMaterial.h:104
Definition RuntimeVirtualTexture.h:18
Definition SparseVolumeTexture.h:309
Definition SpecularProfile.h:74
Definition SubsurfaceProfile.h:170
Definition TextureCollection.h:47
Definition Texture.h:1219
@ NullAllowed
Definition Object.h:62
Type
Definition SceneTypes.h:132
@ Num
Definition SceneTypes.h:137
@ MAX
Definition EngineTypes.h:3780
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition EngineTypes.h:3237
Definition EngineTypes.h:3204
Definition MaterialInstance.h:179
bool IsValid() const
Definition MaterialInstance.h:199
static ValueType GetValue(const FDoubleVectorParameterValue &Parameter)
Definition MaterialInstance.h:214
bool operator==(const FDoubleVectorParameterValue &Other) const
Definition MaterialInstance.h:201
void GetValue(FMaterialParameterMetadata &OutResult) const
Definition MaterialInstance.h:216
bool IsOverride() const
Definition MaterialInstance.h:197
bool operator!=(const FDoubleVectorParameterValue &Other) const
Definition MaterialInstance.h:208
FVector4d ValueType
Definition MaterialInstance.h:213
Definition MaterialInstance.h:473
bool IsValid() const
Definition MaterialInstance.h:500
bool operator!=(const FFontParameterValue &Other) const
Definition MaterialInstance.h:510
bool operator==(const FFontParameterValue &Other) const
Definition MaterialInstance.h:502
void GetValue(FMaterialParameterMetadata &OutResult) const
Definition MaterialInstance.h:518
bool IsOverride() const
Definition MaterialInstance.h:498
const UTexture * ValueType
Definition MaterialInstance.h:515
Definition MaterialCachedData.h:199
Definition MaterialInterface.h:209
Definition MaterialInstanceBasePropertyOverrides.h:13
Definition MaterialInstance.h:568
static ENGINE_API const FMaterialInstanceCachedData EmptyData
Definition MaterialInstance.h:88
Definition MaterialLayersFunctions.h:221
Definition MaterialOverrideNanite.h:20
Definition MaterialParameters.h:33
Definition MaterialParameters.h:341
Definition EngineTypes.h:732
Definition MaterialParameters.h:96
Definition MeshUVChannelInfo.h:13
Definition PSOPrecache.h:30
Definition MaterialInstance.h:329
bool IsOverride() const
Definition MaterialInstance.h:346
static ValueType GetValue(const FParameterCollectionParameterValue &Parameter)
Definition MaterialInstance.h:363
bool operator==(const FParameterCollectionParameterValue &Other) const
Definition MaterialInstance.h:350
bool IsValid() const
Definition MaterialInstance.h:348
const UMaterialParameterCollection * ValueType
Definition MaterialInstance.h:362
void GetValue(FMaterialParameterMetadata &OutResult) const
Definition MaterialInstance.h:365
bool operator!=(const FParameterCollectionParameterValue &Other) const
Definition MaterialInstance.h:357
Definition MaterialInstance.h:541
Definition UnrealType.h:6865
Definition ResourceSize.h:31
Definition MaterialInstance.h:377
void GetValue(FMaterialParameterMetadata &OutResult) const
Definition MaterialInstance.h:413
bool IsValid() const
Definition MaterialInstance.h:396
bool IsOverride() const
Definition MaterialInstance.h:394
const URuntimeVirtualTexture * ValueType
Definition MaterialInstance.h:410
static ValueType GetValue(const FRuntimeVirtualTextureParameterValue &Parameter)
Definition MaterialInstance.h:411
bool operator!=(const FRuntimeVirtualTextureParameterValue &Other) const
Definition MaterialInstance.h:405
bool operator==(const FRuntimeVirtualTextureParameterValue &Other) const
Definition MaterialInstance.h:398
Definition MaterialInstance.h:32
FScalarParameterAtlasInstanceData()
Definition MaterialInstance.h:56
bool operator!=(const FScalarParameterAtlasInstanceData &Other) const
Definition MaterialInstance.h:51
Definition MaterialInstance.h:64
void GetValue(FMaterialParameterMetadata &OutResult) const
Definition MaterialInstance.h:111
static ValueType GetValue(const FScalarParameterValue &Parameter)
Definition MaterialInstance.h:109
bool operator!=(const FScalarParameterValue &Other) const
Definition MaterialInstance.h:103
bool operator==(const FScalarParameterValue &Other) const
Definition MaterialInstance.h:96
float ValueType
Definition MaterialInstance.h:108
bool IsValid() const
Definition MaterialInstance.h:94
bool IsOverride() const
Definition MaterialInstance.h:92
Definition MaterialInstance.h:425
static ValueType GetValue(const FSparseVolumeTextureParameterValue &Parameter)
Definition MaterialInstance.h:459
bool operator==(const FSparseVolumeTextureParameterValue &Other) const
Definition MaterialInstance.h:446
bool IsOverride() const
Definition MaterialInstance.h:442
bool IsValid() const
Definition MaterialInstance.h:444
const USparseVolumeTexture * ValueType
Definition MaterialInstance.h:458
void GetValue(FMaterialParameterMetadata &OutResult) const
Definition MaterialInstance.h:461
bool operator!=(const FSparseVolumeTextureParameterValue &Other) const
Definition MaterialInstance.h:453
Definition ShaderCodeLibrary.h:118
Definition StaticParameterSet.h:425
Definition StaticParameterSet.h:390
Definition StaticParameterSet.h:462
Definition MaterialInstance.h:281
void GetValue(FMaterialParameterMetadata &OutResult) const
Definition MaterialInstance.h:317
const UTextureCollection * ValueType
Definition MaterialInstance.h:314
bool IsOverride() const
Definition MaterialInstance.h:298
static ValueType GetValue(const FTextureCollectionParameterValue &Parameter)
Definition MaterialInstance.h:315
bool IsValid() const
Definition MaterialInstance.h:300
bool operator==(const FTextureCollectionParameterValue &Other) const
Definition MaterialInstance.h:302
bool operator!=(const FTextureCollectionParameterValue &Other) const
Definition MaterialInstance.h:309
Definition MaterialInstance.h:228
const UTexture * ValueType
Definition MaterialInstance.h:266
bool operator==(const FTextureParameterValue &Other) const
Definition MaterialInstance.h:254
bool IsOverride() const
Definition MaterialInstance.h:250
static ValueType GetValue(const FTextureParameterValue &Parameter)
Definition MaterialInstance.h:267
void GetValue(FMaterialParameterMetadata &OutResult) const
Definition MaterialInstance.h:269
bool IsValid() const
Definition MaterialInstance.h:252
bool operator!=(const FTextureParameterValue &Other) const
Definition MaterialInstance.h:261
Definition MaterialInterface.h:247
Definition MaterialInstance.h:529
Definition MaterialInstance.h:126
bool operator!=(const FVectorParameterValue &Other) const
Definition MaterialInstance.h:159
bool IsOverride() const
Definition MaterialInstance.h:148
bool IsValid() const
Definition MaterialInstance.h:150
bool operator==(const FVectorParameterValue &Other) const
Definition MaterialInstance.h:152
FLinearColor ValueType
Definition MaterialInstance.h:164
static ValueType GetValue(const FVectorParameterValue &Parameter)
Definition MaterialInstance.h:165
void GetValue(FMaterialParameterMetadata &OutResult) const
Definition MaterialInstance.h:167
Definition MaterialRecursionGuard.h:11
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition SoftObjectPtr.h:174
Definition ShaderTypes.h:368