diff --git a/package/Shaders/Water.hlsl b/package/Shaders/Water.hlsl index a2c7895bed..8e98ca3dc5 100644 --- a/package/Shaders/Water.hlsl +++ b/package/Shaders/Water.hlsl @@ -1287,7 +1287,7 @@ PS_OUTPUT main(PS_INPUT input) float fogDistanceFactor = input.FogParam.w; float3 fogColor = Color::Fog(input.FogParam.xyz); # else - float fogDistanceFactor = min(FogFarColor.w, pow(saturate(input.WPosition.w * FogParam.y - FogParam.x), FresnelRI.y)); + float fogDistanceFactor = min(FogFarColor.w, pow(saturate(length(input.WPosition.xyz) * FogParam.y - FogParam.x), FresnelRI.y)); float3 fogColor = Color::Fog(lerp(FogNearColor.xyz, FogFarColor.xyz, fogDistanceFactor)); # endif @@ -1315,7 +1315,7 @@ float3 finalColor = lerp(finalColorPreFog, fogColor * PosAdjust[eyeIndex].w, Col float fogDistanceFactor = input.FogParam.w; float3 preFogColor = Color::Fog(input.FogParam.xyz); # else - float fogDistanceFactor = min(FogFarColor.w, pow(saturate(input.WPosition.w * FogParam.y - FogParam.x), FresnelRI.y)); + float fogDistanceFactor = min(FogFarColor.w, pow(saturate(length(input.WPosition.xyz) * FogParam.y - FogParam.x), FresnelRI.y)); float3 preFogColor = Color::Fog(lerp(FogNearColor.xyz, FogFarColor.xyz, fogDistanceFactor)); # endif