Remove ambient occlusion darkening from all deferred shaders except the one that actually calculates occlusion values.. (aka every shader except class2/softenLightF.glsl)
This commit is contained in:
@@ -51,7 +51,6 @@ uniform float max_y;
|
|||||||
uniform vec4 glow;
|
uniform vec4 glow;
|
||||||
uniform float scene_light_strength;
|
uniform float scene_light_strength;
|
||||||
uniform mat3 env_mat;
|
uniform mat3 env_mat;
|
||||||
uniform mat3 ssao_effect_mat;
|
|
||||||
|
|
||||||
uniform vec3 sun_dir;
|
uniform vec3 sun_dir;
|
||||||
|
|
||||||
@@ -312,7 +311,7 @@ void setAtmosAttenuation(vec3 v)
|
|||||||
vary_AtmosAttenuation = v;
|
vary_AtmosAttenuation = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
void calcAtmospherics(vec3 inPositionEye, float ambFactor) {
|
void calcAtmospherics(vec3 inPositionEye) {
|
||||||
|
|
||||||
vec3 P = inPositionEye;
|
vec3 P = inPositionEye;
|
||||||
setPositionEye(P);
|
setPositionEye(P);
|
||||||
@@ -373,16 +372,6 @@ void calcAtmospherics(vec3 inPositionEye, float ambFactor) {
|
|||||||
//increase ambient when there are more clouds
|
//increase ambient when there are more clouds
|
||||||
vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow * 0.5;
|
vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow * 0.5;
|
||||||
|
|
||||||
/* decrease value and saturation (that in HSV, not HSL) for occluded areas
|
|
||||||
* // for HSV color/geometry used here, see http://gimp-savvy.com/BOOK/index.html?node52.html
|
|
||||||
* // The following line of code performs the equivalent of:
|
|
||||||
* float ambAlpha = tmpAmbient.a;
|
|
||||||
* float ambValue = dot(vec3(tmpAmbient), vec3(0.577)); // projection onto <1/rt(3), 1/rt(3), 1/rt(3)>, the neutral white-black axis
|
|
||||||
* vec3 ambHueSat = vec3(tmpAmbient) - vec3(ambValue);
|
|
||||||
* tmpAmbient = vec4(RenderSSAOEffect.valueFactor * vec3(ambValue) + RenderSSAOEffect.saturationFactor *(1.0 - ambFactor) * ambHueSat, ambAlpha);
|
|
||||||
*/
|
|
||||||
tmpAmbient = vec4(mix(ssao_effect_mat * tmpAmbient.rgb, tmpAmbient.rgb, ambFactor), tmpAmbient.a);
|
|
||||||
|
|
||||||
//haze color
|
//haze color
|
||||||
setAdditiveColor(
|
setAdditiveColor(
|
||||||
vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow) + tmpAmbient)
|
vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow) + tmpAmbient)
|
||||||
@@ -568,7 +557,7 @@ void main()
|
|||||||
|
|
||||||
vec3 norm = vary_norm;
|
vec3 norm = vary_norm;
|
||||||
|
|
||||||
calcAtmospherics(pos.xyz, 1.0);
|
calcAtmospherics(pos.xyz);
|
||||||
|
|
||||||
vec2 abnormal = encode_normal(norm.xyz);
|
vec2 abnormal = encode_normal(norm.xyz);
|
||||||
norm.xyz = decode_normal(abnormal.xy);
|
norm.xyz = decode_normal(abnormal.xy);
|
||||||
|
|||||||
@@ -134,7 +134,6 @@ uniform float max_y;
|
|||||||
uniform vec4 glow;
|
uniform vec4 glow;
|
||||||
uniform float scene_light_strength;
|
uniform float scene_light_strength;
|
||||||
uniform mat3 env_mat;
|
uniform mat3 env_mat;
|
||||||
uniform mat3 ssao_effect_mat;
|
|
||||||
|
|
||||||
uniform vec3 sun_dir;
|
uniform vec3 sun_dir;
|
||||||
|
|
||||||
@@ -335,7 +334,7 @@ void setAtmosAttenuation(vec3 v)
|
|||||||
vary_AtmosAttenuation = v;
|
vary_AtmosAttenuation = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
void calcAtmospherics(vec3 inPositionEye, float ambFactor) {
|
void calcAtmospherics(vec3 inPositionEye) {
|
||||||
|
|
||||||
vec3 P = inPositionEye;
|
vec3 P = inPositionEye;
|
||||||
setPositionEye(P);
|
setPositionEye(P);
|
||||||
@@ -396,16 +395,6 @@ void calcAtmospherics(vec3 inPositionEye, float ambFactor) {
|
|||||||
//increase ambient when there are more clouds
|
//increase ambient when there are more clouds
|
||||||
vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow * 0.5;
|
vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow * 0.5;
|
||||||
|
|
||||||
/* decrease value and saturation (that in HSV, not HSL) for occluded areas
|
|
||||||
* // for HSV color/geometry used here, see http://gimp-savvy.com/BOOK/index.html?node52.html
|
|
||||||
* // The following line of code performs the equivalent of:
|
|
||||||
* float ambAlpha = tmpAmbient.a;
|
|
||||||
* float ambValue = dot(vec3(tmpAmbient), vec3(0.577)); // projection onto <1/rt(3), 1/rt(3), 1/rt(3)>, the neutral white-black axis
|
|
||||||
* vec3 ambHueSat = vec3(tmpAmbient) - vec3(ambValue);
|
|
||||||
* tmpAmbient = vec4(RenderSSAOEffect.valueFactor * vec3(ambValue) + RenderSSAOEffect.saturationFactor *(1.0 - ambFactor) * ambHueSat, ambAlpha);
|
|
||||||
*/
|
|
||||||
tmpAmbient = vec4(mix(ssao_effect_mat * tmpAmbient.rgb, tmpAmbient.rgb, ambFactor), tmpAmbient.a);
|
|
||||||
|
|
||||||
//haze color
|
//haze color
|
||||||
setAdditiveColor(
|
setAdditiveColor(
|
||||||
vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow) + tmpAmbient)
|
vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow) + tmpAmbient)
|
||||||
@@ -677,7 +666,7 @@ void main()
|
|||||||
vec3 col = vec3(0.0f,0.0f,0.0f);
|
vec3 col = vec3(0.0f,0.0f,0.0f);
|
||||||
|
|
||||||
float bloom = 0.0;
|
float bloom = 0.0;
|
||||||
calcAtmospherics(pos.xyz, 1.0);
|
calcAtmospherics(pos.xyz);
|
||||||
|
|
||||||
vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
|
vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,6 @@ uniform vec4 glow;
|
|||||||
uniform float global_gamma;
|
uniform float global_gamma;
|
||||||
uniform float scene_light_strength;
|
uniform float scene_light_strength;
|
||||||
uniform mat3 env_mat;
|
uniform mat3 env_mat;
|
||||||
uniform float ssao_effect;
|
|
||||||
|
|
||||||
uniform vec3 sun_dir;
|
uniform vec3 sun_dir;
|
||||||
VARYING vec2 vary_fragcoord;
|
VARYING vec2 vary_fragcoord;
|
||||||
@@ -238,7 +237,7 @@ vec4 applyWaterFogDeferred(vec3 pos, vec4 color)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void calcAtmospherics(vec3 inPositionEye, float ambFactor) {
|
void calcAtmospherics(vec3 inPositionEye) {
|
||||||
|
|
||||||
vec3 P = inPositionEye;
|
vec3 P = inPositionEye;
|
||||||
setPositionEye(P);
|
setPositionEye(P);
|
||||||
@@ -305,9 +304,6 @@ void calcAtmospherics(vec3 inPositionEye, float ambFactor) {
|
|||||||
+ (haze_horizon * haze_weight) * (sunlight*(1.-cloud_shadow) * temp2.x
|
+ (haze_horizon * haze_weight) * (sunlight*(1.-cloud_shadow) * temp2.x
|
||||||
+ tmpAmbient)));
|
+ tmpAmbient)));
|
||||||
|
|
||||||
// decrease value for occluded areas
|
|
||||||
tmpAmbient = vec4(mix(ssao_effect * tmpAmbient.rgb, tmpAmbient.rgb, ambFactor), tmpAmbient.a);
|
|
||||||
|
|
||||||
//brightness of surface both sunlight and ambient
|
//brightness of surface both sunlight and ambient
|
||||||
setSunlitColor(vec3(sunlight * .5));
|
setSunlitColor(vec3(sunlight * .5));
|
||||||
setAmblitColor(vec3(tmpAmbient * .25));
|
setAmblitColor(vec3(tmpAmbient * .25));
|
||||||
@@ -408,7 +404,7 @@ void main()
|
|||||||
float final_da = max(0.0,da);
|
float final_da = max(0.0,da);
|
||||||
final_da = min(final_da, 1.0f);
|
final_da = min(final_da, 1.0f);
|
||||||
final_da = pow(final_da, 1.0/1.3);
|
final_da = pow(final_da, 1.0/1.3);
|
||||||
calcAtmospherics(pos.xyz, 1.0);
|
calcAtmospherics(pos.xyz);
|
||||||
|
|
||||||
col = atmosAmbient(vec3(0));
|
col = atmosAmbient(vec3(0));
|
||||||
float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0);
|
float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0);
|
||||||
|
|||||||
Reference in New Issue
Block a user