summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-06-06 15:55:50 -0700
committerGraham Linden <graham@lindenlab.com>2019-06-06 15:55:50 -0700
commit158a0104c1d00e56b46fec31e650cd6942cac735 (patch)
tree8a08682e25b6c4a7bbbf852311199c46ade1891d /indra
parenta7856d4fc5b765b2e381f7606633db9431a3a80c (diff)
SL-11367
Use rotated lightnorm directly in water shader instead of forcing all shaders marked as water (including lighting) to get that norm (where it would only affect Mid as only that graphics mode has atmospherics on but isn't using deferred rendering).
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/lldrawpoolwater.cpp4
-rw-r--r--indra/newview/llsettingsvo.cpp6
2 files changed, 6 insertions, 4 deletions
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index 2c9418ca19..1b5c154378 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -606,6 +606,10 @@ void LLDrawPoolWater::shade2(bool edge, LLGLSLShader* shader, const LLColor3& li
shader->uniform1f(LLShaderMgr::WATER_SUN_ANGLE2, 0.1f + 0.2f*sunAngle);
shader->uniform1i(LLShaderMgr::WATER_EDGE_FACTOR, edge ? 1 : 0);
+ LLVector4 rotated_light_direction = LLEnvironment::instance().getRotatedLightNorm();
+ shader->uniform4fv(LLViewerShaderMgr::LIGHTNORM, 1, rotated_light_direction.mV);
+ shader->uniform3fv(LLShaderMgr::WL_CAMPOSLOCAL, 1, LLViewerCamera::getInstance()->getOrigin().mV);
+
if (LLViewerCamera::getInstance()->cameraUnderWater())
{
shader->uniform1f(LLShaderMgr::WATER_REFSCALE, pwater->getScaleBelow());
diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp
index f4cd0eef6e..cc70f651cf 100644
--- a/indra/newview/llsettingsvo.cpp
+++ b/indra/newview/llsettingsvo.cpp
@@ -947,10 +947,8 @@ void LLSettingsVOWater::applySpecial(void *ptarget)
F32 blend_factor = env.getCurrentWater()->getBlendFactor();
shader->uniform1f(LLShaderMgr::BLEND_FACTOR, blend_factor);
- LLVector4 rotated_light_direction = LLEnvironment::instance().getRotatedLightNorm();
- shader->uniform4fv(LLViewerShaderMgr::LIGHTNORM, 1, rotated_light_direction.mV);
- shader->uniform3fv(LLShaderMgr::WL_CAMPOSLOCAL, 1, LLViewerCamera::getInstance()->getOrigin().mV);
- shader->uniform1f(LLViewerShaderMgr::DISTANCE_MULTIPLIER, 0);
+ // update to normal lightnorm, water shader itself will use rotated lightnorm as necessary
+ shader->uniform4fv(LLShaderMgr::LIGHTNORM, 1, light_direction.mV);
}
}