diff options
Diffstat (limited to 'indra/newview/app_settings/shaders')
11 files changed, 57 insertions, 482 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index 69a0a41034..b72c9651c1 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -88,6 +88,9 @@ float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen);  float getAmbientClamp(); +void sampleReflectionProbesLegacy(inout vec3 ambenv, inout vec3 glossenv, inout vec3 legacyenv,  +        vec3 pos, vec3 norm, float glossiness, float envIntensity); +  vec3 calcPointLightOrSpotLight(vec3 light_col, vec3 diffuse, vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight, float ambiance)  {      // SL-14895 inverted attenuation work-around @@ -242,11 +245,14 @@ void main()      calcAtmosphericVars(pos.xyz, light_dir, 1.0, sunlit, amblit, additive, atten, false); -    vec2 abnormal = encode_normal(norm.xyz); +    vec3 ambenv; +    vec3 glossenv; +    vec3 legacyenv; +    sampleReflectionProbesLegacy(ambenv, glossenv, legacyenv, pos.xyz, norm.xyz, 0.0, 0.0); +          float da = dot(norm.xyz, light_dir.xyz);            da = clamp(da, -1.0, 1.0); -          da = pow(da, 1.0/1.3);      float final_da = da;            final_da = clamp(final_da, 0.0f, 1.0f); @@ -262,22 +268,17 @@ void main()      vec3 sun_contrib = min(final_da, shadow) * sunlit; -    color.rgb = amblit; +    color.rgb = max(amblit, ambenv);      color.rgb *= ambient;      color.rgb += sun_contrib; -    color.rgb *= diffuse_srgb.rgb; +    color.rgb *= diffuse_linear.rgb;      color.rgb = atmosFragLighting(color.rgb, additive, atten);      vec4 light = vec4(0,0,0,0); -    color.rgb = scaleSoftClipFrag(color.rgb); - -    //convert to linear before applying local lights -    color.rgb = srgb_to_linear(color.rgb); -     #define LIGHT_LOOP(i) light.rgb += calcPointLightOrSpotLight(light_diffuse[i].rgb, diffuse_linear.rgb, pos.xyz, norm, light_position[i], light_direction[i].xyz, light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z, light_attenuation[i].w);      LIGHT_LOOP(1) diff --git a/indra/newview/app_settings/shaders/class2/deferred/reflectionProbeF.glsl b/indra/newview/app_settings/shaders/class2/deferred/reflectionProbeF.glsl index 15d6b5a05d..a7cac6c523 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/reflectionProbeF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/reflectionProbeF.glsl @@ -25,7 +25,7 @@  // Implementation for when reflection probes are disabled -uniform float minimumReflectionAmbiance; +uniform float reflection_probe_ambiance;  uniform samplerCube environmentMap; @@ -36,7 +36,7 @@ vec3 srgb_to_linear(vec3 c);  void sampleReflectionProbes(inout vec3 ambenv, inout vec3 glossenv,          vec3 pos, vec3 norm, float glossiness)  { -    ambenv = vec3(0,0,0); +    ambenv = vec3(reflection_probe_ambiance * 0.25);      vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));      vec3 env_vec = env_mat * refnormpersp; @@ -46,7 +46,7 @@ void sampleReflectionProbes(inout vec3 ambenv, inout vec3 glossenv,  void sampleReflectionProbesLegacy(inout vec3 ambenv, inout vec3 glossenv, inout vec3 legacyenv,           vec3 pos, vec3 norm, float glossiness, float envIntensity)  { -    ambenv = vec3(0,0,0); +    ambenv = vec3(reflection_probe_ambiance * 0.25);      vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));      vec3 env_vec = env_mat * refnormpersp; diff --git a/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl b/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl deleted file mode 100644 index df9704ec25..0000000000 --- a/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl +++ /dev/null @@ -1,134 +0,0 @@ -/**  - * @file avatarV.glsl - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2007, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -uniform mat4 projection_matrix; - -ATTRIBUTE vec3 position; -ATTRIBUTE vec3 normal; -ATTRIBUTE vec2 texcoord0; -ATTRIBUTE vec4 clothing;  - -VARYING vec4 vertex_color; -VARYING vec2 vary_texcoord0; - -vec4 calcLighting(vec3 pos, vec3 norm, vec4 color); -mat4 getSkinnedTransform(); -void calcAtmospherics(vec3 inPositionEye); - -uniform vec4 color; - -uniform vec4 gWindDir;		 -uniform vec4 gSinWaveParams;  -uniform vec4 gGravity;		 - -const vec4 gMinMaxConstants = vec4(1.0, 0.166666, 0.0083143, .00018542);	 // #minimax-generated coefficients -const vec4 gPiConstants	= vec4(0.159154943, 6.28318530, 3.141592653, 1.5707963); //	# {1/2PI, 2PI, PI, PI/2} - -void main() -{ -	vary_texcoord0 = texcoord0; -		 -	vec4 pos; -	mat4 trans = getSkinnedTransform(); -		 -	vec3 norm; -	norm.x = dot(trans[0].xyz, normal); -	norm.y = dot(trans[1].xyz, normal); -	norm.z = dot(trans[2].xyz, normal); -	norm = normalize(norm); -		 -	//wind -	vec4 windEffect; -	windEffect = vec4(dot(norm, gWindDir.xyz));	 -	pos.x = dot(trans[2].xyz, position.xyz); -	windEffect.xyz = pos.x * vec3(0.015, 0.015, 0.015) -						+ windEffect.xyz; -	windEffect.w = windEffect.w * 2.0 + 1.0;				// move wind offset value to [-1, 3] -	windEffect.w = windEffect.w*gWindDir.w;					// modulate wind strength  -	 -	windEffect.xyz = windEffect.xyz*gSinWaveParams.xyz -						+vec3(gSinWaveParams.w);			// use sin wave params to scale and offset input - -		 -	//reduce to period of 2 PI -	vec4 temp1, temp0, temp2, offsetPos; -	temp1.xyz = windEffect.xyz * gPiConstants.x;			// change input as multiple of [0-2PI] to [0-1] -	temp0.y = mod(temp1.x,1.0);	 -	windEffect.x = temp0.y * gPiConstants.y;				// scale from [0,1] to [0, 2PI] -	temp1.z = temp1.z - gPiConstants.w;						// shift normal oscillation by PI/2 -	temp0.y = mod(temp1.z,1.0); -	 -	windEffect.z = temp0.y * gPiConstants.y;				// scale from [0,1] to [0, 2PI] -	windEffect.xyz = windEffect.xyz + vec3(-3.141592);		// offset to [-PI, PI] -															 - -	//calculate sinusoid -	vec4 sinWave; -	temp1 = windEffect*windEffect; -	sinWave = -temp1 * gMinMaxConstants.w  -				+ vec4(gMinMaxConstants.z);					// y = -(x^2)/7! + 1/5! -	sinWave = sinWave * -temp1 + vec4(gMinMaxConstants.y);	// y = -(x^2) * (-(x^2)/7! + 1/5!) + 1/3! -	sinWave = sinWave * -temp1 + vec4(gMinMaxConstants.x);	// y = -(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1 -	sinWave = sinWave * windEffect;							// y = x * (-(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1) -	 -	// sinWave.x holds sin(norm . wind_direction) with primary frequency -	// sinWave.y holds sin(norm . wind_direction) with secondary frequency -	// sinWave.z hold cos(norm . wind_direction) with primary frequency -	sinWave.xyz = sinWave.xyz * gWindDir.w  -				+ vec3(windEffect.w);						// multiply by wind strength in gWindDir.w [-wind, wind] - -	// add normal facing bias offset [-wind,wind] -> [-wind - .25, wind + 1] -	temp1 = vec4(dot(norm, gGravity.xyz));					// how much is this normal facing in direction of gGravity? -	temp1 = min(temp1, vec4(0.2,0.0,0.0,0.0));				// clamp [-1, 1] to [-1, 0.2] -	temp1 = temp1*vec4(1.5,0.0,0.0,0.0);					// scale from [-1,0.2] to [-1.5, 0.3] -	sinWave.x = sinWave.x + temp1.x;						// add gGravity effect to sinwave (only primary frequency) -	sinWave.xyz = sinWave.xyz * clothing.w;					// modulate by clothing coverage -	 -	sinWave.xyz = max(sinWave.xyz, vec3(-1.0, -1.0, -1.0));	// clamp to underlying body shape -	offsetPos = clothing * sinWave.x;						// multiply wind effect times clothing displacement -	temp2 = gWindDir*sinWave.z + vec4(norm,0);				// calculate normal offset due to wind oscillation -	offsetPos = vec4(1.0,1.0,1.0,0.0)*offsetPos+vec4(position.xyz, 1.0);	// add to offset vertex position, and zero out effect from w -	norm += temp2.xyz*2.0;									// add sin wave effect on normals (exaggerated) -	 -	//add "backlighting" effect -	float colorAcc; -	colorAcc = 1.0 - clothing.w; -	norm.z -= colorAcc * 0.2; -	 -	//renormalize normal (again) -	norm = normalize(norm); - -	pos.x = dot(trans[0], offsetPos); -	pos.y = dot(trans[1], offsetPos); -	pos.z = dot(trans[2], offsetPos); -	pos.w = 1.0; - -	calcAtmospherics(pos.xyz); -	 -	vec4 col = calcLighting(pos.xyz, norm, color);			 -	vertex_color = col;  -					 -	gl_Position = projection_matrix * pos; -} diff --git a/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl index 27eb0b9888..7c0a11d442 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl @@ -287,6 +287,9 @@ void main()  #if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_BLEND)      //forward rendering, output lit linear color +    diffcol.rgb = srgb_to_linear(diffcol.rgb); +    spec.rgb = srgb_to_linear(spec.rgb); +      vec3 pos = vary_position;      float shadow = 1.0f; @@ -318,20 +321,23 @@ void main()      vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz)); -    //we're in sRGB space, so gamma correct this dot product so  -    // lighting from the sun stays sharp -    float da = clamp(dot(normalize(norm.xyz), light_dir.xyz), 0.0, 1.0); -    da = pow(da, 1.0 / 1.3); -    vec3 sun_contrib = min(da, shadow) * sunlit; -      vec3 ambenv;      vec3 glossenv;      vec3 legacyenv;      sampleReflectionProbesLegacy(ambenv, glossenv, legacyenv, pos.xyz, norm.xyz, spec.a, envIntensity); -    amblit = max(ambenv, amblit); -    color.rgb = amblit; +    // use sky settings ambient or irradiance map sample, whichever is brighter +    color = max(amblit, ambenv); -    color += sun_contrib; +    float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0); +    ambient *= 0.5; +    ambient *= ambient; +    ambient = (1.0 - ambient); +    color.rgb *= ambient; + +    float da          = clamp(dot(norm.xyz, sun_dir.xyz), 0.0, 1.0); +    vec3 sun_contrib = min(da, shadow) * sunlit; +    color.rgb += sun_contrib; +    color.rgb *= diffuse.rgb;      color *= diffcol.rgb; @@ -359,18 +365,14 @@ void main()      {  // add environmentmap          applyLegacyEnv(color, legacyenv, spec, pos.xyz, norm.xyz, envIntensity);      } -    color = scaleSoftClipFrag(color); - -    //convert to linear before adding local lights -    color = srgb_to_linear(color);      vec3 npos = normalize(-pos.xyz);      vec3 light = vec3(0, 0, 0); -    final_specular.rgb = srgb_to_linear(final_specular.rgb); // SL-14035 +    final_specular.rgb = final_specular.rgb; // SL-14035 -    color = mix(color.rgb, srgb_to_linear(diffcol.rgb), diffuse.a); +    color = mix(color.rgb, diffcol.rgb, diffuse.a);  #define LIGHT_LOOP(i) light.rgb += calcPointLightOrSpotLight(light_diffuse[i].rgb, npos, diffuse.rgb, final_specular, pos.xyz, norm.xyz, light_position[i], light_direction[i].xyz, light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z, glare, light_attenuation[i].w ); diff --git a/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl b/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl index 73b852e008..de18251dc4 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl @@ -31,8 +31,6 @@  uniform samplerCubeArray   reflectionProbes;  uniform samplerCubeArray   irradianceProbes; -vec3 linear_to_srgb(vec3 col); -  layout (std140) uniform ReflectionProbes  {      // list of OBBs for user override probes @@ -531,32 +529,28 @@ void sampleReflectionProbesLegacy(inout vec3 ambenv, inout vec3 glossenv, inout      vec3 refnormpersp = reflect(pos.xyz, norm.xyz);      ambenv = sampleProbeAmbient(pos, norm); +    ambenv /= 1.725;      if (glossiness > 0.0)      {          float lod = (1.0-glossiness)*reflection_lods;          glossenv = sampleProbes(pos, normalize(refnormpersp), lod, 1.f); -        glossenv = linear_to_srgb(glossenv);      }      if (envIntensity > 0.0)      {          legacyenv = sampleProbes(pos, normalize(refnormpersp), 0.0, 1.f); -        legacyenv = linear_to_srgb(legacyenv);      } - -    // legacy expects values in sRGB space for now -    ambenv = linear_to_srgb(ambenv); -  }  void applyGlossEnv(inout vec3 color, vec3 glossenv, vec4 spec, vec3 pos, vec3 norm)  { -    glossenv *= 0.35; // fudge darker -    float fresnel = 1.0+dot(normalize(pos.xyz), norm.xyz); -    float minf = spec.a * 0.1; -    fresnel = fresnel * (1.0-minf) + minf; -    glossenv *= spec.rgb*min(fresnel, 1.0); +    glossenv *= 0.5; // fudge darker +    float fresnel = clamp(1.0+dot(normalize(pos.xyz), norm.xyz), 0.3, 1.0); +    fresnel *= fresnel; +    fresnel *= spec.a; +    glossenv *= spec.rgb*fresnel; +    glossenv *= vec3(1.0) - color; // fake energy conservation      color.rgb += glossenv;  } diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl index cfdbbdfe2c..29aea62f7b 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl @@ -114,14 +114,12 @@ void main()      vec4  pos          = getPositionWithDepth(tc, depth);      vec4  norm         = texture2DRect(normalMap, tc);      vec3  light_dir   = (sun_up_factor == 1) ? sun_dir : moon_dir; -    float light_gamma = 1.0 / 1.3;      vec4 diffuse     = texture2DRect(diffuseRect, tc);      vec4 spec        = texture2DRect(specularRect, vary_fragcoord.xy); // NOTE: PBR linear Emissive  #if defined(HAS_SUN_SHADOW) || defined(HAS_SSAO)      vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg; -    scol_ambocc      = pow(scol_ambocc, vec2(light_gamma));      float scol       = max(scol_ambocc.r, diffuse.a);      float ambocc     = scol_ambocc.g;  #else @@ -159,13 +157,10 @@ void main()          vec3  irradiance = vec3(0);          vec3  radiance  = vec3(0);          sampleReflectionProbes(irradiance, radiance, pos.xyz, norm.xyz, gloss); -        irradiance       = max(srgb_to_linear(amblit),irradiance) * ambocc*4.0; +        irradiance       = max(amblit*1.725,irradiance*ambocc);          vec3 f0 = vec3(0.04);          vec3 baseColor = diffuse.rgb; -         -        //baseColor.rgb = vec3(0,0,0); -        //colorEmissive = srgb_to_linear(norm.xyz*0.5+0.5);          vec3 diffuseColor = baseColor.rgb*(vec3(1.0)-f0);          diffuseColor *= 1.0 - metallic; @@ -179,34 +174,36 @@ void main()          color.rgb += pbrPunctual(diffuseColor, specularColor, perceptualRoughness, metallic, norm.xyz, v, normalize(light_dir)) * sunlit*8.0 * scol;          color.rgb += colorEmissive; -        color  = linear_to_srgb(color); +        //color = atmosFragLighting(color, additive, atten);          color *= atten.r; -        color += 2.0*additive; -        color  = scaleSoftClipFrag(color); -        color  = srgb_to_linear(color); - - -        frag_color.rgb = color.rgb; //output linear since local lights will be added to this shader's results +        color += additive*2.0; +              }      else      { + +        // legacy shaders are still writng sRGB to gbuffer +        diffuse.rgb = srgb_to_linear(diffuse.rgb); +        spec.rgb = srgb_to_linear(spec.rgb); +          float envIntensity = norm.z;          norm.xyz           = getNorm(tc);          float da          = clamp(dot(norm.xyz, light_dir.xyz), 0.0, 1.0); -        da                = pow(da, light_gamma); - -        //diffuse.rgb = linear_to_srgb(diffuse.rgb); // SL-14035          sampleReflectionProbesLegacy(ambenv, glossenv, legacyenv, pos.xyz, norm.xyz, spec.a, envIntensity); -        vec3 debug = legacyenv; -        amblit = max(ambenv, amblit); -        color.rgb = amblit*ambocc; +        // use sky settings ambient or irradiance map sample, whichever is brighter +        color = max(amblit, ambenv*ambocc); + +        float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0); +        ambient *= 0.5; +        ambient *= ambient; +        ambient = (1.0 - ambient); +        color.rgb *= ambient;          vec3 sun_contrib = min(da, scol) * sunlit;          color.rgb += sun_contrib; -        color.rgb = min(color.rgb, vec3(1,1,1));          color.rgb *= diffuse.rgb;          vec3 refnormpersp = reflect(pos.xyz, norm.xyz); @@ -234,8 +231,9 @@ void main()              {  // add environmentmap                  applyLegacyEnv(color, legacyenv, spec, pos.xyz, norm.xyz, envIntensity);              } -            color = mix(scaleSoftClipFrag(color), fullbrightScaleSoftClip(color), diffuse.a); +            color = mix(color, fullbrightScaleSoftClip(color), diffuse.a);          } +    }      #ifdef WATER_FOG          vec4 fogged = applyWaterFogView(pos.xyz, vec4(color, bloom)); @@ -243,11 +241,6 @@ void main()          bloom       = fogged.a;      #endif -        // convert to linear as fullscreen lights need to sum in linear colorspace -        // and will be gamma (re)corrected downstream... -        frag_color.rgb = srgb_to_linear(color.rgb); -    } - - +    frag_color.rgb = color.rgb; //output linear since local lights will be added to this shader's results      frag_color.a = bloom;  } diff --git a/indra/newview/app_settings/shaders/class3/windlight/advancedAtmoF.glsl b/indra/newview/app_settings/shaders/class3/windlight/advancedAtmoF.glsl deleted file mode 100644 index c6ea3ec9d4..0000000000 --- a/indra/newview/app_settings/shaders/class3/windlight/advancedAtmoF.glsl +++ /dev/null @@ -1,73 +0,0 @@ -/**  - * @file class3\wl\advancedAtmoF.glsl - * - * $LicenseInfo:firstyear=2005&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2005, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ -  -#ifdef DEFINE_GL_FRAGCOLOR -out vec4 frag_color; -#else -#define frag_color gl_FragColor -#endif - -in vec3 view_dir; - -uniform vec3 cameraPosLocal; -uniform vec3 sun_dir; -uniform float sun_size; - -uniform sampler2D transmittance_texture; -uniform sampler3D scattering_texture; -uniform sampler3D mie_scattering_texture; -uniform sampler2D irradiance_texture; - -vec3 GetSolarLuminance(); -vec3 GetSkyLuminance(vec3 camPos, vec3 view_dir, float shadow_length, vec3 sun_dir, out vec3 transmittance); -vec3 GetSkyLuminanceToPoint(vec3 camPos, vec3 pos, float shadow_length, vec3 sun_dir, out vec3 transmittance); -vec3 GetSunAndSkyIlluminance(vec3 pos, vec3 norm, vec3 sun_dir, out vec3 sky_irradiance); - -void main() -{ -    vec3 view_direction = normalize(view_dir); - -    vec3 camPos = cameraPosLocal; -    vec3 transmittance; -    vec3 sky_illum; -    vec3 radiance = GetSkyLuminance(camPos, view_direction, 0.0f, sun_dir, transmittance); -    vec3 radiance2 = GetSunAndSkyIlluminance(camPos, view_direction, sun_dir, sky_illum); - -    //radiance *= transmittance; - -    // If the view ray intersects the Sun, add the Sun radiance. -    if (dot(view_direction, sun_dir) >= sun_size) -    { -        radiance = radiance + transmittance * GetSolarLuminance(); -    } - -    //vec3 color = vec3(1.0) - exp(-radiance); -    //color = pow(color, vec3(1.0 / 2.2)); - -    frag_color.rgb = radiance; -  -    frag_color.a = 1.0; -} - diff --git a/indra/newview/app_settings/shaders/class3/windlight/advancedAtmoV.glsl b/indra/newview/app_settings/shaders/class3/windlight/advancedAtmoV.glsl deleted file mode 100644 index 65bb00b1f6..0000000000 --- a/indra/newview/app_settings/shaders/class3/windlight/advancedAtmoV.glsl +++ /dev/null @@ -1,43 +0,0 @@ -/**  - * @file class3\wl\advancedAtmoV.glsl - * - * $LicenseInfo:firstyear=2005&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2005, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ -  -uniform mat4 modelview_projection_matrix; - -ATTRIBUTE vec3 position; - -// Inputs -uniform vec3 camPosLocal; - -out vec3 view_dir; - -void main() -{ -	// World / view / projection -	gl_Position = modelview_projection_matrix * vec4(position.xyz, 1.0); - -	// this will be normalized in the frag shader... -	view_dir = position.xyz - camPosLocal.xyz;  -} - diff --git a/indra/newview/app_settings/shaders/class3/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class3/windlight/atmosphericsF.glsl deleted file mode 100644 index 2b70ba76dc..0000000000 --- a/indra/newview/app_settings/shaders/class3/windlight/atmosphericsF.glsl +++ /dev/null @@ -1,46 +0,0 @@ -/**  - * @file class3\wl\atmosphericsF.glsl - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2007, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -vec3 getAdditiveColor(); -vec3 getAtmosAttenuation(); -vec3 scaleSoftClipFrag(vec3 light); - -uniform int no_atmo; - -vec3 atmosFragLighting(vec3 light, vec3 additive, vec3 atten) -{ -    if (no_atmo == 1) -    { -        return light; -    } -    light *= atten.r; -    light += additive; -    return light * 2.0; -} - -vec3 atmosLighting(vec3 light) -{ -    return atmosFragLighting(light, getAdditiveColor(), getAtmosAttenuation()); -} diff --git a/indra/newview/app_settings/shaders/class3/windlight/atmosphericsV.glsl b/indra/newview/app_settings/shaders/class3/windlight/atmosphericsV.glsl deleted file mode 100644 index b76192d73f..0000000000 --- a/indra/newview/app_settings/shaders/class3/windlight/atmosphericsV.glsl +++ /dev/null @@ -1,51 +0,0 @@ -/** - * @file class3\wl\atmosphericsV.glsl - * - * $LicenseInfo:firstyear=2005&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2005, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -// VARYING param funcs -void setSunlitColor(vec3 v); -void setAmblitColor(vec3 v); -void setAdditiveColor(vec3 v); -void setAtmosAttenuation(vec3 v); -void setPositionEye(vec3 v); - -vec3 getAdditiveColor(); - -void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten, bool use_ao); - -void calcAtmospherics(vec3 inPositionEye) { - -    vec3 P = inPositionEye; -    setPositionEye(P); -    vec3 tmpsunlit = vec3(1); -    vec3 tmpamblit = vec3(1); -    vec3 tmpaddlit = vec3(1); -    vec3 tmpattenlit = vec3(1); -    calcAtmosphericVars(inPositionEye, vec3(0), 1, tmpsunlit, tmpamblit, tmpaddlit, tmpattenlit, true); -    setSunlitColor(tmpsunlit); -    setAmblitColor(tmpamblit); -    setAdditiveColor(tmpaddlit); -    setAtmosAttenuation(tmpattenlit); -} - diff --git a/indra/newview/app_settings/shaders/class3/windlight/transportF.glsl b/indra/newview/app_settings/shaders/class3/windlight/transportF.glsl deleted file mode 100644 index 545a32a227..0000000000 --- a/indra/newview/app_settings/shaders/class3/windlight/transportF.glsl +++ /dev/null @@ -1,68 +0,0 @@ -/**  - * @file class3\wl\transportF.glsl - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2007, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ -  -////////////////////////////////////////////////////////// -// The fragment shader for the terrain atmospherics -////////////////////////////////////////////////////////// - -vec3 getAdditiveColor(); -vec3 getAtmosAttenuation(); - -uniform int no_atmo; - -vec3 atmosTransportFrag(vec3 light, vec3 additive, vec3 atten) -{ -    if (no_atmo == 1) -    { -        return light; -    } -    // fullbright responds minimally to atmos scatter effects  -    light *= min(15.0 * atten.r, 1.0); -    light += (0.1 * additive); -    return light * 2.0; -} - -vec3 atmosTransport(vec3 light) -{ -     return atmosTransportFrag(light, getAdditiveColor(), getAtmosAttenuation()); -} - -vec3 fullbrightAtmosTransportFrag(vec3 light, vec3 additive, vec3 atten) -{ -    float brightness = dot(light.rgb, vec3(0.33333)); -    return vec3(1,0,1); -    //return atmosTransportFrag(light * 0.5, additive * (brightness * 0.5 + 0.5), atten); -} - -vec3 fullbrightAtmosTransport(vec3 light) -{ -    return atmosTransportFrag(light, getAdditiveColor(), getAtmosAttenuation()); -} - -vec3 fullbrightShinyAtmosTransport(vec3 light) -{ -    float brightness = dot(light.rgb, vec3(0.33333)); -    return atmosTransportFrag(light * 0.5, getAdditiveColor() * (brightness * brightness), getAtmosAttenuation()); -}  | 
