53 PlugRegistry::GetInstance().RegisterPlugins(
path_get(
"usd"));
56 UsdStageRefPtr
stage = UsdStage::Open(filepath);
58 fprintf(stderr,
"%s read error\n", filepath);
63 SdfPath root_path = SdfPath::AbsoluteRootPath();
64 SdfPath task_path(
"/_hdCycles/DummyHdTask");
67 HdRenderSettingsMap settings_map;
68 settings_map.insert(std::make_pair(HdCyclesRenderSettingsTokens->stageMetersPerUnit,
69 VtValue(UsdGeomGetStageMetersPerUnit(
stage))));
74 unique_ptr<HdRenderIndex> render_index(HdRenderIndex::New(&render_delegate, {}));
75 unique_ptr<UsdImagingDelegate> scene_delegate = make_unique<UsdImagingDelegate>(
76 render_index.get(), root_path);
79 HdRprimCollection collection(HdTokens->geometry, HdReprSelector(HdReprTokens->smoothHull));
80 collection.SetRootPath(root_path);
82 render_index->InsertTask<
DummyHdTask>(scene_delegate.get(), task_path);
85 HdDirtyListSharedPtr dirty_list = std::make_shared<HdDirtyList>(collection,
86 *(render_index.get()));
87 render_index->EnqueuePrimsToSync(dirty_list, collection);
89 render_index->EnqueueCollectionToSync(collection);
93 const UsdPrim &stage_root =
stage->GetPseudoRoot();
94 scene_delegate->Populate(stage_root.GetStage()->GetPrimAtPath(root_path), {});
97 HdTaskContext task_context;
98 HdTaskSharedPtrVector tasks;
99 tasks.push_back(render_index->GetTask(task_path));
101 render_index->SyncAll(&tasks, &task_context);
107 for (UsdPrim
const &prim :
stage->Traverse()) {
108 if (prim.IsA<UsdGeomCamera>()) {
109 HdSprim *sprim = render_index->GetSprim(HdPrimTypeTokens->camera, prim.GetPath());