Scene index plugins

   1756   4   2
User Avatar
Member
13 posts
Joined: 5月 2020
Offline
I was doing some experimenting with scene index plugins in Houdini 19.5 and noticed that they only seem to run interactively, not when a render delegate that uses them is loaded via husk.
I think the reason for this has to do with scene index plugins that are specific to a particular renderer relying on HdRenderDelegate::GetRendererDisplayName() returning an expected value in order for them to be loaded by the plug-in registry. When running with husk I'm seeing that method always return an empty string, but it returns the expected render delegate name in Solaris. Does this sound like a bug, or does anyone have any experience with getting around this?

Katrin
User Avatar
スタッフ
4454 posts
Joined: 7月 2005
Offline
Hi Katrin, we haven't tried building or using any scene index plugins, so I don't really know how to help here. HdRenderDelegate::GetRendererDisplayName is a virtual function of your delegate, so I don't see how we could be affecting the returned value. There is also the static UsdImagingGLEngine::GetRendererDisplayName method, which can return an empty string if it can't find the specified renderer id in the HdRendererPluginRegistry. But I would expect prman to be in that registry when running husk (or we wouldn't be able to instantiate a prman render delegate). If you could point me to where scene index plugins are loaded maybe I could take a guess about where husk might be interfering or just behaving differently from Houdini...
User Avatar
Member
13 posts
Joined: 5月 2020
Offline
Hi Mark,
This is the line where I think the scene index plug-ins get loaded, which appears to be called as expected in interactive Solaris but not husk:
https://github.com/PixarAnimationStudios/USD/blob/release/pxr/imaging/hd/renderIndex.cpp#L134 [github.com]

This is where it looks like the delegate display name gets set:
https://github.com/PixarAnimationStudios/USD/blob/release/pxr/imaging/hd/rendererPluginRegistry.cpp#L112 [github.com]

This change is an example of a scene index plugin. It adds a "loadWithRenderer" tag to the hdPrman plugInfo.json, which should cause the scene index plug-in to be loaded when hdPrman is loaded.
https://github.com/PixarAnimationStudios/USD/commit/c8b4a77c374e7db7a6e51562040d5692fba68c63 [github.com]
User Avatar
スタッフ
4454 posts
Joined: 7月 2005
Offline
It looks like husk is not using the "normal" method of creating the render delegate. I'll submit a bug. Thanks for noticing this, and all the pointers into the USD code!
User Avatar
スタッフ
2597 posts
Joined: 7月 2005
Offline
Hi Katrin,

This should be better in tomorrow's build. Please let us know if we've still got it wrong.

Thanks,
  • Quick Links