diff options
author | Dave Parks <davep@lindenlab.com> | 2022-05-18 23:51:06 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2022-05-18 23:51:06 -0500 |
commit | 02fb1bd6103cad5538fc170e015f4329f3545542 (patch) | |
tree | 56fa652846482c973ece3fc75252cc1dc1bfec4f | |
parent | 63878a60eb8ab6884ed3aeec63a28e5089636092 (diff) |
Make reflection probe ambiance controllable by a saved setting
-rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
-rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl | 7 | ||||
-rw-r--r-- | indra/newview/llreflectionmapmanager.cpp | 5 |
3 files changed, 21 insertions, 2 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index aa2f1e9192..874d685ef4 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 d188233a8d..d6b173b89d 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 f4fdc3993f..8aacbba6be 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); |