wined3d: Implement EXP and EXP2 fog in GLSL.
This commit is contained in:
parent
693d9ded47
commit
66778ed9ec
|
@ -3872,10 +3872,16 @@ static GLuint shader_glsl_generate_pshader(IWineD3DPixelShader *iface, SHADER_BU
|
||||||
shader_addline(buffer, "%s.xyz = mix(gl_Fog.color.xyz, %s.xyz, Fog);\n", fragcolor, fragcolor);
|
shader_addline(buffer, "%s.xyz = mix(gl_Fog.color.xyz, %s.xyz, Fog);\n", fragcolor, fragcolor);
|
||||||
break;
|
break;
|
||||||
case FOG_EXP:
|
case FOG_EXP:
|
||||||
FIXME("Implement EXP fog in glsl\n");
|
/* Fog = e^(-gl_Fog.density * gl_FogFragCoord) */
|
||||||
|
shader_addline(buffer, "float Fog = exp(-gl_Fog.density * gl_FogFragCoord);\n");
|
||||||
|
shader_addline(buffer, "Fog = clamp(Fog, 0.0, 1.0);");
|
||||||
|
shader_addline(buffer, "%s.xyz = mix(gl_Fog.color.xyz, %s.xyz, Fog);\n", fragcolor, fragcolor);
|
||||||
break;
|
break;
|
||||||
case FOG_EXP2:
|
case FOG_EXP2:
|
||||||
FIXME("Implement EXP2 fog in glsl\n");
|
/* Fog = e^(-(gl_Fog.density * gl_FogFragCoord)^2) */
|
||||||
|
shader_addline(buffer, "float Fog = exp(-gl_Fog.density * gl_Fog.density * gl_FogFragCoord * gl_FogFragCoord);\n");
|
||||||
|
shader_addline(buffer, "Fog = clamp(Fog, 0.0, 1.0);");
|
||||||
|
shader_addline(buffer, "%s.xyz = mix(gl_Fog.color.xyz, %s.xyz, Fog);\n", fragcolor, fragcolor);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue