arnold-usd
arnold-usd copied to clipboard
Work around the limitations of usdrecord
Describe the feature you'd like This is a follow up of ticket #27.
At the moment usdrecord is limited and is not a good fit for our hydra testsuite:
- You can't specify image width and height, only width, height is computed from the width and the camera aspect ratio
- No way to write out multiple rendervars
- Render settings are not read from the RenderSettings prim
- Render settings are not read from the ArnoldGlobals prim
- No support for delegate render products (deep renders)
- Requires an opengl context
usdrecord is made of two components, usdrecord.py, a simple python script parsing arguments and setting up an OpenGL context etc, and frame recorder (usdAppUtils), which is capable of writing the results out to a file. Framerecorder is implemented using c++.
Framerecorder holds all the imaging bits and the hydra engine, but it doesn't expose a way to access the underlying render delegate and/or pass render settings to it. So we can't write our own usdrecord script using python and rely on the existing framerecorder class.
Describe the solution you'd like We need to decide if we want to use python or c++. Python is quicker to prototype, develop and doesn't involve any additional compilation steps, but it requires us to build USD with python support and openimageio. C++ is more flexible, more performant and we are not locked to the public APIs exposed, but it involves additional compilation and setup.
Issue synced internally to ARNOLD-13280