Standardized fog
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
This commit is contained in:
parent
0adb61f2a7
commit
06e0e5a057
2 changed files with 33 additions and 10 deletions
|
@ -1,9 +1,22 @@
|
||||||
|
#version 120
|
||||||
uniform sampler2D baseTexture;
|
uniform sampler2D baseTexture;
|
||||||
varying float fogFactor;
|
//varying float fogFactor;
|
||||||
|
//varying vec4 PointPos;
|
||||||
|
//varying vec4 EyePos;
|
||||||
|
|
||||||
|
////fog "include" /////
|
||||||
|
uniform int fogType;
|
||||||
|
|
||||||
|
vec3 fog_Func(vec3 color, int type);
|
||||||
|
//////////////////////
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
vec4 base = texture2D( baseTexture, gl_TexCoord[0].st);
|
vec4 base = texture2D( baseTexture, gl_TexCoord[0].st);
|
||||||
vec4 finalColor = base * gl_Color;
|
if (base.a <= 0.01)
|
||||||
gl_FragColor = mix(gl_Fog.color, finalColor, fogFactor );
|
discard;
|
||||||
|
vec4 fragColor = base * gl_Color;
|
||||||
|
//gl_FragColor = vec4(mix(gl_Fog.color.rgb, finalColor.rgb, fogFactor ), finalColor.a);
|
||||||
|
fragColor.rgb = fog_Func(fragColor.rgb, fogType);
|
||||||
|
gl_FragColor = fragColor;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,15 @@
|
||||||
// normal - x y scaling, z number of varieties
|
// normal - x y scaling, z number of varieties
|
||||||
// fog coord - rotation
|
// fog coord - rotation
|
||||||
// color - xyz of tree quad origin, replicated 4 times.
|
// color - xyz of tree quad origin, replicated 4 times.
|
||||||
|
#version 120
|
||||||
|
//varying float fogCoord;
|
||||||
|
varying vec3 PointPos;
|
||||||
|
//varying vec4 EyePos;
|
||||||
|
////fog "include"////////
|
||||||
|
uniform int fogType;
|
||||||
|
|
||||||
varying float fogFactor;
|
void fog_Func(int type);
|
||||||
|
/////////////////////////
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
|
@ -30,7 +37,10 @@ void main(void)
|
||||||
vec4 ambientColor = gl_FrontLightModelProduct.sceneColor + gl_LightSource[0].ambient * gl_FrontMaterial.ambient;
|
vec4 ambientColor = gl_FrontLightModelProduct.sceneColor + gl_LightSource[0].ambient * gl_FrontMaterial.ambient;
|
||||||
gl_FrontColor = ambientColor + gl_LightSource[0].diffuse * vec4(diffuse, 1.0);
|
gl_FrontColor = ambientColor + gl_LightSource[0].diffuse * vec4(diffuse, 1.0);
|
||||||
|
|
||||||
float fogCoord = abs(ecPosition.z);
|
//fogCoord = abs(ecPosition.z);
|
||||||
fogFactor = exp( -gl_Fog.density * gl_Fog.density * fogCoord * fogCoord);
|
//fogFactor = exp( -gl_Fog.density * gl_Fog.density * fogCoord * fogCoord);
|
||||||
fogFactor = clamp(fogFactor, 0.0, 1.0);
|
//fogFactor = clamp(fogFactor, 0.0, 1.0);
|
||||||
|
// fog_Func(fogType);
|
||||||
|
PointPos = ecPosition;
|
||||||
|
//EyePos = gl_ModelViewMatrixInverse * vec4(0.0,0.0,0.0,1.0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue