Merge remote-tracking branch 'origin/1.12' into 1.13

This commit is contained in:
2026-04-25 10:31:41 +02:00
2 changed files with 17 additions and 10 deletions
+1 -10
View File
@@ -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(ShowBlendMode)), EditorDisplay("General"), Tooltip("Determinates how materials' color should be blended with the background colors.")]
[EditorOrder(30), VisibleIf(nameof(IsStandard)), EditorDisplay("General"), Tooltip("Determinates how materials' color should be blended with the background colors.")]
public MaterialBlendMode BlendMode;
// Rendering
@@ -145,7 +145,6 @@ 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;
@@ -188,14 +187,6 @@ 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);
}
}
/// <summary>
@@ -150,6 +150,21 @@ 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");
@@ -170,6 +185,7 @@ bool TerrainMaterialShader::Load()
// Depth Pass
psDesc.CullMode = CullMode::TwoSided;
psDesc.BlendMode = BlendingMode::Opaque;
psDesc.DepthClipEnable = false;
psDesc.DepthWriteEnable = true;
psDesc.DepthEnable = true;