diff --git a/Source/Editor/Windows/Assets/MaterialWindow.cs b/Source/Editor/Windows/Assets/MaterialWindow.cs index 934cd6594..b051542a1 100644 --- a/Source/Editor/Windows/Assets/MaterialWindow.cs +++ b/Source/Editor/Windows/Assets/MaterialWindow.cs @@ -57,7 +57,7 @@ namespace FlaxEditor.Windows.Assets [EditorOrder(20), VisibleIf(nameof(IsStandard)), EditorDisplay("General"), Tooltip("Defines how material inputs and properties are combined to result the final surface color.")] public MaterialShadingModel ShadingModel; - [EditorOrder(30), VisibleIf(nameof(IsStandard)), EditorDisplay("General"), Tooltip("Determinates how materials' color should be blended with the background colors.")] + [EditorOrder(30), VisibleIf(nameof(ShowBlendMode)), EditorDisplay("General"), Tooltip("Determinates how materials' color should be blended with the background colors.")] public MaterialBlendMode BlendMode; // Rendering @@ -145,6 +145,7 @@ namespace FlaxEditor.Windows.Assets // Visibility conditionals + private bool ShowBlendMode => Domain != MaterialDomain.Terrain; private bool IsPostProcess => Domain == MaterialDomain.PostProcess; private bool IsDecal => Domain == MaterialDomain.Decal; private bool IsGUI => Domain == MaterialDomain.GUI; @@ -187,6 +188,14 @@ namespace FlaxEditor.Windows.Assets // Link Window = window; + + // [Deprecated in 1.12] + // Fix old terrain materials to go back into opaque + if (Domain == MaterialDomain.Terrain && BlendMode != MaterialBlendMode.Opaque) + { + BlendMode = MaterialBlendMode.Opaque; + FlaxEngine.Scripting.InvokeOnUpdate(Window.MarkAsEdited); + } } /// diff --git a/Source/Engine/Graphics/Materials/MaterialShaderFeatures.h b/Source/Engine/Graphics/Materials/MaterialShaderFeatures.h index f03266f19..6cfb28e88 100644 --- a/Source/Engine/Graphics/Materials/MaterialShaderFeatures.h +++ b/Source/Engine/Graphics/Materials/MaterialShaderFeatures.h @@ -3,7 +3,6 @@ #pragma once #include "MaterialShader.h" -#include "Engine/Core/Math/Rectangle.h" #include "Engine/Core/Types/Span.h" #include "Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.h" #include "Engine/Renderer/GlobalSignDistanceFieldPass.h" diff --git a/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp b/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp index bb0796234..4db4acda1 100644 --- a/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp +++ b/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp @@ -150,21 +150,6 @@ bool TerrainMaterialShader::Load() } #endif - // Support blending but then use only emissive channel - switch (_info.BlendMode) - { - case MaterialBlendMode::Transparent: - psDesc.BlendMode = BlendingMode::AlphaBlend; - break; - case MaterialBlendMode::Additive: - psDesc.BlendMode = BlendingMode::Additive; - break; - case MaterialBlendMode::Multiply: - psDesc.BlendMode = BlendingMode::Multiply; - break; - default: ; - } - // GBuffer Pass psDesc.VS = _shader->GetVS("VS"); psDesc.PS = _shader->GetPS("PS_GBuffer"); @@ -185,7 +170,6 @@ bool TerrainMaterialShader::Load() // Depth Pass psDesc.CullMode = CullMode::TwoSided; - psDesc.BlendMode = BlendingMode::Opaque; psDesc.DepthClipEnable = false; psDesc.DepthWriteEnable = true; psDesc.DepthEnable = true;