From ff98dedbb289e99eb2f96389c17e3ac0dfca11d5 Mon Sep 17 00:00:00 2001 From: samcake Date: Fri, 11 Aug 2017 18:10:44 -0700 Subject: [PATCH 1/7] Debugging the graphics fields activation --- interface/resources/config/render.json | 16 +++++++++++++- interface/src/Application.cpp | 2 +- interface/src/ui/PreferencesDialog.cpp | 22 ++++++++++--------- .../spectator-camera/spectatorCamera.js | 2 +- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/interface/resources/config/render.json b/interface/resources/config/render.json index b5b72d7d07..5266ee0666 100644 --- a/interface/resources/config/render.json +++ b/interface/resources/config/render.json @@ -1,4 +1,18 @@ { + "SecondaryCameraJob": { + "RenderShadowTask": { + "Enabled": { + "enabled": true + } + }, + "RenderDeferredTask": { + "AmbientOcclusion": { + "Enabled": { + "enabled": true + } + } + } + }, "RenderMainView": { "RenderShadowTask": { "Enabled": { @@ -13,4 +27,4 @@ } } } -} +} \ No newline at end of file diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 3d7df0d579..5299ab5b3f 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -351,7 +351,7 @@ public: // Don't actually crash in debug builds, in case this apparent deadlock is simply from // the developer actively debugging code #ifdef NDEBUG - deadlockDetectionCrash(); + // deadlockDetectionCrash(); #endif } } diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp index c9e59ada23..35184a391d 100644 --- a/interface/src/ui/PreferencesDialog.cpp +++ b/interface/src/ui/PreferencesDialog.cpp @@ -315,21 +315,23 @@ void setupPreferences() { static const QString RENDER("Graphics"); auto renderConfig = qApp->getRenderEngine()->getConfiguration(); if (renderConfig) { - auto ambientOcclusionConfig = renderConfig->getConfig(); - if (ambientOcclusionConfig) { - auto getter = [ambientOcclusionConfig]()->QString { return ambientOcclusionConfig->getPreset(); }; - auto setter = [ambientOcclusionConfig](QString preset) { ambientOcclusionConfig->setPreset(preset); }; + auto mainViewAmbientOcclusionConfig = renderConfig->getConfig("RenderMainView.AmbientOcclusion"); + auto camViewAmbientOcclusionConfig = renderConfig->getConfig("SecondaryCameraJob.AmbientOcclusion"); + if (mainViewAmbientOcclusionConfig && camViewAmbientOcclusionConfig) { + auto getter = [mainViewAmbientOcclusionConfig]()->QString { return mainViewAmbientOcclusionConfig->getPreset(); }; + auto setter = [mainViewAmbientOcclusionConfig, camViewAmbientOcclusionConfig](QString preset) { mainViewAmbientOcclusionConfig->setPreset(preset); camViewAmbientOcclusionConfig->setPreset(preset); }; auto preference = new ComboBoxPreference(RENDER, "Ambient occlusion", getter, setter); - preference->setItems(ambientOcclusionConfig->getPresetList()); + preference->setItems(mainViewAmbientOcclusionConfig->getPresetList()); preferences->addPreference(preference); } - auto shadowConfig = renderConfig->getConfig(); - if (shadowConfig) { - auto getter = [shadowConfig]()->QString { return shadowConfig->getPreset(); }; - auto setter = [shadowConfig](QString preset) { shadowConfig->setPreset(preset); }; + auto mainViewShadowConfig = renderConfig->getConfig("RenderMainView.RenderShadowTask"); + auto camViewShadowConfig = renderConfig->getConfig("SecondaryCameraJob.RenderShadowTask"); + if (mainViewShadowConfig && camViewShadowConfig) { + auto getter = [mainViewShadowConfig]()->QString { return mainViewShadowConfig->getPreset(); }; + auto setter = [mainViewShadowConfig, camViewShadowConfig](QString preset) { mainViewShadowConfig->setPreset(preset); camViewShadowConfig->setPreset(preset); }; auto preference = new ComboBoxPreference(RENDER, "Shadows", getter, setter); - preference->setItems(shadowConfig->getPresetList()); + preference->setItems(mainViewShadowConfig->getPresetList()); preferences->addPreference(preference); } } diff --git a/unpublishedScripts/marketplace/spectator-camera/spectatorCamera.js b/unpublishedScripts/marketplace/spectator-camera/spectatorCamera.js index f0b943ad92..fd08cd5655 100644 --- a/unpublishedScripts/marketplace/spectator-camera/spectatorCamera.js +++ b/unpublishedScripts/marketplace/spectator-camera/spectatorCamera.js @@ -153,7 +153,7 @@ // -showSpectatorInDesktop: Set to "true" to show the "SPECTATOR" app in desktop mode. var button = false; var buttonName = "SPECTATOR"; - var showSpectatorInDesktop = false; + var showSpectatorInDesktop = true; function addOrRemoveButton(isShuttingDown, isHMDMode) { if (!tablet) { print("Warning in addOrRemoveButton(): 'tablet' undefined!"); From 05b78b0df06b6962a2e32c09083923f74beee323 Mon Sep 17 00:00:00 2001 From: samcake Date: Mon, 14 Aug 2017 10:46:33 -0700 Subject: [PATCH 2/7] Just fixing the ao combo box field --- interface/resources/config/render.json | 14 -------------- interface/src/ui/PreferencesDialog.cpp | 10 ++++------ 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/interface/resources/config/render.json b/interface/resources/config/render.json index 5266ee0666..83477fef69 100644 --- a/interface/resources/config/render.json +++ b/interface/resources/config/render.json @@ -1,18 +1,4 @@ { - "SecondaryCameraJob": { - "RenderShadowTask": { - "Enabled": { - "enabled": true - } - }, - "RenderDeferredTask": { - "AmbientOcclusion": { - "Enabled": { - "enabled": true - } - } - } - }, "RenderMainView": { "RenderShadowTask": { "Enabled": { diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp index 35184a391d..88b26a1b8c 100644 --- a/interface/src/ui/PreferencesDialog.cpp +++ b/interface/src/ui/PreferencesDialog.cpp @@ -316,20 +316,18 @@ void setupPreferences() { auto renderConfig = qApp->getRenderEngine()->getConfiguration(); if (renderConfig) { auto mainViewAmbientOcclusionConfig = renderConfig->getConfig("RenderMainView.AmbientOcclusion"); - auto camViewAmbientOcclusionConfig = renderConfig->getConfig("SecondaryCameraJob.AmbientOcclusion"); - if (mainViewAmbientOcclusionConfig && camViewAmbientOcclusionConfig) { + if (mainViewAmbientOcclusionConfig) { auto getter = [mainViewAmbientOcclusionConfig]()->QString { return mainViewAmbientOcclusionConfig->getPreset(); }; - auto setter = [mainViewAmbientOcclusionConfig, camViewAmbientOcclusionConfig](QString preset) { mainViewAmbientOcclusionConfig->setPreset(preset); camViewAmbientOcclusionConfig->setPreset(preset); }; + auto setter = [mainViewAmbientOcclusionConfig](QString preset) { mainViewAmbientOcclusionConfig->setPreset(preset); }; auto preference = new ComboBoxPreference(RENDER, "Ambient occlusion", getter, setter); preference->setItems(mainViewAmbientOcclusionConfig->getPresetList()); preferences->addPreference(preference); } auto mainViewShadowConfig = renderConfig->getConfig("RenderMainView.RenderShadowTask"); - auto camViewShadowConfig = renderConfig->getConfig("SecondaryCameraJob.RenderShadowTask"); - if (mainViewShadowConfig && camViewShadowConfig) { + if (mainViewShadowConfig) { auto getter = [mainViewShadowConfig]()->QString { return mainViewShadowConfig->getPreset(); }; - auto setter = [mainViewShadowConfig, camViewShadowConfig](QString preset) { mainViewShadowConfig->setPreset(preset); camViewShadowConfig->setPreset(preset); }; + auto setter = [mainViewShadowConfig](QString preset) { mainViewShadowConfig->setPreset(preset); }; auto preference = new ComboBoxPreference(RENDER, "Shadows", getter, setter); preference->setItems(mainViewShadowConfig->getPresetList()); preferences->addPreference(preference); From db1536c521a138799457b01bda1fac23bfff6065 Mon Sep 17 00:00:00 2001 From: samcake Date: Mon, 14 Aug 2017 10:47:58 -0700 Subject: [PATCH 3/7] Reactivate watch dog exit --- interface/src/Application.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 5299ab5b3f..3d7df0d579 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -351,7 +351,7 @@ public: // Don't actually crash in debug builds, in case this apparent deadlock is simply from // the developer actively debugging code #ifdef NDEBUG - // deadlockDetectionCrash(); + deadlockDetectionCrash(); #endif } } From 465e390f7b8eed76e4f3f78df3d8bc486133c4d5 Mon Sep 17 00:00:00 2001 From: samcake Date: Mon, 14 Aug 2017 10:49:08 -0700 Subject: [PATCH 4/7] Redisable spectator cam from desktop --- .../marketplace/spectator-camera/spectatorCamera.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpublishedScripts/marketplace/spectator-camera/spectatorCamera.js b/unpublishedScripts/marketplace/spectator-camera/spectatorCamera.js index fd08cd5655..f0b943ad92 100644 --- a/unpublishedScripts/marketplace/spectator-camera/spectatorCamera.js +++ b/unpublishedScripts/marketplace/spectator-camera/spectatorCamera.js @@ -153,7 +153,7 @@ // -showSpectatorInDesktop: Set to "true" to show the "SPECTATOR" app in desktop mode. var button = false; var buttonName = "SPECTATOR"; - var showSpectatorInDesktop = true; + var showSpectatorInDesktop = false; function addOrRemoveButton(isShuttingDown, isHMDMode) { if (!tablet) { print("Warning in addOrRemoveButton(): 'tablet' undefined!"); From f86f22309b6eede3425303c1d0a1b09a78337994 Mon Sep 17 00:00:00 2001 From: samcake Date: Mon, 14 Aug 2017 11:31:40 -0700 Subject: [PATCH 5/7] fix render.json --- interface/resources/config/render.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/config/render.json b/interface/resources/config/render.json index 83477fef69..b5b72d7d07 100644 --- a/interface/resources/config/render.json +++ b/interface/resources/config/render.json @@ -13,4 +13,4 @@ } } } -} \ No newline at end of file +} From 816343028203ef50eeae2bb30d26cffdd09af776 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Mon, 14 Aug 2017 15:03:14 -0700 Subject: [PATCH 6/7] fix depth buffer issue that was messing with drawInFront, plus some small fixes to line3ds --- interface/src/ui/overlays/Line3DOverlay.cpp | 12 ++++++------ libraries/render-utils/src/GeometryCache.cpp | 6 +++++- libraries/render-utils/src/RenderDeferredTask.cpp | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/interface/src/ui/overlays/Line3DOverlay.cpp b/interface/src/ui/overlays/Line3DOverlay.cpp index 900c79fc3f..d8fe0e6bb8 100644 --- a/interface/src/ui/overlays/Line3DOverlay.cpp +++ b/interface/src/ui/overlays/Line3DOverlay.cpp @@ -32,6 +32,8 @@ Line3DOverlay::Line3DOverlay(const Line3DOverlay* line3DOverlay) : _length = line3DOverlay->getLength(); _endParentID = line3DOverlay->getEndParentID(); _endParentJointIndex = line3DOverlay->getEndJointIndex(); + _glow = line3DOverlay->getGlow(); + _glowWidth = line3DOverlay->getGlowWidth(); } Line3DOverlay::~Line3DOverlay() { @@ -138,11 +140,9 @@ void Line3DOverlay::render(RenderArgs* args) { // TODO: add support for color to renderDashedLine() geometryCache->bindSimpleProgram(*batch, false, false, false, true, true); geometryCache->renderDashedLine(*batch, start, end, colorv4, _geometryCacheID); - } else if (_glow > 0.0f) { - geometryCache->renderGlowLine(*batch, start, end, colorv4, _glow, _glowWidth, _geometryCacheID); } else { - geometryCache->bindSimpleProgram(*batch, false, false, false, true, true); - geometryCache->renderLine(*batch, start, end, colorv4, _geometryCacheID); + // renderGlowLine handles both glow = 0 and glow > 0 cases + geometryCache->renderGlowLine(*batch, start, end, colorv4, _glow, _glowWidth, _geometryCacheID); } } } @@ -228,9 +228,9 @@ void Line3DOverlay::setProperties(const QVariantMap& originalProperties) { } } - auto glowWidth = properties["glow"]; + auto glowWidth = properties["glowWidth"]; if (glowWidth.isValid()) { - setGlow(glowWidth.toFloat()); + setGlowWidth(glowWidth.toFloat()); } } diff --git a/libraries/render-utils/src/GeometryCache.cpp b/libraries/render-utils/src/GeometryCache.cpp index 5f2acff16f..d7cd860d50 100644 --- a/libraries/render-utils/src/GeometryCache.cpp +++ b/libraries/render-utils/src/GeometryCache.cpp @@ -1640,7 +1640,11 @@ void GeometryCache::renderGlowLine(gpu::Batch& batch, const glm::vec3& p1, const #endif if (glowIntensity <= 0) { - bindSimpleProgram(batch, false, false, false, true, false); + if (color.a >= 1.0) { + bindSimpleProgram(batch, false, false, false, true, true); + } else { + bindSimpleProgram(batch, false, true, false, true, true); + } renderLine(batch, p1, p2, color, id); return; } diff --git a/libraries/render-utils/src/RenderDeferredTask.cpp b/libraries/render-utils/src/RenderDeferredTask.cpp index 20c999019b..c1b2d7fd7b 100644 --- a/libraries/render-utils/src/RenderDeferredTask.cpp +++ b/libraries/render-utils/src/RenderDeferredTask.cpp @@ -357,7 +357,7 @@ void DrawOverlay3D::run(const RenderContextPointer& renderContext, const Inputs& if (_opaquePass) { gpu::doInBatch(args->_context, [&](gpu::Batch& batch){ batch.enableStereo(false); - batch.clearFramebuffer(gpu::Framebuffer::BUFFER_DEPTH, glm::vec4(), 1.f, 0, true); + batch.clearFramebuffer(gpu::Framebuffer::BUFFER_DEPTH, glm::vec4(), 1.f, 0, false); }); } From 194b7d6655339ef02f6122fd769df78d9a9ae22e Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Mon, 14 Aug 2017 16:08:07 -0700 Subject: [PATCH 7/7] warning --- libraries/render-utils/src/GeometryCache.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/render-utils/src/GeometryCache.cpp b/libraries/render-utils/src/GeometryCache.cpp index d7cd860d50..1fb78d8cf3 100644 --- a/libraries/render-utils/src/GeometryCache.cpp +++ b/libraries/render-utils/src/GeometryCache.cpp @@ -1639,8 +1639,8 @@ void GeometryCache::renderGlowLine(gpu::Batch& batch, const glm::vec3& p1, const glowIntensity = 0.0f; #endif - if (glowIntensity <= 0) { - if (color.a >= 1.0) { + if (glowIntensity <= 0.0f) { + if (color.a >= 1.0f) { bindSimpleProgram(batch, false, false, false, true, true); } else { bindSimpleProgram(batch, false, true, false, true, true);