FTEQW
Documentation of the FTE engine source tree.
fog.h
Go to the documentation of this file.
1#ifdef FRAGMENT_SHADER
2 #define w_fogcolour w_fogcolours.rgb
3 #define w_fogalpha w_fogcolours.a
4
5 vec3 fog3(in vec3 regularcolour)
6 {
7 if (!FOG)
8 return regularcolour;
9 float z = w_fogdensity * gl_FragCoord.z / gl_FragCoord.w;
10 z = max(0.0,z-w_fogdepthbias);
11 if (cvar_r_fog_exp2)
12 z *= z;
13 float fac = exp2(-(z * 1.442695));
14 fac = (1.0-w_fogalpha) + (clamp(fac, 0.0, 1.0)*w_fogalpha);
15 return mix(w_fogcolour, regularcolour, fac);
16 }
17 vec3 fog3additive(in vec3 regularcolour)
18 {
19 if (!FOG)
20 return regularcolour;
21 float z = w_fogdensity * gl_FragCoord.z / gl_FragCoord.w;
22 z = max(0.0,z-w_fogdepthbias);
23 if (cvar_r_fog_exp2)
24 z *= z;
25 float fac = exp2(-(z * 1.442695));
26 fac = (1.0-w_fogalpha) + (clamp(fac, 0.0, 1.0)*w_fogalpha);
27 return regularcolour * fac;
28 }
29 vec4 fog4(in vec4 regularcolour)
30 {
31 if (!FOG)
32 return regularcolour;
33 return vec4(fog3(regularcolour.rgb), 1.0) * regularcolour.a;
34 }
35 vec4 fog4additive(in vec4 regularcolour)
36 {
37 if (!FOG)
38 return regularcolour;
39 float z = w_fogdensity * gl_FragCoord.z / gl_FragCoord.w;
40 z = max(0.0,z-w_fogdepthbias);
41 if (cvar_r_fog_exp2)
42 z *= z;
43 float fac = exp2(-(z * 1.442695));
44 fac = (1.0-w_fogalpha) + (clamp(fac, 0.0, 1.0)*w_fogalpha);
45 return regularcolour * vec4(fac, fac, fac, 1.0);
46 }
47 vec4 fog4blend(in vec4 regularcolour)
48 {
49 if (!FOG)
50 return regularcolour;
51 float z = w_fogdensity * gl_FragCoord.z / gl_FragCoord.w;
52 z = max(0.0,z-w_fogdepthbias);
53 if (cvar_r_fog_exp2)
54 z *= z;
55 float fac = exp2(-(z * 1.442695));
56 fac = (1.0-w_fogalpha) + (clamp(fac, 0.0, 1.0)*w_fogalpha);
57 return regularcolour * vec4(1.0, 1.0, 1.0, fac);
58 }
59#endif
vec4 fog4(in vec4 regularcolour)
Definition: fog.h:29
vec4 fog4additive(in vec4 regularcolour)
Definition: fog.h:35
vec3 fog3additive(in vec3 regularcolour)
Definition: fog.h:17
vec4 fog4blend(in vec4 regularcolour)
Definition: fog.h:47
vec3 fog3(in vec3 regularcolour)
Definition: fog.h:5
double max
Definition: gl_vidlinuxglx.c:1364
GLfloat GLfloat GLfloat z
Definition: glquake.h:158
static spx_int16_t * in
Definition: snd_dma.c:488