Rendersettings in usdrecord/framerecorder

Hi,

I have been testing out usdrecord with rendersettings from thirdparty renders such as Vray and Renderman. To my knowledge it looks like only Renderman is supposed to work with a rendersetting nodes in usdrecord, but I am not seeing that either. I have tried it w/wo the USDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX enabled but no dice.

Here is a simple testcase where I am changing pixelfilters in renderman. Both Vray and Renderman works nicely in husk and in the Solaris viewport.

The following attributes are set:
token ri:Ri:PixelFilterName = “gaussian”
float2 ri:Ri:PixelFilterWidth = (20, 20)
custom float vray:SettingsImageSampler_filter_size = 20
custom int vray:SettingsImageSampler_filter_type = 7

Houdini usdrecord
prman

usdrecord command: usdrecord testrendersettings.usda usdrecord_prman.png --renderer Prman --camera /cameras/camera1 --imageWidth=512 --renderSettingsPrimPath /Render/rendersettings

Test scene:
testrendersettings.usda (3.5 KB)

It looks like the rendersettings are never passed to the render delegates properly. However, it looks like all namespaced attributes gets populated (looking at the Hydra Scene Index Browser), and the rendersettings are getting set properly by UsdImagingGLEngine::SetActiveRenderSettingsPrimPath() function and propagated all the way to the sceneGlobalsSceneIndex.

So my questions are:

  1. Should rendersettings work in usdrecord with prman?
  2. Afaik usdrecord has been setup with reading the rendersettings node, but is it just certain attributes it can work with?
  3. Does a renderer need to hook into this in a special way to make it work as the namespaced attributes seems to be there?

Any advice would be much appreciated :slight_smile:
Dan

Ah Ok, I think not all rendersettings are passed along properly for Prman unfortunately. I think I picked some bad primvars to test with where the pixelfilter settings are getting pruned in the Riley options.

Testing with pixelvariance instead works :slight_smile:, and enabling TF_DEBUG=HDPRMAN* gave some good pointers to what was passed in in the end.

I see that Prman has implemented a renderSettingsFilteringSceneIndexPlugin that specifies the ri namespaces to take those into account in the filtering. If those are not provided, they will be filtered out and discarded, right? I guess all third party renders needs to set this up in a similar fasion to this here to make it work in usdview then?OpenUSD/third_party/renderman-26/plugin/hdPrman/renderSettingsFilteringSceneIndexPlugin.cpp at v24.08 · PixarAnimationStudios/OpenUSD · GitHub
OpenUSD/third_party/renderman-26/plugin/hdPrman/renderSettings.h at v24.08 · PixarAnimationStudios/OpenUSD · GitHub

1 Like