diff options
Diffstat (limited to 'indra/newview/app_settings')
13 files changed, 72 insertions, 153 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 8996b1dd4f..e0662b8115 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -9002,37 +9002,6 @@      <key>Value</key>      <integer>1</integer>    </map> - -  <key>RenderShadowNearDist</key> -  <map> -    <key>Comment</key> -    <string>Near clip plane of shadow camera (affects precision of depth shadows).</string> -    <key>Persist</key> -    <integer>1</integer> -    <key>Type</key> -    <string>Vector3</string> -    <key>Value</key> -    <array> -      <real>256</real> -      <real>256</real> -      <real>256</real> -    </array> -  </map> -  <key>RenderShadowClipPlanes</key> -  <map> -    <key>Comment</key> -    <string>Near clip plane split distances for shadow map frusta.</string> -    <key>Persist</key> -    <integer>1</integer> -    <key>Type</key> -    <string>Vector3</string> -    <key>Value</key> -    <array> -      <real>1.0</real> -      <real>12.0</real> -      <real>32.0</real> -    </array> -  </map>    <key>RenderShadowSplitExponent</key>    <map>      <key>Comment</key> @@ -9048,21 +9017,6 @@        <real>2.0</real>      </array>    </map> -  <key>RenderShadowOrthoClipPlanes</key> -  <map> -    <key>Comment</key> -    <string>Near clip plane split distances for orthographic shadow map frusta.</string> -    <key>Persist</key> -    <integer>1</integer> -    <key>Type</key> -    <string>Vector3</string> -    <key>Value</key> -    <array> -      <real>4.0</real> -      <real>8.0</real> -      <real>24.0</real> -    </array> -  </map>    <key>RenderShadowProjOffset</key>    <map>      <key>Comment</key> @@ -10402,7 +10356,7 @@      <key>Type</key>      <string>F32</string>      <key>Value</key> -    <real>32</real> +    <real>16</real>    </map>    <key>RenderTonemapper</key>    <map> @@ -14261,6 +14215,17 @@        <key>Value</key>        <integer>1</integer>      </map> +  <key>RenderOcclusionTimeout</key> +  <map> +    <key>Comment</key> +    <string>Maximum number of frames to wait on an occlusion query before forcibly reading it back</string> +    <key>Persist</key> +    <integer>1</integer> +    <key>Type</key> +    <string>S32</string> +    <key>Value</key> +    <integer>8</integer> +  </map>    <key>UseObjectCacheOcclusion</key>    <map>      <key>Comment</key> diff --git a/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl index fe796a054d..e0e97bb938 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl @@ -24,19 +24,15 @@   */  /*[EXTRA_CODE_HERE]*/  -#ifdef DEFINE_GL_FRAGCOLOR -out vec4 frag_data[3]; -#else -#define frag_data gl_FragData -#endif +out vec4 frag_data[4];  /////////////////////////////////////////////////////////////////////////  // The fragment shader for the sky  ///////////////////////////////////////////////////////////////////////// -VARYING vec3 vary_CloudColorSun; -VARYING vec3 vary_CloudColorAmbient; -VARYING float vary_CloudDensity; +in vec3 vary_CloudColorSun; +in vec3 vary_CloudColorAmbient; +in float vary_CloudDensity;  uniform sampler2D cloud_noise_texture;  uniform sampler2D cloud_noise_texture_next; @@ -46,16 +42,16 @@ uniform vec3 cloud_pos_density2;  uniform float cloud_scale;  uniform float cloud_variance; -VARYING vec2 vary_texcoord0; -VARYING vec2 vary_texcoord1; -VARYING vec2 vary_texcoord2; -VARYING vec2 vary_texcoord3; -VARYING float altitude_blend_factor; +in vec2 vary_texcoord0; +in vec2 vary_texcoord1; +in vec2 vary_texcoord2; +in vec2 vary_texcoord3; +in float altitude_blend_factor;  vec4 cloudNoise(vec2 uv)  { -   vec4 a = texture2D(cloud_noise_texture, uv); -   vec4 b = texture2D(cloud_noise_texture_next, uv); +   vec4 a = texture(cloud_noise_texture, uv); +   vec4 b = texture(cloud_noise_texture_next, uv);     vec4 cloud_noise_sample = mix(a, b, blend_factor);     return cloud_noise_sample;  } @@ -118,8 +114,9 @@ void main()      color.rgb *= 2.0;      /// Gamma correct for WL (soft clip effect). -    frag_data[0] = vec4(color.rgb, alpha1); +    frag_data[0] = vec4(0);      frag_data[1] = vec4(0.0,0.0,0.0,0.0);      frag_data[2] = vec4(0,0,0,GBUFFER_FLAG_SKIP_ATMOS); +    frag_data[3] = vec4(color.rgb, alpha1);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl b/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl index 41dd485fae..fabc61eb5e 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl @@ -27,11 +27,7 @@  /*[EXTRA_CODE_HERE]*/ -#ifdef DEFINE_GL_FRAGCOLOR -out vec4 frag_data[3]; -#else -#define frag_data gl_FragData -#endif +out vec4 frag_data[4];  uniform vec4 color;  uniform vec3 moonlight_color; @@ -39,12 +35,7 @@ uniform vec3 moon_dir;  uniform float moon_brightness;  uniform sampler2D diffuseMap; -VARYING vec2 vary_texcoord0; - -vec3 srgb_to_linear(vec3 c); - -/// Soft clips the light with a gamma correction -vec3 scaleSoftClip(vec3 light); +in vec2 vary_texcoord0;  void main()   { @@ -53,24 +44,25 @@ void main()      if( moon_dir.z > 0 )          fade = clamp( moon_dir.z*moon_dir.z*4.0, 0.0, 1.0 ); -    vec4 c      = texture2D(diffuseMap, vary_texcoord0.xy); +    vec4 c      = texture(diffuseMap, vary_texcoord0.xy);      // SL-14113 Don't write to depth; prevent moon's quad from hiding stars which should be visible      // Moon texture has transparent pixels <0x55,0x55,0x55,0x00>      if (c.a <= 2./255.) // 0.00784 +    {          discard; +    } -//       c.rgb  = srgb_to_linear(c.rgb); -         c.rgb *= moonlight_color.rgb; -         c.rgb *= moon_brightness; -         c.rgb *= fade; -         c.a   *= fade; +    c.rgb *= moonlight_color.rgb; +    c.rgb *= moon_brightness; -         c.rgb  = scaleSoftClip(c.rgb); +    c.rgb *= fade; +    c.a   *= fade; -    frag_data[0] = vec4(c.rgb, c.a); +    frag_data[0] = vec4(0);      frag_data[1] = vec4(0.0);      frag_data[2] = vec4(0.0, 0.0, 0.0, GBUFFER_FLAG_HAS_ATMOS); +    frag_data[3] = vec4(c.rgb, c.a);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl b/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl index 930338cefb..cc4c3b5dce 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl @@ -22,12 +22,10 @@   * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA   * $/LicenseInfo$   */ -  -/*[EXTRA_CODE_HERE]*/  // Inputs -VARYING vec3 vary_HazeColor; -VARYING float vary_LightNormPosDot; +in vec3 vary_HazeColor; +in float vary_LightNormPosDot;  uniform sampler2D rainbow_map;  uniform sampler2D halo_map; @@ -36,11 +34,9 @@ uniform float moisture_level;  uniform float droplet_radius;  uniform float ice_level; -#ifdef DEFINE_GL_FRAGCOLOR -out vec4 frag_data[3]; -#else -#define frag_data gl_FragData -#endif +out vec4 frag_data[4]; + +vec3 srgb_to_linear(vec3 c);  /////////////////////////////////////////////////////////////////////////  // The fragment shader for the sky @@ -63,19 +59,16 @@ vec3 rainbow(float d)      d = clamp(d, 0.0, 0.25) + interior_coord;      float rad = (droplet_radius - 5.0f) / 1024.0f; -    return pow(texture2D(rainbow_map, vec2(rad+0.5, d)).rgb, vec3(1.8)) * moisture_level; +    return pow(texture(rainbow_map, vec2(rad+0.5, d)).rgb, vec3(1.8)) * moisture_level;  }  vec3 halo22(float d)  {      d       = clamp(d, 0.1, 1.0);      float v = sqrt(clamp(1 - (d * d), 0, 1)); -    return texture2D(halo_map, vec2(0, v)).rgb * ice_level; +    return texture(halo_map, vec2(0, v)).rgb * ice_level;  } -/// Soft clips the light with a gamma correction -vec3 scaleSoftClip(vec3 light); -  void main()  {      // Potential Fill-rate optimization.  Add cloud calculation  @@ -91,11 +84,10 @@ void main()      color.rgb += rainbow(optic_d);      color.rgb += halo_22;      color.rgb *= 2.; -    color.rgb = scaleSoftClip(color.rgb); -    // Gamma correct for WL (soft clip effect). -    frag_data[0] = vec4(color.rgb, 1.0); -    frag_data[1] = vec4(0.0,0.0,0.0,0.0); +    frag_data[0] = vec4(0); +    frag_data[1] = vec4(0);      frag_data[2] = vec4(0.0,0.0,0.0,GBUFFER_FLAG_SKIP_ATMOS); //1.0 in norm.w masks off fog +    frag_data[3] = vec4(color.rgb, 1.0);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl b/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl index cdafdba15c..4f1756c367 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl @@ -25,15 +25,11 @@  /*[EXTRA_CODE_HERE]*/ -#ifdef DEFINE_GL_FRAGCOLOR -out vec4 frag_data[3]; -#else -#define frag_data gl_FragData -#endif +out vec4 frag_data[4]; -VARYING vec4 vertex_color; -VARYING vec2 vary_texcoord0; -VARYING vec2 screenpos; +in vec4 vertex_color; +in vec2 vary_texcoord0; +in vec2 screenpos;  uniform sampler2D diffuseMap;  uniform float blend_factor; @@ -62,8 +58,9 @@ void main()      col.a = (col.a * factor) * 32.0f;      col.a *= twinkle(); -    frag_data[0] = col; +    frag_data[0] = vec4(0);      frag_data[1] = vec4(0.0f);      frag_data[2] = vec4(0.0, 1.0, 0.0, GBUFFER_FLAG_SKIP_ATMOS); +    frag_data[3] = col;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl index e35ea83f0a..a85e6ebc66 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl @@ -27,36 +27,29 @@  /*[EXTRA_CODE_HERE]*/ -#ifdef DEFINE_GL_FRAGCOLOR -out vec4 frag_data[3]; -#else -#define frag_data gl_FragData -#endif +out vec4 frag_data[4];  vec3 srgb_to_linear(vec3 c); -vec3 fullbrightAtmosTransport(vec3 light); -vec3 fullbrightScaleSoftClip(vec3 light);  uniform sampler2D diffuseMap;  uniform sampler2D altDiffuseMap;  uniform float blend_factor; // interp factor between sunDisc A/B -VARYING vec2 vary_texcoord0; -VARYING float sun_fade; +in vec2 vary_texcoord0; +in float sun_fade;  void main()   { -    vec4 sunDiscA = texture2D(diffuseMap, vary_texcoord0.xy); -    vec4 sunDiscB = texture2D(altDiffuseMap, vary_texcoord0.xy); +    vec4 sunDiscA = texture(diffuseMap, vary_texcoord0.xy); +    vec4 sunDiscB = texture(altDiffuseMap, vary_texcoord0.xy);      vec4 c     = mix(sunDiscA, sunDiscB, blend_factor); -    //c.rgb = fullbrightAtmosTransport(c.rgb); -    c.rgb = fullbrightScaleSoftClip(c.rgb);      // SL-9806 stars poke through      //c.a *= sun_fade; -    frag_data[0] = c; +    frag_data[0] = vec4(0);      frag_data[1] = vec4(0.0f);      frag_data[2] = vec4(0.0, 1.0, 0.0, GBUFFER_FLAG_SKIP_ATMOS); +    frag_data[3] = c;  } diff --git a/indra/newview/app_settings/shaders/class1/interface/radianceGenF.glsl b/indra/newview/app_settings/shaders/class1/interface/radianceGenF.glsl index b6f080739e..a1839d4a67 100644 --- a/indra/newview/app_settings/shaders/class1/interface/radianceGenF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/radianceGenF.glsl @@ -151,7 +151,7 @@ vec4 prefilterEnvMap(vec3 R)  			// Solid angle of 1 pixel across all cube faces  			float omegaP = 4.0 * PI / (6.0 * envMapDim * envMapDim);  			// Biased (+1.0) mip level for better result -			float mipLevel = roughness == 0.0 ? 0.0 : max(0.5 * log2(omegaS / omegaP) + 1.0, 0.0f); +			float mipLevel = roughness == 0.0 ? 0.0 : clamp(0.5 * log2(omegaS / omegaP) + 1.0, 0.0f, max_probe_lod);  			color += textureLod(reflectionProbes, vec4(L, sourceIdx), mipLevel) * dotNL;  			totalWeight += dotNL;  		} diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl index ef35bf3fd7..e7322c14fb 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl @@ -79,7 +79,6 @@ vec3 srgb_to_linear(vec3 c);  vec3 linear_to_srgb(vec3 c);  vec2 encode_normal (vec3 n); -vec3 scaleSoftClipFragLinear(vec3 l);  vec3 atmosFragLightingLinear(vec3 light, vec3 additive, vec3 atten);  void calcAtmosphericVarsLinear(vec3 inPositionEye, vec3 norm, vec3 light_dir, out vec3 sunlit, out vec3 amblit, out vec3 atten, out vec3 additive); @@ -279,7 +278,6 @@ void main()      color.rgb = linear_to_srgb(color.rgb);      color.rgb = atmosFragLightingLinear(color.rgb, additive, atten); -    color.rgb = scaleSoftClipFragLinear(color.rgb);      color.rgb = srgb_to_linear(color.rgb);      vec4 light = vec4(0,0,0,0); diff --git a/indra/newview/app_settings/shaders/class3/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/multiPointLightF.glsl index 7d8f9c218d..0fb30559d4 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/multiPointLightF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/multiPointLightF.glsl @@ -37,7 +37,6 @@ uniform sampler2D depthMap;  uniform sampler2D diffuseRect;  uniform sampler2D specularRect;  uniform sampler2D emissiveRect; // PBR linear packed Occlusion, Roughness, Metal. See: pbropaqueF.glsl -uniform sampler2D     noiseMap;  uniform sampler2D     lightFunc;  uniform vec3  env_mat[3]; @@ -132,9 +131,6 @@ void main()      }      else      { - -        float noise = texture2D(noiseMap, tc).b; -          diffuse = srgb_to_linear(diffuse);          spec.rgb = srgb_to_linear(spec.rgb); @@ -154,7 +150,6 @@ void main()                      float fa         = light_col[i].a;                      float dist_atten = calcLegacyDistanceAttenuation(dist, fa); -                    dist_atten *= noise;                      float lit = nl * dist_atten; diff --git a/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl index 5ed8a75e0e..30b7895157 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/multiSpotLightF.glsl @@ -41,7 +41,6 @@ uniform sampler2D normalMap;  uniform sampler2D emissiveRect; // PBR linear packed Occlusion, Roughness, Metal. See: pbropaqueF.glsl  uniform samplerCube environmentMap;  uniform sampler2D lightMap; -uniform sampler2D noiseMap;  uniform sampler2D projectionMap; // rgba  uniform sampler2D lightFunc; @@ -187,7 +186,6 @@ void main()          diffuse = srgb_to_linear(diffuse);          spec.rgb = srgb_to_linear(spec.rgb); -        float noise = texture2D(noiseMap, tc).b;          if (proj_tc.z > 0.0 &&              proj_tc.x < 1.0 &&              proj_tc.y < 1.0 && @@ -199,7 +197,7 @@ void main()              if (nl > 0.0)              { -                lit = nl * dist_atten * noise; +                lit = nl * dist_atten;                  dlit = getProjectedLightDiffuseColor( l_dist, proj_tc.xy ); @@ -209,7 +207,7 @@ void main()                  amb_da += (nl*0.5+0.5) /* * (1.0-shadow) */ * proj_ambiance;              } -            amb_rgb = getProjectedLightAmbiance( amb_da, dist_atten, lit, nl, noise, proj_tc.xy ); +            amb_rgb = getProjectedLightAmbiance( amb_da, dist_atten, lit, nl, 1.0, proj_tc.xy );              final_color += diffuse.rgb * amb_rgb;          } diff --git a/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl b/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl index 9b5cb39883..7a5676e0ab 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl @@ -92,6 +92,7 @@ bool shouldSampleProbe(int i, vec3 pos)              return false;          } +        // never allow automatic probes to encroach on box probes          sample_automatic = false;      }      else @@ -426,25 +427,19 @@ void boxIntersectDebug(vec3 origin, vec3 pos, int i, inout vec4 col)  //  dir - normal to be weighted  //  origin - center of sphere probe  //  r - radius of probe influence volume -// min_da - minimum angular attenuation coefficient  // i - index of probe in refSphere  // dw - distance weight -float sphereWeight(vec3 pos, vec3 dir, vec3 origin, float r, float min_da, int i, out float dw) +float sphereWeight(vec3 pos, vec3 dir, vec3 origin, float r, int i, out float dw)  {      float r1 = r * 0.5; // 50% of radius (outer sphere to start interpolating down)      vec3 delta = pos.xyz - origin;      float d2 = max(length(delta), 0.001); -    float r2 = r1; //r1 * r1; - -    //float atten = 1.0 - max(d2 - r2, 0.0) / max((rr - r2), 0.001); -    float atten = 1.0 - max(d2 - r2, 0.0) / max((r - r2), 0.001); +    float atten = 1.0 - max(d2 - r1, 0.0) / max((r - r1), 0.001);      float w = 1.0 / d2;      dw = w * atten * max(r, 1.0)*4; -    atten *= max(dot(normalize(-delta), dir), min_da); -      w *= atten;      return w; @@ -481,7 +476,7 @@ vec3 tapRefMap(vec3 pos, vec3 dir, out float w, out float dw, float lod, vec3 c,          refIndex[i].w < 1 ? 4096.0*4096.0 : // <== effectively disable parallax correction for automatically placed probes to keep from bombing the world with obvious spheres                  rr); -        w = sphereWeight(pos, dir, refSphere[i].xyz, r, 0.25, i, dw); +        w = sphereWeight(pos, dir, refSphere[i].xyz, r, i, dw);      }      v -= c; @@ -521,7 +516,7 @@ vec3 tapIrradianceMap(vec3 pos, vec3 dir, out float w, out float dw, vec3 c, int          refIndex[i].w < 1 ? 4096.0*4096.0 : // <== effectively disable parallax correction for automatically placed probes to keep from bombing the world with obvious spheres                  rr); -        w = sphereWeight(pos, dir, refSphere[i].xyz, r, 0.001, i, dw); +        w = sphereWeight(pos, dir, refSphere[i].xyz, r, i, dw);      }      v -= c; @@ -559,7 +554,6 @@ vec3 sampleProbes(vec3 pos, vec3 dir, float lod)          float dw = 0;          vec3 refcol; -                  {              refcol = tapRefMap(pos, dir, w, dw, lod, refSphere[i].xyz, i); @@ -653,7 +647,7 @@ void sampleReflectionProbes(inout vec3 ambenv, inout vec3 glossenv,          vec2 tc, vec3 pos, vec3 norm, float glossiness)  {      // TODO - don't hard code lods -    float reflection_lods = max_probe_lod-1; +    float reflection_lods = max_probe_lod;      preProbeSample(pos);      vec3 refnormpersp = reflect(pos.xyz, norm.xyz); @@ -732,7 +726,7 @@ void sampleReflectionProbesLegacy(inout vec3 ambenv, inout vec3 glossenv, inout      vec3 refnormpersp = reflect(pos.xyz, norm.xyz);      ambenv = sampleProbeAmbient(pos, norm); -     +      if (glossiness > 0.0)      {          float lod = (1.0-glossiness)*reflection_lods; diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl index dfd1d47b3e..0e3ebd1534 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl @@ -211,7 +211,7 @@ void main()      else if (!GET_GBUFFER_FLAG(GBUFFER_FLAG_HAS_ATMOS))      {          //should only be true of WL sky, just port over base color value -        color = srgb_to_linear(baseColor.rgb); +        color = srgb_to_linear(texture2D(emissiveRect, tc).rgb);      }      else      { diff --git a/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl index 3d8b95b882..33ea2129cf 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/spotLightF.glsl @@ -51,7 +51,6 @@ uniform sampler2D normalMap;  uniform sampler2D emissiveRect; // PBR linear packed Occlusion, Roughness, Metal. See: pbropaqueF.glsl  uniform samplerCube environmentMap;  uniform sampler2D lightMap; -uniform sampler2D noiseMap;  uniform sampler2D projectionMap; // rgba  uniform sampler2D lightFunc; @@ -193,7 +192,6 @@ void main()          diffuse = srgb_to_linear(diffuse);          spec.rgb = srgb_to_linear(spec.rgb); -        float noise = texture2D(noiseMap, tc).b;          if (proj_tc.z > 0.0 &&              proj_tc.x < 1.0 &&              proj_tc.y < 1.0 && @@ -205,7 +203,7 @@ void main()              if (nl > 0.0)              { -                lit = nl * dist_atten * noise; +                lit = nl * dist_atten;                  dlit = getProjectedLightDiffuseColor( l_dist, proj_tc.xy ); @@ -214,7 +212,7 @@ void main()                  amb_da += (nl*0.5+0.5) /* * (1.0-shadow) */ * proj_ambiance;              } -            vec3 amb_rgb = getProjectedLightAmbiance( amb_da, dist_atten, lit, nl, noise, proj_tc.xy ); +            vec3 amb_rgb = getProjectedLightAmbiance( amb_da, dist_atten, lit, nl, 1.0, proj_tc.xy );              final_color += diffuse.rgb*amb_rgb;    #if DEBUG_LEG_LIGHT_TYPE              final_color = vec3(0,0.5,0); | 
