summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-05-06 16:29:06 -0700
committerGraham Linden <graham@lindenlab.com>2019-05-06 16:29:06 -0700
commitc61f73321dbef9f0f5741830bfbaa8facd6ec060 (patch)
tree9f07c674db061b81ca24a05470defb4a04fb5bec /indra
parentac080210a8cd2f64c040f980708ccce2c5464874 (diff)
SL-11102, SL-11103
Fix diffuse boost in deferred lighting to match non-deferred. Make class2 soften not clamp shadow color to incoming alpha (make shadows appear on terrain underwater).
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/materialF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl7
-rw-r--r--indra/newview/pipeline.cpp13
5 files changed, 8 insertions, 18 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
index 2112fa8251..dbd7abd7e5 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
@@ -240,8 +240,6 @@ vec3 post_sunlight = color.rgb;
vec3 post_diffuse = color.rgb;
- //color.rgb = mix(diffuse_linear.rgb, color.rgb, final_alpha);
-
color.rgb = atmosFragLighting(color.rgb, additive, atten);
color.rgb = scaleSoftClipFrag(color.rgb);
diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
index ba1f121bfd..7533762a96 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
@@ -367,8 +367,6 @@ vec3 post_diffuse = color.rgb;
vec3 post_spec = color.rgb;
- //color = mix(color.rgb, diffuse_srgb.rgb, diffuse_srgb.a);
-
if (envIntensity > 0.0)
{
//add environmentmap
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
index 981a50769a..fb9f6d7f37 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
@@ -153,8 +153,6 @@ vec3 post_diffuse = color.rgb;
vec3 post_spec = color.rgb;
- color.rgb += diffuse_srgb.a * diffuse_srgb.rgb;
-
if (envIntensity > 0.0)
{ //add environmentmap
vec3 env_vec = env_mat * refnormpersp;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index f6f8f56103..73b4473be5 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -95,7 +95,10 @@ void main()
vec4 diffuse_srgb = texture2DRect(diffuseRect, tc);
vec4 diffuse_linear = vec4(srgb_to_linear(diffuse_srgb.rgb), diffuse_srgb.a);
- scol = max(scol_ambocc.r, diffuse_linear.a);
+
+ // clamping to alpha value kills underwater shadows...
+ //scol = max(scol_ambocc.r, diffuse_linear.a);
+ scol = scol_ambocc.r;
vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy);
vec3 color = vec3(0);
@@ -160,8 +163,6 @@ vec3 post_diffuse = color.rgb;
vec3 post_spec = color.rgb;
- color.rgb += diffuse_srgb.a * diffuse_srgb.rgb;
-
if (envIntensity > 0.0)
{ //add environmentmap
vec3 env_vec = env_mat * refnormpersp;
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 3277a6ed32..c57b267c92 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -2327,8 +2327,6 @@ bool LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3&
LLViewerCamera::eCameraID saved_camera_id = LLViewerCamera::sCurCameraID;
LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD;
- bool res = true;
-
for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();
iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
{
@@ -2339,20 +2337,17 @@ bool LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3&
LLSpatialPartition* part = region->getSpatialPartition(i);
if (part)
{
- if (hasRenderType(part->mDrawableType))
+ if (hasRenderType(part->mDrawableType) && !part->getVisibleExtents(camera, min, max))
{
- if (!part->getVisibleExtents(camera, min, max))
- {
- res = false;
- }
+ LLViewerCamera::sCurCameraID = saved_camera_id;
+ return false;
}
}
}
}
LLViewerCamera::sCurCameraID = saved_camera_id;
-
- return res;
+ return true;
}
static LLTrace::BlockTimerStatHandle FTM_CULL("Object Culling");