summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2025-01-02 14:42:49 -0500
committerGitHub <noreply@github.com>2025-01-02 14:42:49 -0500
commitcba1807a9164442880dbcbd48e1faff7a82153c7 (patch)
tree8b11f99e41eb0fccf41a0a1a80886dcdce6a34f6
parenta27515748fd1fd14a12ffc7f12b415decf6099de (diff)
#3326 Skip ambient probe sampling when we're in classic mode. Ensure that our passed in ambient lighting is the only thing that gets applied. (#3327)
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl12
1 files changed, 10 insertions, 2 deletions
diff --git a/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl b/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl
index 5dfa196cf6..a975b1f121 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl
@@ -38,6 +38,8 @@ uniform float max_probe_lod;
uniform bool transparent_surface;
+uniform int classic_mode;
+
#define MAX_REFMAP_COUNT 256 // must match LL_MAX_REFLECTION_PROBE_COUNT
layout (std140) uniform ReflectionProbes
@@ -739,7 +741,10 @@ void doProbeSample(inout vec3 ambenv, inout vec3 glossenv,
vec3 refnormpersp = reflect(pos.xyz, norm.xyz);
- ambenv = sampleProbeAmbient(pos, norm, amblit);
+ ambenv = amblit;
+
+ if (classic_mode == 0)
+ ambenv = sampleProbeAmbient(pos, norm, amblit);
float lod = (1.0-glossiness)*reflection_lods;
glossenv = sampleProbes(pos, normalize(refnormpersp), lod);
@@ -845,7 +850,10 @@ void sampleReflectionProbesLegacy(inout vec3 ambenv, inout vec3 glossenv, inout
vec3 refnormpersp = reflect(pos.xyz, norm.xyz);
- ambenv = sampleProbeAmbient(pos, norm, amblit);
+ ambenv = amblit;
+
+ if (classic_mode == 0)
+ ambenv = sampleProbeAmbient(pos, norm, amblit);
if (glossiness > 0.0)
{