1.8 KiB
1.8 KiB
Why
The application currently renders a placeholder "3D viewport will be displayed here" text instead of showing actual USD scene geometry. Users cannot visually inspect their USD stages, making the tool incomplete for scene authoring workflows. A functional viewport is essential for any USD editing application — without it, users must switch to an external viewer (e.g., usdview) to see their changes.
What Changes
- Add an OpenGL-based 3D viewport that renders USD stage geometry within the existing dockable "Viewport" panel
- Implement a camera system (orbit, pan, zoom) for navigating the 3D scene
- Add Hydra or direct UsdGeom-based rendering to traverse the stage and draw meshes, transforms, and materials
- Provide viewport controls (grid display, axis indicator, background color) via a toolbar or context menu
- Render a ground grid and axis gizmo for spatial orientation
Capabilities
New Capabilities
viewport-renderer: OpenGL rendering pipeline that traverses USD prims and draws geometry, materials, and transforms into an FBO-backed ImGui imageviewport-camera: Interactive camera controller supporting orbit, pan, and zoom with mouse input mapped through the ImGui viewport windowviewport-overlay: Grid, axis gizmo, and viewport settings overlay rendered on top of the 3D scene
Modified Capabilities
Impact
- src/ui/Application.h/cpp: Replace placeholder viewport section with a ViewportPanel that owns the renderer and camera
- New files: ViewportPanel, UsdSceneRenderer, ViewportCamera classes
- Dependencies: OpenGL 3.3+ (already available via WGL context), OpenUSD UsdGeom/UsdShade APIs
- Build system: CMakeLists.txt must compile new source files and link OpenGL
- Rendering path: Initially UsdGeom traversal with OpenGL draw calls; Hydra integration deferred to a future change