From ea560172f79240a9bbbb41918941d0651c06d557 Mon Sep 17 00:00:00 2001 From: nashmuhandes Date: Thu, 14 Oct 2021 17:35:44 +0800 Subject: [PATCH] Add light probes to wall decals --- src/rendering/hwrenderer/scene/hw_decal.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/rendering/hwrenderer/scene/hw_decal.cpp b/src/rendering/hwrenderer/scene/hw_decal.cpp index a2ee40d70..980fc52a5 100644 --- a/src/rendering/hwrenderer/scene/hw_decal.cpp +++ b/src/rendering/hwrenderer/scene/hw_decal.cpp @@ -61,6 +61,19 @@ void HWDecal::DrawDecal(HWDrawInfo *di, FRenderState &state) state.SetObjectColor(DecalColor); state.SetLightIndex(dynlightindex); + + // add light probe contribution + if (di->Level->LightProbes.Size() > 0) + { + double x, y; + decal->GetXY(decal->Side, x, y); + LightProbe *probe = FindLightProbe(di->Level, x, y, decal->GetRealZ(decal->Side) * 0.5); + if (probe) + { + state.SetDynLight(probe->Red, probe->Green, probe->Blue); + } + } + state.SetTextureMode(decal->RenderStyle); state.SetRenderStyle(decal->RenderStyle); state.SetMaterial(texture, UF_Sprite, 0, CLAMP_XY, decal->Translation, -1);