diff options
Diffstat (limited to 'indra/newview/app_settings')
3 files changed, 11 insertions, 40 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl b/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl index 0d8dab0a41..e918bdcb9d 100644 --- a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl +++ b/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl @@ -56,41 +56,7 @@ VARYING vec4 refCoord;  VARYING vec4 littleWave;  VARYING vec4 view; -vec4 applyWaterFog(vec4 color, vec3 viewVec) -{ -	//normalize view vector -	vec3 view = normalize(viewVec); -	float es = -view.z; - -	//find intersection point with water plane and eye vector -	 -	//get eye depth -	float e0 = max(-waterPlane.w, 0.0); -	 -	//get object depth -	float depth = length(viewVec); -		 -	//get "thickness" of water -	float l = max(depth, 0.1); - -	float kd = waterFogDensity; -	float ks = waterFogKS; -	vec4 kc = waterFogColor; -	 -	float F = 0.98; -	 -	float t1 = -kd * pow(F, ks * e0); -	float t2 = kd + ks * es; -	float t3 = pow(F, t2*l) - 1.0; -	 -	float L = min(t1/t2*t3, 1.0); -	 -	float D = pow(0.98, l*kd); -	//return vec4(1.0, 0.0, 1.0, 1.0); -	return color * D + kc * L; -	//depth /= 10.0; -	//return vec4(depth,depth,depth,0.0); -} +vec4 applyWaterFogView(vec3 pos, vec4 color);  void main()   { @@ -108,5 +74,5 @@ void main()  	vec4 fb = texture2D(screenTex, distort); -	frag_color = applyWaterFog(fb,view.xyz); +	frag_color = applyWaterFogView(view.xyz, fb);  } diff --git a/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl b/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl index 14b08b1da4..4d0d8882b9 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl @@ -41,18 +41,23 @@ uniform vec4 sunlight_color;  uniform vec3 lumWeights;  uniform float minLuminance;  uniform sampler2D diffuseMap; +uniform sampler2D altDiffuseMap; +uniform float blend_factor; // interp factor between moon A/B  VARYING vec2 vary_texcoord0;  void main()   { -	vec4 c = texture2D(diffuseMap, vary_texcoord0.xy); +	vec4 moonA = texture2D(diffuseMap, vary_texcoord0.xy); +	vec4 moonB = texture2D(altDiffuseMap, vary_texcoord0.xy); +    vec4 c     = mix(moonA, moonB, blend_factor); +  	c.rgb = fullbrightAtmosTransport(c.rgb);      c.rgb = fullbrightScaleSoftClip(c.rgb);      c.rgb = pow(c.rgb, vec3(0.45f));      // mix factor which blends when sunlight is brighter      // and shows true moon color at night      float mix = dot(normalize(sunlight_color.rgb), lumWeights); -    mix = smoothstep(-0.5f, 2.0f, lum); +    mix = smoothstep(-0.5f, 2.0f, mix);  	frag_color = vec4(c.rgb, mix * c.a);  } diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl index 371b32406c..9f56bff4c2 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl @@ -105,7 +105,7 @@ vec4 getPosition(vec2 pos_screen)  #ifdef WATER_FOG -vec4 applyWaterFogDeferred(vec3 pos, vec4 color); +vec4 applyWaterFogView(vec3 pos, vec4 color);  #endif  void main()  @@ -198,7 +198,7 @@ void main()  		}  		#ifdef WATER_FOG -			vec4 fogged = applyWaterFogDeferred(pos,vec4(col, bloom)); +			vec4 fogged = applyWaterFogView(pos,vec4(col, bloom));  			col = fogged.rgb;  			bloom = fogged.a;  		#endif | 
