summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRunitaiLinden <davep@lindenlab.com>2023-12-14 14:11:46 -0600
committerRunitaiLinden <davep@lindenlab.com>2023-12-14 14:11:46 -0600
commit8b86e2ad1b1326cb3e98acd857dc93f4f1455b8c (patch)
tree093646ed0bbe4c06b3f6fe7ee151fc3d82ac5b50
parent7bfe590a3669a005d4269cdcf378891080264dce (diff)
SL-20611 Followup -- fix for depth based atmospheric mask making atmospherics effect sun/moon/clouds
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/hazeF.glsl3
-rw-r--r--indra/newview/lldrawpool.h6
-rw-r--r--indra/newview/lldrawpoolwlsky.cpp3
3 files changed, 7 insertions, 5 deletions
diff --git a/indra/newview/app_settings/shaders/class3/deferred/hazeF.glsl b/indra/newview/app_settings/shaders/class3/deferred/hazeF.glsl
index 229f332b36..0b154e82ad 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/hazeF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/hazeF.glsl
@@ -78,13 +78,12 @@ void main()
do_atmospherics = true;
}
-
vec3 irradiance = vec3(0);
vec3 radiance = vec3(0);
if (depth >= 1.0)
{
- //should only be true of WL sky, just port over base color value
+ //should only be true of sky, clouds, sun/moon, and stars
discard;
}
diff --git a/indra/newview/lldrawpool.h b/indra/newview/lldrawpool.h
index 4300670445..0925a01439 100644
--- a/indra/newview/lldrawpool.h
+++ b/indra/newview/lldrawpool.h
@@ -53,7 +53,9 @@ public:
// before grass, so grass should be the first alpha masked pool. Other ordering should be done
// based on fill rate and likelihood to occlude future passes (faster, large occluders first).
//
- POOL_SIMPLE = 1,
+ POOL_SKY = 1,
+ POOL_WL_SKY,
+ POOL_SIMPLE,
POOL_FULLBRIGHT,
POOL_BUMP,
POOL_TERRAIN,
@@ -64,8 +66,6 @@ public:
POOL_TREE,
POOL_ALPHA_MASK,
POOL_FULLBRIGHT_ALPHA_MASK,
- POOL_SKY,
- POOL_WL_SKY,
POOL_AVATAR,
POOL_CONTROL_AV, // Animesh
POOL_GLOW,
diff --git a/indra/newview/lldrawpoolwlsky.cpp b/indra/newview/lldrawpoolwlsky.cpp
index 05ee328e43..b14235f25c 100644
--- a/indra/newview/lldrawpoolwlsky.cpp
+++ b/indra/newview/lldrawpoolwlsky.cpp
@@ -87,6 +87,9 @@ void LLDrawPoolWLSky::endDeferredPass(S32 pass)
cloud_shader = nullptr;
sun_shader = nullptr;
moon_shader = nullptr;
+
+ // clear the depth buffer so haze shaders can use unwritten depth as a mask
+ glClear(GL_DEPTH_BUFFER_BIT);
}
void LLDrawPoolWLSky::renderDome(const LLVector3& camPosLocal, F32 camHeightLocal, LLGLSLShader * shader) const