diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index aa2f1e919258485b840ac60b78b8da2f68f802ef..874d685ef42b5ff3ab390085f8c0afa1d0eaf759 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -10280,6 +10280,17 @@
     <key>Value</key>
     <real>64</real>
   </map>
+  <key>RenderReflectionProbeAmbiance</key>
+  <map>
+    <key>Comment</key>
+    <string>Amount reflection probes contribute to ambient light.</string>
+    <key>Persist</key>
+    <integer>1</integer>
+    <key>Type</key>
+    <string>F32</string>
+    <key>Value</key>
+    <real>0</real>
+  </map>
   <key>RenderReflectionProbeTextureHackID</key>
   <map>
     <key>Comment</key>
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index d188233a8d359996bb8b6fbb06689fab71ef90f1..d6b173b89d0d2cc912fde6245da32139d47a4347 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -69,6 +69,9 @@ layout (std140, binding = 1) uniform ReflectionProbes
 
     // number of reflection probes present in refSphere
     int refmapCount;
+
+    // intensity of ambient light from reflection probes
+    float reflectionAmbiance;
 };
 
 uniform float blur_size;
@@ -451,7 +454,7 @@ vec3 sampleAmbient(vec3 pos, vec3 dir, float lod)
     
     col *= 0.333333;
 
-    return col*0.8; // fudge darker
+    return col*reflectionAmbiance;
 
 }
 
@@ -507,7 +510,7 @@ void main()
 
     //vec3 amb_vec = env_mat * norm.xyz;
 
-    vec3 ambenv = sampleAmbient(pos.xyz, norm.xyz, reflection_lods);
+    vec3 ambenv = sampleAmbient(pos.xyz, norm.xyz, reflection_lods-1);
     amblit = max(ambenv, amblit);
     color.rgb = amblit*ambocc;
 
diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp
index f4fdc3993fae3d33102e880c832125f5cc3137fa..8aacbba6beed55b774008f6c73d045241f737c4a 100644
--- a/indra/newview/llreflectionmapmanager.cpp
+++ b/indra/newview/llreflectionmapmanager.cpp
@@ -32,6 +32,7 @@
 #include "llviewerregion.h"
 #include "pipeline.h"
 #include "llviewershadermgr.h"
+#include "llviewercontrol.h"
 
 extern BOOL gCubeSnapshot;
 extern BOOL gTeleportDisplay;
@@ -514,6 +515,7 @@ void LLReflectionMapManager::setUniforms()
         GLint refIndex[LL_REFLECTION_PROBE_COUNT][4];
         GLint refNeighbor[4096];
         GLint refmapCount;
+        GLfloat reflectionAmbiance;
     };
 
     mReflectionMaps.resize(LL_REFLECTION_PROBE_COUNT);
@@ -521,6 +523,9 @@ void LLReflectionMapManager::setUniforms()
 
     ReflectionProbeData rpd;
 
+    static LLCachedControl<F32> ambiance(gSavedSettings, "RenderReflectionProbeAmbiance", 0.f);
+    rpd.reflectionAmbiance = ambiance;
+
     // load modelview matrix into matrix 4a
     LLMatrix4a modelview;
     modelview.loadu(gGLModelView);