Add renderer purpose display toggles (Guide, Proxy, Render)
Exposes UsdGeomImageable purpose visibility as three per-viewport toggles in the gear popup (Purpose: Guide / Proxy / Render), wired to showGuides/showProxy/showRender on UsdImagingGLRenderParams. Defaults match the USD render params defaults (Proxy on, Guide and Render off). Settings persist per-viewport to viewport_settings.ini. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -167,6 +167,9 @@ void main() { outColor = color; }
|
|||||||
UsdSceneRenderer::UsdSceneRenderer()
|
UsdSceneRenderer::UsdSceneRenderer()
|
||||||
: m_showGrid(true)
|
: m_showGrid(true)
|
||||||
, m_showCameraGuide(false)
|
, m_showCameraGuide(false)
|
||||||
|
, m_showGuides(false)
|
||||||
|
, m_showProxy(true)
|
||||||
|
, m_showRender(false)
|
||||||
, m_currentAov(pxr::TfToken("color"))
|
, m_currentAov(pxr::TfToken("color"))
|
||||||
, m_aaEnabled(false)
|
, m_aaEnabled(false)
|
||||||
, m_backgroundColor(0.15f, 0.15f, 0.15f)
|
, 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.drawMode = pxr::UsdImagingGLDrawMode::DRAW_SHADED_SMOOTH;
|
||||||
m_renderParams.enableLighting = true; break;
|
m_renderParams.enableLighting = true; break;
|
||||||
}
|
}
|
||||||
m_renderParams.showGuides = true;
|
m_renderParams.showGuides = m_showGuides;
|
||||||
m_renderParams.showProxy = true;
|
m_renderParams.showProxy = m_showProxy;
|
||||||
m_renderParams.showRender = false;
|
m_renderParams.showRender = m_showRender;
|
||||||
m_renderParams.enableSampleAlphaToCoverage = true;
|
m_renderParams.enableSampleAlphaToCoverage = true;
|
||||||
m_renderParams.gammaCorrectColors = false;
|
m_renderParams.gammaCorrectColors = false;
|
||||||
m_renderParams.cullStyle = pxr::UsdImagingGLCullStyle::CULL_STYLE_BACK_UNLESS_DOUBLE_SIDED;
|
m_renderParams.cullStyle = pxr::UsdImagingGLCullStyle::CULL_STYLE_BACK_UNLESS_DOUBLE_SIDED;
|
||||||
|
|||||||
@@ -185,6 +185,13 @@ public:
|
|||||||
bool ShowCameraGuide() const { return m_showCameraGuide; }
|
bool ShowCameraGuide() const { return m_showCameraGuide; }
|
||||||
void SetShowCameraGuide(bool show) { m_showCameraGuide = show; }
|
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; }
|
const pxr::TfToken& GetCurrentAov() const { return m_currentAov; }
|
||||||
pxr::TfTokenVector GetRendererAovs() const;
|
pxr::TfTokenVector GetRendererAovs() const;
|
||||||
bool SetCurrentAov(const pxr::TfToken& aov);
|
bool SetCurrentAov(const pxr::TfToken& aov);
|
||||||
@@ -342,6 +349,9 @@ private:
|
|||||||
|
|
||||||
bool m_showGrid;
|
bool m_showGrid;
|
||||||
bool m_showCameraGuide;
|
bool m_showCameraGuide;
|
||||||
|
bool m_showGuides;
|
||||||
|
bool m_showProxy;
|
||||||
|
bool m_showRender;
|
||||||
pxr::TfToken m_currentAov;
|
pxr::TfToken m_currentAov;
|
||||||
bool m_aaEnabled; ///< GL_LINE_SMOOTH anti-aliasing for all line overlays
|
bool m_aaEnabled; ///< GL_LINE_SMOOTH anti-aliasing for all line overlays
|
||||||
pxr::GfVec3f m_backgroundColor;
|
pxr::GfVec3f m_backgroundColor;
|
||||||
|
|||||||
@@ -659,6 +659,9 @@ void ViewportPanel::SaveSettings(const std::string& path) const
|
|||||||
f << "ShowGrid=" << (s.showGrid ? 1 : 0) << "\n";
|
f << "ShowGrid=" << (s.showGrid ? 1 : 0) << "\n";
|
||||||
f << "ShowCameraGuide=" << (s.showCameraGuide ? 1 : 0) << "\n";
|
f << "ShowCameraGuide=" << (s.showCameraGuide ? 1 : 0) << "\n";
|
||||||
f << "Aov=" << s.aov << "\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 << "AAEnabled=" << (s.aaEnabled ? 1 : 0) << "\n";
|
||||||
f << "BgColorR=" << s.bgColorR << "\n";
|
f << "BgColorR=" << s.bgColorR << "\n";
|
||||||
f << "BgColorG=" << s.bgColorG << "\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 == "ShowGrid") ts.showGrid = (val == "1");
|
||||||
else if (key == "ShowCameraGuide") ts.showCameraGuide = (val == "1");
|
else if (key == "ShowCameraGuide") ts.showCameraGuide = (val == "1");
|
||||||
else if (key == "Aov") ts.aov = val;
|
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 == "AAEnabled") ts.aaEnabled = (val == "1");
|
||||||
else if (key == "BgColorR") ts.bgColorR = toFloat(val, ts.bgColorR);
|
else if (key == "BgColorR") ts.bgColorR = toFloat(val, ts.bgColorR);
|
||||||
else if (key == "BgColorG") ts.bgColorG = toFloat(val, ts.bgColorG);
|
else if (key == "BgColorG") ts.bgColorG = toFloat(val, ts.bgColorG);
|
||||||
|
|||||||
@@ -96,6 +96,9 @@ ViewportTileSettings ViewportTile::GetSettings() const
|
|||||||
s.showGrid = m_renderer.ShowGrid();
|
s.showGrid = m_renderer.ShowGrid();
|
||||||
s.showCameraGuide = m_renderer.ShowCameraGuide();
|
s.showCameraGuide = m_renderer.ShowCameraGuide();
|
||||||
s.aov = m_renderer.GetCurrentAov().GetString();
|
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();
|
s.aaEnabled = m_renderer.GetAAEnabled();
|
||||||
const pxr::GfVec3f& bg = m_renderer.GetBackgroundColor();
|
const pxr::GfVec3f& bg = m_renderer.GetBackgroundColor();
|
||||||
s.bgColorR = bg[0]; s.bgColorG = bg[1]; s.bgColorB = bg[2];
|
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);
|
m_renderer.SetShowCameraGuide(s.showCameraGuide);
|
||||||
if (!s.aov.empty())
|
if (!s.aov.empty())
|
||||||
m_renderer.SetCurrentAov(pxr::TfToken(s.aov));
|
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.SetAAEnabled(s.aaEnabled);
|
||||||
m_renderer.SetBackgroundColor(pxr::GfVec3f(s.bgColorR, s.bgColorG, s.bgColorB));
|
m_renderer.SetBackgroundColor(pxr::GfVec3f(s.bgColorR, s.bgColorG, s.bgColorB));
|
||||||
m_renderer.SetBBoxMode(static_cast<BBoxMode>(s.bboxMode));
|
m_renderer.SetBBoxMode(static_cast<BBoxMode>(s.bboxMode));
|
||||||
@@ -1052,6 +1058,17 @@ void ViewportTile::RenderCompactToolbar(int tileIndex)
|
|||||||
if (ImGui::MenuItem("Camera Guide", nullptr, guide))
|
if (ImGui::MenuItem("Camera Guide", nullptr, guide))
|
||||||
m_renderer.SetShowCameraGuide(!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();
|
bool aaItem = m_renderer.GetAAEnabled();
|
||||||
if (ImGui::MenuItem("Anti-Aliasing", nullptr, aaItem))
|
if (ImGui::MenuItem("Anti-Aliasing", nullptr, aaItem))
|
||||||
m_renderer.SetAAEnabled(!aaItem);
|
m_renderer.SetAAEnabled(!aaItem);
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ struct ViewportTileSettings {
|
|||||||
bool ambientLightOnly = true;
|
bool ambientLightOnly = true;
|
||||||
bool domeLightEnabled = false;
|
bool domeLightEnabled = false;
|
||||||
int shadingMode = 0;
|
int shadingMode = 0;
|
||||||
|
bool showGuides = false;
|
||||||
|
bool showProxy = true;
|
||||||
|
bool showRender = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Named orthographic view directions.
|
/// Named orthographic view directions.
|
||||||
|
|||||||
Reference in New Issue
Block a user