summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-04-25 10:59:00 -0700
committerGraham Linden <graham@lindenlab.com>2019-04-25 10:59:00 -0700
commit4ed05fc84fce0fbee76c583e91feed5aff2dbbfc (patch)
tree31bfec7a2b09919d9df3a050d2f2ed369d31f0ad /indra/newview
parentca16874379bf76dd844d57b2ee59da531d642a8e (diff)
Fix dark ALM and strangeness at Mid lighting (class 3 but with a darkness about it).
Make a distinct class3/lighting/lightV which boosts to WL levels (* 2.0) and make lighting without WL atmo enabled use class 2 or below. Make forward shaders (alpha and materialF with alpha-blend mode on) more consistent with deferred lighting.
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl1
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/materialF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class3/lighting/lightV.glsl5
-rw-r--r--indra/newview/llviewershadermgr.cpp9
6 files changed, 15 insertions, 11 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
index e8400ba66d..8709053ac6 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
@@ -201,7 +201,6 @@ void main()
float final_da = da;
final_da = clamp(final_da, 0.0f, 1.0f);
- final_da = pow(final_da, 1.0/1.3);
vec4 color = vec4(0,0,0,0);
diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
index f1dbf4af46..5926236fd7 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
@@ -302,7 +302,6 @@ void main()
float final_da = da;
final_da = clamp(final_da, 0.0, 1.0);
- final_da = pow(final_da, 1.0 / 1.3);
float ambient = da;
ambient *= 0.5;
@@ -372,6 +371,8 @@ vec3 post_spec = col.rgb;
glare += cur_glare;
}
+vec3 post_env = col.rgb;
+
col = atmosFragLighting(col, additive, atten);
col = scaleSoftClipFrag(col);
@@ -379,7 +380,7 @@ vec3 post_spec = col.rgb;
vec3 light = vec3(0,0,0);
- vec3 prelight_linearish_maybe = srgb_to_linear(col.rgb);
+vec3 post_atmo = col.rgb;
#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 * 0.5);
@@ -393,7 +394,7 @@ vec3 post_spec = col.rgb;
vec3 light_linear = light.rgb;
- col.rgb += light.rgb;
+ col.rgb += light_linear;
vec3 postlight_linear = col.rgb;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
index 68deedd0d0..83006c8916 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
@@ -108,7 +108,7 @@ void main()
vec3 atten;
calcAtmosphericVars(pos.xyz, 1.0, sunlit, amblit, additive, atten);
- sunlit *= 0.5;
+
float ambient = da;
ambient *= 0.5;
ambient *= ambient;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index dd70790fc3..2d5d1c1b50 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -120,7 +120,7 @@ void main()
vec3 atten;
calcAtmosphericVars(pos.xyz, ambocc, sunlit, amblit, additive, atten);
- sunlit *= 0.5;
+
float ambient = da;
ambient *= 0.5;
ambient *= ambient;
diff --git a/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl b/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl
index b19f4e96ca..efe7f69f21 100644
--- a/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl
+++ b/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl
@@ -28,10 +28,9 @@
// All lights, no specular highlights
vec4 sumLights(vec3 pos, vec3 norm, vec4 color, vec4 baseLight);
-vec3 atmosAmbient(vec3 c);
+
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
{
- vec4 l = sumLights(pos, norm, color, baseLight);
- return l;
+ return sumLights(pos, norm, color, baseLight) * 2.0f;
}
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index ebfdc38d50..0bd4a5eae0 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -478,7 +478,8 @@ void LLViewerShaderMgr::setShaders()
//using shaders, disable fixed function
LLGLSLShader::sNoFixedFunction = true;
- S32 light_class = 2;
+ S32 light_class = 3;
+ S32 interface_class = 2;
S32 env_class = 2;
S32 obj_class = 2;
S32 effect_class = 2;
@@ -519,6 +520,10 @@ void LLViewerShaderMgr::setShaders()
// windlight shaders to stub versions.
wl_class = 2;
}
+ else
+ {
+ light_class = 2;
+ }
// Trigger a full rebuild of the fallback skybox / cubemap if we've toggled windlight shaders
if (mShaderLevel[SHADER_WINDLIGHT] != wl_class && gSky.mVOSkyp.notNull())
@@ -528,7 +533,7 @@ void LLViewerShaderMgr::setShaders()
// Load lighting shaders
mShaderLevel[SHADER_LIGHTING] = light_class;
- mShaderLevel[SHADER_INTERFACE] = light_class;
+ mShaderLevel[SHADER_INTERFACE] = interface_class;
mShaderLevel[SHADER_ENVIRONMENT] = env_class;
mShaderLevel[SHADER_WATER] = water_class;
mShaderLevel[SHADER_OBJECT] = obj_class;