This patch is a first step toward a USD Cycles procedural node. While the current approach of rendering an USD in Cycles through an Hydra plugin is neat, it does require the Hydra layer, while a procedural would allow a more direct integration. This procedural is by no mean complete and is marked WIP to start a discussion / link to what has been decided, get comments, make baby steps toward a potentially mergeable patch and define what minimal feature set should be implemented before this patch is considered mergable.
An XML scene can link to an USD:
```
<cycles>
<camera width="1920" height="1080" />
<transform translate="90 125 -600" scale="1 1 1" rotate="0 0 1 0">
<camera type="perspective" />
</transform>
<background>
<background name="bg" strength="2.0" color="0.2, 0.2, 0.2" />
<connect from="bg background" to="output surface" />
</background>
<usd filepath="/home/charles/opt/USD-samples/Kitchen_set/Kitchen_set.usd" />
</cycles>
```
Currently only non-animated, non-shaded, triangulized (no suddiv) meshes are supported as one Object / Geometry per USD mesh, and nothing is cached.
The build could largely be improved:
- cmake's WITH_BLENDER is relied on to install the datafiles/usd folder where the USD plugin lives. It is then currently impossible to build cycles standalone without blender.
- the functions to find the datafiles/usd folder are in blender, not cycles. As such there is a temporary, somewhat hardcoded way to register the USD plugins.
{F12967630}