Hi,
I'm interested in using Arnold standalone with USD from Pixar. I did manage to compile the Arnold Hydra Render Delegate and exported the Cornell Box in ASCII and binary encoded versions from within Blender 2.90.1. Feel free to download both files from the GitHub repository (export_multi).
The scene loads fine into usdview, as you can see here:
I can also switch to the Arnold Hydra Render Delegate and render e.g. using the following Hydra Settings:
So, what are my options to assign Arnold shaders to the resulting USD files? What I really would like to do is to render one of those .usda or .usdc files with Arnold standalone, but somehow apply shaders to the geometry (e.g. a light emitter to the mesh which is used as such within Cycles).
I found already some hints in this forum where someone else exported from Blender and loaded the resulting USD file(s) into 3DS Max, but I thought I ask here as well. What is the simplest solution if I do not want to use any other DCC, just Arnold and USD files?
Links:
https://github.com/Autodesk/arnold-usd
https://github.com/wahn/export_multi/tree/master/00_cornell_box/usd
https://github.com/wahn/export_multi
Solved! Go to Solution.
Solved by pal.mezei. Go to Solution.
Operators.
And/or do some tests with some DCC, export to USD, and see what to do in the USD file?
AFAIK there's nothing outside Maya and Houdini (Katana?) that supports authoring Arnold shaders and exporting to USD. If you try Maya you have to use the USD export in the Arnold menu (NOT standard file export). Houdini easiest way is to drop a Material Library node in Solaris and export USD.
My point is that I would like to export a renderer agnostic USD file (e.g. from Blender, but it doesn't really matter where it comes from) and find a solution to render with Arnold (and other renderers) by somehow adding the renderer specific materials on a pure USD file basis. Is that a workflow anybody else is aiming for?
Hey Jan!
If you aim for a pure USD based workflow, I attached an example of using sublayers and overrides. Basically, you load the exported file as a sublayer in a "wrapper" and assign materials using overrides.
Example file: material_overrides.zip
I overrode the materials from the source file in two different ways. First, I replaced the material completely, then I modified the existing material and used the Arnold binding purpose.
Does this answer your question?
Cheers,
Pal.
Hi @Pal Mezei, thanks, yes, that was what I was looking for. I will send an update once I made the Cornell Box example work, but the files you provided are a big help!
Thanks again, @Pal I tried what you suggested and added a simple USD file, which defines a single Arnold material for the light emitting geometry, loads the untouched USD file (exported from Blender), and overwrites the material binding for it:
It does render fine. Setting the emission > 1.0 didn't show an effect though, but that might be a problem of the Hydra render delegate version I'm using. I haven't compiled the latest version (yet).
Here is the commit for the light emitter overwrite:
https://github.com/wahn/export_multi/commit/e97505e72e9afd05a13015e7a4adfaa2916f3694
Everybody who has the Arnold Hydra render delegate working within usdview, should be able to download the two USD files, load the cornell_box_materials.usda file (which loads the cornell_box.usda file and overwrites a single material binding), and render with Arnold.