Getting HdRenderBuffers with hdPrman

Hi, I’ve been using the test code linked below from the USD repo as reference for creating an app to display renderman live rendering but it’s thrown up a few questions:

How could I get pointers to HdRenderBuffers to use to display the render result rather than have the renders written to disk as in the testHdPrman example? I’ve tried the following both before and after rendering but bindings is empty.

  HdRenderPassAovBindingVector bindings = hdRenderPassState->GetAovBindings();
  for (HdRenderPassAovBinding const& binding : bindings) {
      std::cout << "AOV: " << binding.aovName << std::endl;
  }

In other examples I’ve come across people are using hdStorm and binding gl draw targets and getting the result that way, but that seems more suited for openGL renderers rather than renderman. Or people are using TaskController.GetRenderOutput, but so far based on the example test code I haven’t made use of TaskController and seems a bit overkill just as a way to get the buffers.

I understand it might be necessary to add bprims and aovbind them but with hydra 2 and HdRenderIndex.InsertBprim() no longer being the way to do it, I’m not sure where to go there either.

Any pointers very appreciated. Cheers,

  • Tristan