Disable Mud, Dirt, Water FX On Screen

The mud, dirt & water effects that splatter your screen / view are supposed to enhance the "reality" of the situation. However, what they usually do is just block and blur up the view. Here's how to disable them to get a clean view:
 * Go to
 * (Steam Version):
 * (Retail Version) (HD):
 * Make a copy of the file, and rename the original to whatever helps you identify it as the original (eg: sfx.phl.ORIG)
 * Right-click on your copy, and "Open" with a text editor (eg: Notepad)
 * Find the code below in your file (it's the first 3 functions):

float4 ph_screenwater (in VS_SfxWaterOut i) : COLOR {    float seuil = 1.f - i.diffuse.a;     float Bump = 1.f;     half alphaNormal = 1; half3x3 mTexSpace; mTexSpace[0] = half3(i.TexSpace.axe0.xyz); mTexSpace[1] = half3(i.TexSpace.axe1.xyz); mTexSpace[2] = half3(i.TexSpace.axe2.xyz); #ifdef bCompression half3   tOrgNormal = h4tex2D( sNormal, i.uv).wyz*2 - 1; tOrgNormal.z=sqrt(1-(tOrgNormal.x*tOrgNormal.x+tOrgNormal.y*tOrgNormal.y)); alphaNormal = h4tex2D( sNormal, i.uv).z;    #else half4   tOrgNormal = h4tex2D( sNormal, i.uv); tOrgNormal.xyz = tOrgNormal.xyz*2 - 1; #endif half3   normal = mul(tOrgNormal.xyz, mTexSpace); normal = Bump*normalize(normal); half3 normal = float3(0,0,1); //return float4(alphaNormal.xxx,1); float diffa = alphaNormal;//tex2D(sDiffuse,i.uv).r;    if (diffa < seuil) diffa = 0; else diffa = 1; // Refraction float2 uvscreen = i.uvscreen.xy * 0.5 + 0.5; uvscreen.y = 1-uvscreen.y;    uvscreen += normal.xy * 0.25f * diffa; float4 refraction = tex2D( sRenderTarget, uvscreen ); refraction.rgb = UnpackHDRSample( refraction ); float d = dot(normal, float3(0,-1,0)); float lightingImportance = 0.1; refraction.rgb*= saturate((1-lightingImportance) + lightingImportance * d); return PackHDRSample( refraction.rgb, diffa);//color.r*i.diffuse.a); } float4 ph_screendirt (in VS_SfxOut i) : COLOR {    float4    color=tex2D(sDiffuse,float2(i.uv.x, i.uv.y)).rgba;     float3 diff = color.aaa;     diff *= i.diffuse.rgb;     float alphaVal;     if (i.diffuse.a <= 1)         alphaVal = lerp(0, color.r, i.diffuse.a );     else         alphaVal = lerp(color.r, color.g, i.diffuse.a-1 );     return PackHDRSample( diff, alphaVal); } float4 ph_screenmud (in VS_SfxOut i) : COLOR {     float4    color=i.diffuse.rgba*tex2D(sDiffuse,i.uv).rgba;     color.rgb*=2;     return PackHDRSample( color.rgb, color.a); }
 * 1) ifdef bNormal
 * 1) else
 * 1) endif


 * Overwrite / Replace them with the following:

float4 ph_screenwater (in VS_SfxWaterOut i) : COLOR { 	return 0; } float4 ph_screendirt (in VS_SfxOut i) : COLOR { 	return 0; } float4 ph_screenmud (in VS_SfxOut i) : COLOR { 	return 0; }


 * Save the file
 * Rename it to

No more mud or water slung on your screen, and the screen border will no longer cake in dirt. You will still have a vignette (black fading) around the borders. So far, there is no way to get rid of that. (The "fx.phl" file has code for vignetting, but it doesn't do anything.) Also, during "storm" races (tornado, dust storm, etc), the screen will still auto-cake in a dirt border. Not sure how to prevent that yet.