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
Scene index plugins
1756 4 2- renderman_devaccnt
- Member
- 13 posts
- Joined: 5月 2020
- Offline
- mtucker
- スタッフ
- 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...
- renderman_devaccnt
- 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]
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]
- mtucker
- スタッフ
- 4454 posts
- Joined: 7月 2005
- Offline
- mark
- スタッフ
- 2597 posts
- Joined: 7月 2005
- Offline
-
- Quick Links