Better Fog Shader
This commit is contained in:
parent
b005106b44
commit
a622858a18
@ -22,10 +22,6 @@ void main(void) {
|
|||||||
if (u_has_texture) {
|
if (u_has_texture) {
|
||||||
gl_FragColor *= texture2D(u_texture_unit, v_texture_pos.xy);
|
gl_FragColor *= texture2D(u_texture_unit, v_texture_pos.xy);
|
||||||
}
|
}
|
||||||
// Alpha Test
|
|
||||||
if (u_alpha_test && gl_FragColor.a <= 0.1) {
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
// Fog
|
// Fog
|
||||||
if (u_fog) {
|
if (u_fog) {
|
||||||
float fog_factor;
|
float fog_factor;
|
||||||
@ -34,6 +30,11 @@ void main(void) {
|
|||||||
} else {
|
} else {
|
||||||
fog_factor = exp(-u_fog_start * length(v_fog_eye_position));
|
fog_factor = exp(-u_fog_start * length(v_fog_eye_position));
|
||||||
}
|
}
|
||||||
gl_FragColor = mix(gl_FragColor, u_fog_color, 1.0 - clamp(fog_factor, 0.0, 1.0));
|
fog_factor = clamp(fog_factor, 0.0, 1.0);
|
||||||
|
gl_FragColor.rgb = mix(gl_FragColor, u_fog_color, 1.0 - fog_factor).rgb;
|
||||||
|
}
|
||||||
|
// Alpha Test
|
||||||
|
if (u_alpha_test && gl_FragColor.a <= 0.1) {
|
||||||
|
discard;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user