435#if WITH_EDITORONLY_DATA
445 UPROPERTY(EditAnywhere, Category=PhysicalMaterial)
449 UPROPERTY(EditAnywhere, Category = PhysicalMaterial)
453 UPROPERTY(EditAnywhere, Category = PhysicalMaterialMask)
464 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=
Material, AssetRegistrySearchable)
468 UPROPERTY(BlueprintReadOnly, EditAnywhere, Category=
Material, AssetRegistrySearchable)
471 UPROPERTY(meta = (DeprecatedProperty, DeprecationMessage =
"No longer used."))
478 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=
Material, AdvancedDisplay, meta=(DisplayName =
"Decal Response (DBuffer)"), AssetRegistrySearchable)
485 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
Nanite, meta = (DisplayName =
"Displacement", EditCondition=
"bEnableTessellation", DisplayAfter=
"bEnableTessellation"))
488 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
Nanite, meta = (DisplayName =
"Displacement Fade", EditCondition=
"bEnableDisplacementFade", DisplayAfter=
"DisplacementScaling"))
499 uint8 bCastDynamicShadowAsMasked : 1;
505#if WITH_EDITORONLY_DATA
524 uint8 bEnableSeparateTranslucency_DEPRECATED : 1;
560 uint8 bAllowNegativeEmissiveColor : 1;
573 UPROPERTY(EditAnywhere, Category=
Nanite, meta=(EditCondition="bEnableTessellation", InlineEditConditionToggle))
584 UPROPERTY(EditAnywhere, AssetRegistrySearchable, Category=
Translucency, meta=(DisplayName = "Lighting Mode"))
589 uint8 bEnableMobileSeparateTranslucency : 1;
592 UPROPERTY(EditAnywhere, Category =
Material, AdvancedDisplay, meta = (ClampMin = 0))
600 float TranslucencyDirectionalLightingIntensity;
604 float TranslucentShadowDensityScale;
611 float TranslucentSelfShadowDensityScale;
615 float TranslucentSelfShadowSecondDensityScale;
619 float TranslucentSelfShadowSecondOpacity;
627 float TranslucentBackscatteringExponent;
638 float TranslucentShadowStartOffset;
650 uint8 bGenerateSphericalParticleNormals : 1;
663 uint8 bUseEmissiveForDynamicAreaLighting : 1;
672 uint8 bUsedAsSpecialEngineMaterial : 1;
678 uint8 bSubstrateRoughnessTracking : 1;
684 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
691 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
692 uint8 bUsedWithEditorCompositing : 1;
698 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
705 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
712 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
720 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
723 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
726 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
727 uint8 bUsedWithNiagaraMeshParticles : 1;
729 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
736 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
743 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
750 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
757 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
758 uint8 bUsedWithInstancedStaticMeshes : 1;
764 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
765 uint8 bUsedWithGeometryCollections : 1;
778 uint8 bRootNodeOverridesDefaultDistortion_DEPRECATED : 1;
784 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage)
791 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
798 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
805 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
812 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
813 uint32 bUsedWithVirtualHeightfieldMesh : 1;
819 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
826 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
833 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
840 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage)
841 uint32 bUsedWithHeterogeneousVolumes : 1;
847 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Usage, AdvancedDisplay)
864 uint8 bForceCompatibleWithLightFunctionAtlas : 1;
870 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Usage, AdvancedDisplay)
871 uint8 bAutomaticallySetUsageInEditor : 1;
884 uint8 bUseFullPrecision_DEPRECATED : 1;
897 uint8 bUseLightmapDirectionality : 1;
905 uint32 bForwardRenderUsePreintegratedGFForSimpleIBL : 1;
917 uint8 bForwardBlendsSkyLightCubemaps : 1;
921 uint8 bUsePlanarForwardReflections : 1;
925 uint8 bNormalCurvatureToRoughness : 1;
929 uint8 AllowTranslucentCustomDepthWrites : 1;
933 uint8 bAllowFrontLayerTranslucency : 1;
937 uint8 bCompatibleWithLumenCardSharing : 1;
945 uint8 bAllowTranslucentLocalLightShadow : 1;
948 UPROPERTY(EditAnywhere, Category =
Translucency, AdvancedDisplay, meta = (DisplayName = "
Local Light Shadow Quality", UIMin = "0", UIMax = "1", ClampMin = "0", ClampMax = "1", SliderExponent = 1.0))
949 float TranslucentLocalLightShadowQuality = 0;
953 float TranslucentDirectionalLightShadowQuality = 0;
965 uint8 bAllowVariableRateShading : 1;
967#if WITH_EDITORONLY_DATA
983 uint8 bCanMaskedBeAssumedOpaque : 1;
995 uint8 bIsFunctionPreviewMaterial : 1;
1037 uint8 bIsTranslucencyVelocityFromDepth : 1;
1041 uint8 bAllowDevelopmentShaderCompile : 1;
1045 uint8 bIsMaterialEditorStatsMaterial : 1;
1054 uint8 bRelaxRuntimeVirtualTextureRestrictions : 1;
1055 uint8 bRelaxRuntimeVirtualTextureRestrictionsForOldContent : 1;
1058 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=PostProcessMaterial, meta=(DisplayName = "
Blendable Location"))
1062 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PostProcessMaterial, meta = (DisplayName = "
Output Alpha"))
1066 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PostProcessMaterial, meta = (DisplayName = "
User Scene Texture"))
1070 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PostProcessMaterial, meta = (DisplayName = "
User Texture Divisor"))
1074 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PostProcessMaterial, meta = (DisplayName = "Resolution
Relative To
Input"))
1083 UPROPERTY(EditAnywhere, Category = PostProcessMaterial)
1092 UPROPERTY(EditAnywhere, Category = PostProcessMaterial)
1099 UPROPERTY(EditAnywhere, Category = PostProcessMaterial, AdvancedDisplay)
1102 UPROPERTY(EditAnywhere, Category = PostProcessMaterial, AdvancedDisplay, meta = (EditCondition = "bEnableStencilTest"))
1105 UPROPERTY(EditAnywhere, Category = PostProcessMaterial, AdvancedDisplay, meta = (EditCondition = "bEnableStencilTest"))
1111 UPROPERTY(EditAnywhere, Category = PostProcessMaterial, AdvancedDisplay, meta = (EditCondition = "
false"))
1118 UPROPERTY(EditAnywhere, Category=Refraction)
1122 UPROPERTY(EditAnywhere, Category=Refraction)
1126 UPROPERTY(EditAnywhere, Category=PixelDepthOffset)
1134 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PostProcessMaterial, meta = (DisplayName = "Is
Blendable"))
1148 UPROPERTY(EditAnywhere, Category=Refraction)
1156 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = WorldPositionOffset, meta = (ClampMin = 0.0f))
1157 float MaxWorldPositionOffsetDisplacement;
1163 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = WorldPositionOffset)
1164 bool bAlwaysEvaluateWorldPositionOffset;
1183#if WITH_EDITORONLY_DATA
1210 mutable bool bCachingUniformExpressions =
false;
1212#if WITH_EDITORONLY_DATA
1217#if WITH_EDITORONLY_DATA
1254 ENGINE_API virtual bool UpdateLightmassTextureTracking()
override;
1263 ENGINE_API virtual float GetOpacityMaskClipValue()
const override;
1264 ENGINE_API virtual bool GetCastDynamicShadowAsMasked()
const override;
1267 ENGINE_API virtual bool IsShadingModelFromMaterialExpression()
const override;
1268 ENGINE_API virtual bool IsTwoSided()
const override;
1269 ENGINE_API virtual bool IsThinSurface()
const override;
1270 ENGINE_API virtual bool IsDitheredLODTransition()
const override;
1271 ENGINE_API virtual bool IsTranslucencyWritingCustomDepth()
const override;
1272 ENGINE_API virtual bool IsTranslucencyWritingVelocity()
const override;
1273 ENGINE_API virtual bool IsTranslucencyVelocityFromDepth()
const override;
1274 ENGINE_API virtual bool IsTranslucencyWritingFrontLayerTransparency()
const override;
1275 ENGINE_API virtual bool IsMasked()
const override;
1276 ENGINE_API virtual bool IsDeferredDecal()
const override;
1277 ENGINE_API virtual bool IsUIMaterial()
const;
1278 ENGINE_API virtual bool IsPostProcessMaterial()
const;
1279 ENGINE_API bool IsPostProcessMaterialOutputingAlpha()
const;
1282 ENGINE_API virtual uint32 NumSubsurfaceProfileRoot_Internal()
const override;
1288 ENGINE_API virtual bool CastsRayTracedShadows()
const override;
1289 ENGINE_API virtual bool IsTessellationEnabled()
const override;
1291 ENGINE_API virtual bool IsDisplacementFadeEnabled()
const override;
1293 ENGINE_API virtual float GetMaxWorldPositionOffsetDisplacement()
const override;
1294 ENGINE_API virtual bool ShouldAlwaysEvaluateWorldPositionOffset()
const override;
1295 ENGINE_API virtual bool HasPixelAnimation()
const override;
1296 ENGINE_API virtual bool HasVertexInterpolator()
const override;
1297 ENGINE_API virtual bool HasCustomizedUVs()
const override;
1298 ENGINE_API virtual bool WritesToRuntimeVirtualTexture()
const override;
1299 ENGINE_API virtual bool HasMeshPaintTexture()
const override;
1300 ENGINE_API virtual bool HasCustomPrimitiveData()
const override;
1301 ENGINE_API virtual bool HasSubstrateRoughnessTracking()
const override;
1302 ENGINE_API virtual bool IsCompatibleWithLumenCardSharing()
const override;
1304 ENGINE_API bool IsMobileSeparateTranslucencyEnabled()
const;
1313#if WITH_EDITORONLY_DATA
1344 ENGINE_API virtual void PostInitProperties()
override;
1348#if WITH_EDITORONLY_DATA
1363 ENGINE_API virtual void BeginDestroy()
override;
1364 ENGINE_API virtual bool IsReadyForFinishDestroy()
override;
1365 ENGINE_API virtual void FinishDestroy()
override;
1368 ENGINE_API virtual bool CanBeClusterRoot()
const override;
1405 UE_DEPRECATED(5.7,
"Please use IsCompilingOrHadCompileError with EShaderPlatform argument and not ERHIFeatureLevel::Type")
1411#if WITH_EDITORONLY_DATA
1434 void StartCacheUniformExpressions()
const;
1435 void FinishCacheUniformExpressions()
const;
1437#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1473 void SetInitialValues();
1476 void MarkUsageFlagDirty(
EMaterialUsage Usage,
bool CurrentValue,
bool NewValue);
1479 void SetUsageByFlag(
const EMaterialUsage Usage,
const bool NewValue);
1482 void PropagateDataToMaterialProxy();
1531 ENGINE_API virtual bool IsComplete()
const override;
1534 ENGINE_API virtual bool IsCompiling()
const override;
1537#if WITH_EDITORONLY_DATA
1545#if WITH_EDITORONLY_DATA
1549 template<
typename ExpressionType>
1560 template<
typename ExpressionType>
1583 template<
typename ExpressionType>
1620 template<
typename ExpressionType>
1696 const ITargetPlatform* TargetPlatform =
nullptr,
bool bBlocking =
false);
1846#if WITH_EDITORONLY_DATA
1941 ENGINE_API bool HasBaseColorConnected()
const;
1942 ENGINE_API bool HasRoughnessConnected()
const;
1943 ENGINE_API bool HasAmbientOcclusionConnected()
const;
1945 ENGINE_API bool HasSpecularConnected()
const;
1946 ENGINE_API bool HasMetallicConnected()
const;
1947 ENGINE_API bool HasEmissiveColorConnected()
const;
1948 ENGINE_API bool HasAnisotropyConnected()
const;
1949 ENGINE_API bool HasSurfaceThicknessConnected()
const;
1950 ENGINE_API bool HasSubstrateFrontMaterialConnected()
const;
1951 ENGINE_API bool HasVertexPositionOffsetConnected()
const;
1952 ENGINE_API bool HasDisplacementConnected()
const;
1953 ENGINE_API bool HasPixelDepthOffsetConnected()
const;
1971#if WITH_EDITORONLY_DATA
2002 ENGINE_API TArrayView<const TObjectPtr<UPhysicalMaterial>> GetRenderTracePhysicalMaterialOutputs() const;
2023 friend class FLightmassMaterialProxy;
2027 friend class FMaterialEditor;
2028 friend class FMaterialDetailCustomization;
2033#if WITH_EDITORONLY_DATA
2035 template<
typename ExpressionType>
2084#if WITH_EDITORONLY_DATA