diff --git a/package/Shaders/Water.hlsl b/package/Shaders/Water.hlsl index 70b5f8a4cd..5e0c0f476a 100644 --- a/package/Shaders/Water.hlsl +++ b/package/Shaders/Water.hlsl @@ -815,7 +815,7 @@ WaterNormalData GetWaterNormal(PS_INPUT input, float distanceFactor, float norma float4 raindropInfo = float4(0, 0, 1, 0); float maxRainDropDistance = SharedData::wetnessEffectsSettings.RaindropFxRange * SharedData::wetnessEffectsSettings.RaindropFxRange * 3; - float rainDropDistance = dot(input.WPosition, input.WPosition); + float rainDropDistance = dot(input.WPosition.xyz, input.WPosition.xyz); float distanceFadeout = saturate((1 - saturate(rainDropDistance / maxRainDropDistance)) * 3); if (finalNormal.z > 0 && SharedData::wetnessEffectsSettings.Raining > 0.0f && SharedData::wetnessEffectsSettings.EnableRaindropFx && (rainDropDistance < maxRainDropDistance) && wetnessOcclusion > 0.05) { @@ -1133,7 +1133,7 @@ PS_OUTPUT main(PS_INPUT input) # if defined(SIMPLE) || defined(UNDERWATER) || defined(LOD) || defined(SPECULAR) float3 viewDirection = normalize(input.WPosition.xyz); - float distanceFactor = saturate(lerp(FrameBuffer::FrameParams.w, 1, (input.WPosition.w - 8192) / (WaterParams.x - 8192))); + float distanceFactor = saturate(lerp(FrameBuffer::FrameParams.w, 1, (length(input.WPosition.xyz) - 8192) / (WaterParams.x - 8192))); float4 distanceMul = saturate(lerp(VarAmounts.z, 1, -(distanceFactor - 1))).xxxx; float distanceBlendFactor = distanceFactor; # if defined(UNIFIED_WATER)