USD and Cycles
Hi there, I'm trying to run some tests with USD, specifically usdrecord. The command apparently lets you use multiple renderers, but I don't see how to integrate Cycles into it, can anyone help?
Perplexity's answer seems generally correct to me-- I asked it about usdview, but the same would apply to usdrecord, I think--
To render with Blender Cycles from OpenUSD usdview, you can use the hdCycles plugin, which is an open-source Cycles Hydra render delegate developed by Tangent Animation[4]. This plugin allows you to use Blender's Cycles renderer as a viewport renderer within applications that support Hydra delegates, including usdview.
Here's how you can set it up:
-
Install hdCycles:
- Clone the hdCycles repository from GitHub
- Follow the build instructions provided in the repository[4]
-
Configure usdview:
- Set the PXR_PLUGINPATH_NAME environment variable to point to the installed hdCycles plugin directory[1]
-
Launch usdview with Cycles:
- Use the following command to launch usdview with the Cycles renderer:
PYTHONPATH=/lib/python PXR_PLUGINPATH_NAME=/install/hydra /bin/usdview
- Use the following command to launch usdview with the Cycles renderer:
-
Load your USD scene in usdview:
- Open your USD file in usdview
- The scene should now render using Blender Cycles
Note that hdCycles is still in development, and some features may be missing or unstable[4]. The current implementation supports basic meshes, materials, lights, points, curves, cameras, and render settings[4]. However, advanced features like volumes, full AOV support, and Cryptomatte are still being worked on[4].
It's important to keep in mind that USD integration in Blender and other DCCs is still maturing, and full implementation of the USD specification is an ongoing process across various software[7]. As development continues, the workflow for rendering USD scenes with Cycles may improve and become more streamlined.
Citations: [1] https://github.com/blender/cycles/blob/main/BUILDING.md [2] https://www.reddit.com/r/blender/comments/165u7ym/is_it_just_me_or_is_usd_not_really_supported_in/ [3] https://openusd.org/release/user_guides/render_user_guide.html [4] https://www.cgchannel.com/2020/08/tangent-animation-ships-cycles-in-houdini-plugin-hdcycles/ [5] https://www.steakunderwater.com/wesuckless/viewtopic.php?t=3505 [6] https://www.youtube.com/watch?v=spBpNlvbCgw [7] https://www.youtube.com/watch?v=mFDkbCwkjvQ [8] https://www.youtube.com/watch?v=_XAznb9XYAs [9] https://docs.blender.org/manual/en/latest/files/import_export/usd.html [10] https://devtalk.blender.org/t/usd-cycles-materials-black-in-hydra-delegate/26554 [11] https://blenderartists.org/t/usd-hydra-support-in-blender/1258252
I'm not sure if there is a modern hdcycles ~ the tangent effort forked cycles to blackbird many years ago and renamed the project to hdblackbird. I don't know of a version of hdCycles that's under development.
Currently @brechtvl is working on an official hydra render here https://projects.blender.org/blender/blender/issues/110765 I wonder if that effort might help with using cycles within usdrecord?
Cycles can be built as a Hydra render delegate, but it's very incomplete, especially regarding materials. The [1] link is the correct one for build instructions. Note that implementation was not developed by Tangent Animation, it's another one contributed by NVIDIA.
The other issue is about Hydra support in Blender, which was was contributed by AMD. It's useful for Hydra render delegates other than Cycles, since that is already closely integrated into Blender.
I maintain both of these as part of the Blender project. There's no work going on to improve them due to lack of time, contributions are welcome though.