diff --git a/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp b/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp index 6d0ca1e4fd..b03dfe89db 100644 --- a/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp @@ -60,6 +60,7 @@ void ZoneEntityRenderer::onRemoveFromSceneTyped(const TypedEntityPointer& entity } } +#pragma optimize("", off); void ZoneEntityRenderer::doRender(RenderArgs* args) { #if 0 if (ZoneEntityItem::getDrawZoneBoundaries()) { diff --git a/libraries/model/src/model/Haze.h b/libraries/model/src/model/Haze.h index 0e65f19285..9ab4ec845f 100644 --- a/libraries/model/src/model/Haze.h +++ b/libraries/model/src/model/Haze.h @@ -83,7 +83,7 @@ namespace model { void setHazeBackgroundBlendValue(const float hazeBackgroundBlendValue); - UniformBufferView getParametersBuffer() const { return _parametersBuffer; } + UniformBufferView getHazeParametersBuffer() const { return _parametersBuffer; } protected: class Parameters { diff --git a/libraries/render-utils/src/DeferredLightingEffect.cpp b/libraries/render-utils/src/DeferredLightingEffect.cpp index 56681459d1..6cd3cb1dca 100644 --- a/libraries/render-utils/src/DeferredLightingEffect.cpp +++ b/libraries/render-utils/src/DeferredLightingEffect.cpp @@ -552,8 +552,10 @@ void RenderDeferredSetup::run(const render::RenderContextPointer& renderContext, deferredLightingEffect->setupKeyLightBatch(args, batch, locations->lightBufferUnit, locations->ambientBufferUnit, SKYBOX_MAP_UNIT); // Haze - batch.setUniformBuffer(HAZE_MODEL_BUFFER_SLOT, haze->getParametersBuffer()); - + if (haze != nullptr) { + batch.setUniformBuffer(HAZE_MODEL_BUFFER_SLOT, haze->getHazeParametersBuffer()); + } + batch.draw(gpu::TRIANGLE_STRIP, 4); deferredLightingEffect->unsetKeyLightBatch(batch, locations->lightBufferUnit, locations->ambientBufferUnit, SKYBOX_MAP_UNIT); diff --git a/libraries/render-utils/src/DrawHaze.cpp b/libraries/render-utils/src/DrawHaze.cpp index bd51836c8a..763507f8f8 100644 --- a/libraries/render-utils/src/DrawHaze.cpp +++ b/libraries/render-utils/src/DrawHaze.cpp @@ -125,8 +125,13 @@ const int HazeEffect_LinearDepthMapSlot = 3; void DrawHaze::configure(const Config& config) { } +#pragma optimize("", off) void DrawHaze::run(const render::RenderContextPointer& renderContext, const Inputs& inputs) { const auto haze = inputs.get0(); + if (haze == nullptr) { + return; + } + const auto inputBuffer = inputs.get1()->getRenderBuffer(0); const auto framebuffer = inputs.get2(); const auto transformBuffer = inputs.get3(); @@ -169,7 +174,7 @@ void DrawHaze::run(const render::RenderContextPointer& renderContext, const Inpu batch.setPipeline(_hazePipeline); - batch.setUniformBuffer(HazeEffect_ParamsSlot, haze->getParametersBuffer()); + batch.setUniformBuffer(HazeEffect_ParamsSlot, haze->getHazeParametersBuffer()); batch.setUniformBuffer(HazeEffect_TransformBufferSlot, transformBuffer->getFrameTransformBuffer()); batch.setResourceTexture(HazeEffect_LightingMapSlot, inputBuffer); diff --git a/libraries/render-utils/src/HazeStage.cpp b/libraries/render-utils/src/HazeStage.cpp index f5405d01d3..4acc5d534c 100644 --- a/libraries/render-utils/src/HazeStage.cpp +++ b/libraries/render-utils/src/HazeStage.cpp @@ -84,10 +84,12 @@ void HazeStageSetup::run(const render::RenderContextPointer& renderContext) { } } +#pragma optimize("", off) void FetchHazeStage::run(const render::RenderContextPointer& renderContext, model::HazePointer& haze) { auto hazeStage = renderContext->_scene->getStage(); assert(hazeStage); + haze = nullptr; if (hazeStage->_currentFrame._hazes.size() != 0) { auto hazeId = hazeStage->_currentFrame._hazes.front(); haze = hazeStage->getHaze(hazeId); diff --git a/libraries/render-utils/src/ZoneRenderer.cpp b/libraries/render-utils/src/ZoneRenderer.cpp index d59fb6e61c..a3268b7ac1 100644 --- a/libraries/render-utils/src/ZoneRenderer.cpp +++ b/libraries/render-utils/src/ZoneRenderer.cpp @@ -72,7 +72,6 @@ void SetupZones::run(const RenderContextPointer& context, const Inputs& inputs) auto hazeStage = context->_scene->getStage(); assert(hazeStage); hazeStage->_currentFrame.clear(); - hazeStage->_currentFrame.pushHaze(0); } const gpu::PipelinePointer& DebugZoneLighting::getKeyLightPipeline() {