5353#include " pxr/usd/usd/prim.h"
5454#include " pxr/usd/usd/property.h"
5555#include " pxr/usd/usdGeom/metrics.h"
56+ #include " pxr/usd/usdGeom/camera.h"
5657
5758
5859namespace Diligent
@@ -254,11 +255,13 @@ void USDViewer::LoadStage()
254255 }
255256 DelegateCI.TextureBindingMode = m_BindingMode;
256257
258+ const pxr::SdfPath SceneDelegateId = pxr::SdfPath::AbsoluteRootPath ();
259+ const pxr::SdfPath CameraId = SceneDelegateId.AppendChild (pxr::TfToken{" _HnCamera_" });
260+ pxr::UsdGeomCamera::Define (m_Stage.Stage , CameraId);
261+
257262 m_Stage.RenderDelegate = USD::HnRenderDelegate::Create (DelegateCI);
258263 m_Stage.RenderIndex .reset (pxr::HdRenderIndex::New (m_Stage.RenderDelegate .get (), pxr::HdDriverVector{}));
259264
260- const pxr::SdfPath SceneDelegateId = pxr::SdfPath::AbsoluteRootPath ();
261-
262265 m_Stage.ImagingDelegate = std::make_unique<pxr::UsdImagingDelegate>(m_Stage.RenderIndex .get (), SceneDelegateId);
263266 m_Stage.ImagingDelegate ->Populate (m_Stage.Stage ->GetPseudoRoot ());
264267
@@ -270,8 +273,6 @@ void USDViewer::LoadStage()
270273 m_Stage.FinalColorTarget = static_cast <USD::HnRenderBuffer*>(m_Stage.RenderIndex ->GetBprim (pxr::HdPrimTypeTokens->renderBuffer , FinalColorTargetId));
271274 VERIFY_EXPR (m_Stage.FinalColorTarget != nullptr );
272275
273- const pxr::SdfPath CameraId = SceneDelegateId.AppendChild (pxr::TfToken{" _HnCamera_" });
274- m_Stage.RenderIndex ->InsertSprim (pxr::HdPrimTypeTokens->camera , m_Stage.ImagingDelegate .get (), CameraId);
275276 m_Stage.Camera = static_cast <USD::HnCamera*>(m_Stage.RenderIndex ->GetSprim (pxr::HdPrimTypeTokens->camera , CameraId));
276277 VERIFY_EXPR (m_Stage.Camera != nullptr );
277278
0 commit comments