diff --git a/src/core/UsdSceneRenderer.cpp b/src/core/UsdSceneRenderer.cpp index 9c9c1cf..a01b953 100644 --- a/src/core/UsdSceneRenderer.cpp +++ b/src/core/UsdSceneRenderer.cpp @@ -167,6 +167,9 @@ void main() { outColor = color; } UsdSceneRenderer::UsdSceneRenderer() : m_showGrid(true) , m_showCameraGuide(false) + , m_showGuides(false) + , m_showProxy(true) + , m_showRender(false) , m_currentAov(pxr::TfToken("color")) , m_aaEnabled(false) , m_backgroundColor(0.15f, 0.15f, 0.15f) @@ -720,9 +723,9 @@ void UsdSceneRenderer::Render(int width, int height) m_renderParams.drawMode = pxr::UsdImagingGLDrawMode::DRAW_SHADED_SMOOTH; m_renderParams.enableLighting = true; break; } - m_renderParams.showGuides = true; - m_renderParams.showProxy = true; - m_renderParams.showRender = false; + m_renderParams.showGuides = m_showGuides; + m_renderParams.showProxy = m_showProxy; + m_renderParams.showRender = m_showRender; m_renderParams.enableSampleAlphaToCoverage = true; m_renderParams.gammaCorrectColors = false; m_renderParams.cullStyle = pxr::UsdImagingGLCullStyle::CULL_STYLE_BACK_UNLESS_DOUBLE_SIDED; diff --git a/src/core/UsdSceneRenderer.h b/src/core/UsdSceneRenderer.h index f27a16a..4473969 100644 --- a/src/core/UsdSceneRenderer.h +++ b/src/core/UsdSceneRenderer.h @@ -185,6 +185,13 @@ public: bool ShowCameraGuide() const { return m_showCameraGuide; } void SetShowCameraGuide(bool show) { m_showCameraGuide = show; } + bool ShowGuides() const { return m_showGuides; } + void SetShowGuides(bool show) { m_showGuides = show; } + bool ShowProxy() const { return m_showProxy; } + void SetShowProxy(bool show) { m_showProxy = show; } + bool ShowRender() const { return m_showRender; } + void SetShowRender(bool show) { m_showRender = show; } + const pxr::TfToken& GetCurrentAov() const { return m_currentAov; } pxr::TfTokenVector GetRendererAovs() const; bool SetCurrentAov(const pxr::TfToken& aov); @@ -342,6 +349,9 @@ private: bool m_showGrid; bool m_showCameraGuide; + bool m_showGuides; + bool m_showProxy; + bool m_showRender; pxr::TfToken m_currentAov; bool m_aaEnabled; ///< GL_LINE_SMOOTH anti-aliasing for all line overlays pxr::GfVec3f m_backgroundColor; diff --git a/src/ui/ViewportPanel.cpp b/src/ui/ViewportPanel.cpp index 3500f54..4b0e035 100644 --- a/src/ui/ViewportPanel.cpp +++ b/src/ui/ViewportPanel.cpp @@ -659,6 +659,9 @@ void ViewportPanel::SaveSettings(const std::string& path) const f << "ShowGrid=" << (s.showGrid ? 1 : 0) << "\n"; f << "ShowCameraGuide=" << (s.showCameraGuide ? 1 : 0) << "\n"; f << "Aov=" << s.aov << "\n"; + f << "ShowGuides=" << (s.showGuides ? 1 : 0) << "\n"; + f << "ShowProxy=" << (s.showProxy ? 1 : 0) << "\n"; + f << "ShowRender=" << (s.showRender ? 1 : 0) << "\n"; f << "AAEnabled=" << (s.aaEnabled ? 1 : 0) << "\n"; f << "BgColorR=" << s.bgColorR << "\n"; f << "BgColorG=" << s.bgColorG << "\n"; @@ -727,6 +730,9 @@ void ViewportPanel::LoadSettings(const std::string& path) else if (key == "ShowGrid") ts.showGrid = (val == "1"); else if (key == "ShowCameraGuide") ts.showCameraGuide = (val == "1"); else if (key == "Aov") ts.aov = val; + else if (key == "ShowGuides") ts.showGuides = (val == "1"); + else if (key == "ShowProxy") ts.showProxy = (val == "1"); + else if (key == "ShowRender") ts.showRender = (val == "1"); else if (key == "AAEnabled") ts.aaEnabled = (val == "1"); else if (key == "BgColorR") ts.bgColorR = toFloat(val, ts.bgColorR); else if (key == "BgColorG") ts.bgColorG = toFloat(val, ts.bgColorG); diff --git a/src/ui/ViewportTile.cpp b/src/ui/ViewportTile.cpp index e9a5bfd..0a9ecf8 100644 --- a/src/ui/ViewportTile.cpp +++ b/src/ui/ViewportTile.cpp @@ -96,6 +96,9 @@ ViewportTileSettings ViewportTile::GetSettings() const s.showGrid = m_renderer.ShowGrid(); s.showCameraGuide = m_renderer.ShowCameraGuide(); s.aov = m_renderer.GetCurrentAov().GetString(); + s.showGuides = m_renderer.ShowGuides(); + s.showProxy = m_renderer.ShowProxy(); + s.showRender = m_renderer.ShowRender(); s.aaEnabled = m_renderer.GetAAEnabled(); const pxr::GfVec3f& bg = m_renderer.GetBackgroundColor(); s.bgColorR = bg[0]; s.bgColorG = bg[1]; s.bgColorB = bg[2]; @@ -114,6 +117,9 @@ void ViewportTile::ApplySettings(const ViewportTileSettings& s) m_renderer.SetShowCameraGuide(s.showCameraGuide); if (!s.aov.empty()) m_renderer.SetCurrentAov(pxr::TfToken(s.aov)); + m_renderer.SetShowGuides(s.showGuides); + m_renderer.SetShowProxy(s.showProxy); + m_renderer.SetShowRender(s.showRender); m_renderer.SetAAEnabled(s.aaEnabled); m_renderer.SetBackgroundColor(pxr::GfVec3f(s.bgColorR, s.bgColorG, s.bgColorB)); m_renderer.SetBBoxMode(static_cast(s.bboxMode)); @@ -1052,6 +1058,17 @@ void ViewportTile::RenderCompactToolbar(int tileIndex) if (ImGui::MenuItem("Camera Guide", nullptr, guide)) m_renderer.SetShowCameraGuide(!guide); + ImGui::Separator(); + bool purGuide = m_renderer.ShowGuides(); + if (ImGui::MenuItem("Purpose: Guide", nullptr, purGuide)) + m_renderer.SetShowGuides(!purGuide); + bool purProxy = m_renderer.ShowProxy(); + if (ImGui::MenuItem("Purpose: Proxy", nullptr, purProxy)) + m_renderer.SetShowProxy(!purProxy); + bool purRender = m_renderer.ShowRender(); + if (ImGui::MenuItem("Purpose: Render", nullptr, purRender)) + m_renderer.SetShowRender(!purRender); + bool aaItem = m_renderer.GetAAEnabled(); if (ImGui::MenuItem("Anti-Aliasing", nullptr, aaItem)) m_renderer.SetAAEnabled(!aaItem); diff --git a/src/ui/ViewportTile.h b/src/ui/ViewportTile.h index 7c007ca..917f31a 100644 --- a/src/ui/ViewportTile.h +++ b/src/ui/ViewportTile.h @@ -32,6 +32,9 @@ struct ViewportTileSettings { bool ambientLightOnly = true; bool domeLightEnabled = false; int shadingMode = 0; + bool showGuides = false; + bool showProxy = true; + bool showRender = false; }; /// Named orthographic view directions.