From 0f943e5810e408444ce08023de090bdbaab29705 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 20 Oct 2025 18:42:36 +0200 Subject: [PATCH] Restore BlendOperation in shadow rendering was removed in d834c45d1c1d7e43513481fea0249821963e1dfc --- src/client/shadows/dynamicshadowsrender.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/client/shadows/dynamicshadowsrender.cpp b/src/client/shadows/dynamicshadowsrender.cpp index 1dee2fcb1..e2c032e20 100644 --- a/src/client/shadows/dynamicshadowsrender.cpp +++ b/src/client/shadows/dynamicshadowsrender.cpp @@ -433,6 +433,7 @@ void ShadowRenderer::renderShadowMap(video::ITexture *target, material.MaterialType = depth_shader_trans; } else { material.MaterialType = depth_shader; + material.BlendOperation = video::EBO_MIN; } m_driver->setTransform(video::ETS_WORLD, @@ -459,8 +460,10 @@ void ShadowRenderer::renderShadowObjects( u32 n_node_materials = shadow_node.node->getMaterialCount(); std::vector BufferMaterialList; std::vector> BufferMaterialCullingList; + std::vector BufferBlendOperationList; BufferMaterialList.reserve(n_node_materials); BufferMaterialCullingList.reserve(n_node_materials); + BufferBlendOperationList.reserve(n_node_materials); // backup materialtype for each material // (aka shader) @@ -475,6 +478,8 @@ void ShadowRenderer::renderShadowObjects( (bool)current_mat.BackfaceCulling, (bool)current_mat.FrontfaceCulling); current_mat.BackfaceCulling = true; current_mat.FrontfaceCulling = false; + + BufferBlendOperationList.push_back(current_mat.BlendOperation); } m_driver->setTransform(video::ETS_WORLD, @@ -490,6 +495,8 @@ void ShadowRenderer::renderShadowObjects( current_mat.BackfaceCulling = BufferMaterialCullingList[m].first; current_mat.FrontfaceCulling = BufferMaterialCullingList[m].second; + + current_mat.BlendOperation = BufferBlendOperationList[m]; } } // end for caster shadow nodes