From 5e06378e315f1ffc9cb6445c4c21e60739b7e637 Mon Sep 17 00:00:00 2001 From: stm <14291421+stephanmeesters@users.noreply.github.com> Date: Wed, 27 May 2026 21:07:27 +0200 Subject: [PATCH 1/2] bugfix(water): Fix river visuals in black shroud --- .../Source/W3DDevice/GameClient/Water/W3DWater.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp index 564cc008e42..9df76b112e6 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp @@ -179,7 +179,7 @@ static Int getRiverVertexDiffuse(W3DShroud *shroud, Real x, Real y, Real shadeR, (Int)(shadeR * shroudScale), (Int)(shadeG * shroudScale), (Int)(shadeB * shroudScale), - (diffuse >> 24) & 0xff); + ((diffuse >> 24) & 0xff) * shroudScale); } void doSkyBoxSet(Bool startDraw) From 5e8819846fa6d904e480595d6c8637b4e6a2568e Mon Sep 17 00:00:00 2001 From: stm <14291421+stephanmeesters@users.noreply.github.com> Date: Wed, 27 May 2026 22:48:50 +0200 Subject: [PATCH 2/2] Adjust river water shader --- .../Source/W3DDevice/GameClient/Water/W3DWater.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp index 9df76b112e6..f3f33aac10e 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Water/W3DWater.cpp @@ -926,9 +926,11 @@ void WaterRenderObjClass::ReAcquireResources() tex t1 \n\ tex t2 \n\ tex t3\n\ - mul r0,v0,t0 ; blend vertex color into t0. \n\ + mul r0.rgb, v0, t0 ; blend vertex color into t0. \n\ + mov r0.a, t0 ; keep vertex alpha from fading the base water. \n\ mul r1, t1, t2 ; mul\n\ - add r0.rgb, r0, t3\n\ + add r1.rgb, r1, t3\n\ + mul r1.rgb, r1, v0.a\n\ +mul r0.a, r0, t3\n\ add r0.rgb, r0, r1\n"; hr = D3DXAssembleShader( shader, strlen(shader), 0, nullptr, &compiledShader, nullptr);