From b53e411184aa17307b6065d1ee4e825eadbe13a7 Mon Sep 17 00:00:00 2001 From: Nissim Hadar Date: Tue, 9 Jan 2018 15:24:46 -0800 Subject: [PATCH] Corrected pushing of default lights. --- libraries/render-utils/src/LightStage.cpp | 12 ++++-------- libraries/render-utils/src/LightStage.h | 2 ++ libraries/render-utils/src/ZoneRenderer.cpp | 7 ++++--- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/libraries/render-utils/src/LightStage.cpp b/libraries/render-utils/src/LightStage.cpp index d62f52047b..42b161ba74 100644 --- a/libraries/render-utils/src/LightStage.cpp +++ b/libraries/render-utils/src/LightStage.cpp @@ -360,8 +360,7 @@ LightStage::LightPointer LightStage::removeLight(Index index) { LightStage::LightPointer LightStage::getCurrentKeyLight() const { Index keyLightId{ _defaultLightId }; - // There is always at least 1 light (the off light) - if (_currentFrame._sunLights.size() > 1) { + if (!_currentFrame._sunLights.empty()) { keyLightId = _currentFrame._sunLights.front(); } return _lights.get(keyLightId); @@ -369,8 +368,7 @@ LightStage::LightPointer LightStage::getCurrentKeyLight() const { LightStage::LightPointer LightStage::getCurrentAmbientLight() const { Index keyLightId { _defaultLightId }; - // There is always at least 1 light (the off light) - if (_currentFrame._ambientLights.size() > 1) { + if (!_currentFrame._ambientLights.empty()) { keyLightId = _currentFrame._ambientLights.front(); } return _lights.get(keyLightId); @@ -378,8 +376,7 @@ LightStage::LightPointer LightStage::getCurrentAmbientLight() const { LightStage::ShadowPointer LightStage::getCurrentKeyShadow() const { Index keyLightId { _defaultLightId }; - // There is always at least 1 light (the off light) - if (_currentFrame._sunLights.size() > 1) { + if (!_currentFrame._sunLights.empty()) { keyLightId = _currentFrame._sunLights.front(); } auto shadow = getShadow(keyLightId); @@ -389,8 +386,7 @@ LightStage::ShadowPointer LightStage::getCurrentKeyShadow() const { LightStage::LightAndShadow LightStage::getCurrentKeyLightAndShadow() const { Index keyLightId { _defaultLightId }; - // There is always at least 1 light (the off light) - if (_currentFrame._sunLights.size() > 1) { + if (!_currentFrame._sunLights.empty()) { keyLightId = _currentFrame._sunLights.front(); } auto shadow = getShadow(keyLightId); diff --git a/libraries/render-utils/src/LightStage.h b/libraries/render-utils/src/LightStage.h index b47e454b88..8da2ba3900 100644 --- a/libraries/render-utils/src/LightStage.h +++ b/libraries/render-utils/src/LightStage.h @@ -119,6 +119,8 @@ public: Index findLight(const LightPointer& light) const; Index addLight(const LightPointer& light, const bool shouldSetAsDefault = false); + + const Index getDefaultLight() const { return _defaultLightId; } Index addShadow(Index lightIndex, float maxDistance = 20.0f, unsigned int cascadeCount = 1U); diff --git a/libraries/render-utils/src/ZoneRenderer.cpp b/libraries/render-utils/src/ZoneRenderer.cpp index 8494688f92..c0d01c2eaf 100644 --- a/libraries/render-utils/src/ZoneRenderer.cpp +++ b/libraries/render-utils/src/ZoneRenderer.cpp @@ -68,10 +68,11 @@ void SetupZones::run(const RenderContextPointer& context, const Inputs& inputs) auto lightStage = context->_scene->getStage(); assert(lightStage); - lightStage->_currentFrame.pushSunLight(0); - lightStage->_currentFrame.pushAmbientLight(0); - hazeStage->_currentFrame.pushHaze(0); + lightStage->_currentFrame.pushSunLight(lightStage->getDefaultLight()); + lightStage->_currentFrame.pushAmbientLight(lightStage->getDefaultLight()); + backgroundStage->_currentFrame.pushBackground(0); + hazeStage->_currentFrame.pushHaze(0); } const gpu::PipelinePointer& DebugZoneLighting::getKeyLightPipeline() {