From 5fb9cf3be190965f53898a1157d7c7b908bdca8e Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Wed, 4 Mar 2026 16:55:45 +0100 Subject: [PATCH] Fix shadows from wireframe materials --- Source/Engine/Renderer/RenderList.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Engine/Renderer/RenderList.cpp b/Source/Engine/Renderer/RenderList.cpp index 087398e49..b14fc8b6d 100644 --- a/Source/Engine/Renderer/RenderList.cpp +++ b/Source/Engine/Renderer/RenderList.cpp @@ -1175,11 +1175,12 @@ bool SurfaceDrawCallHandler::CanBatch(const DrawCall& a, const DrawCall& b, Draw // Batch simple materials during depth-only drawing (when using default vertex shader and no pixel shader) if (pass == DrawPass::Depth) { + // TODO: cache those inside material const MaterialInfo& aInfo = a.Material->GetInfo(); const MaterialInfo& bInfo = b.Material->GetInfo(); constexpr MaterialUsageFlags complexUsageFlags = MaterialUsageFlags::UseMask | MaterialUsageFlags::UsePositionOffset | MaterialUsageFlags::UseDisplacement; - const bool aIsSimple = EnumHasNoneFlags(aInfo.UsageFlags, complexUsageFlags) && aInfo.BlendMode == MaterialBlendMode::Opaque; - const bool bIsSimple = EnumHasNoneFlags(bInfo.UsageFlags, complexUsageFlags) && bInfo.BlendMode == MaterialBlendMode::Opaque; + const bool aIsSimple = EnumHasNoneFlags(aInfo.UsageFlags, complexUsageFlags) && aInfo.BlendMode == MaterialBlendMode::Opaque && EnumHasNoneFlags(aInfo.FeaturesFlags, MaterialFeaturesFlags::Wireframe); + const bool bIsSimple = EnumHasNoneFlags(bInfo.UsageFlags, complexUsageFlags) && bInfo.BlendMode == MaterialBlendMode::Opaque && EnumHasNoneFlags(bInfo.FeaturesFlags, MaterialFeaturesFlags::Wireframe); return aIsSimple && bIsSimple; } return false;