[Bf-usd] Blender Collections & USD

Brecht Van Lommel brecht at blender.org
Wed Aug 12 11:14:48 CEST 2020


Hydra integration for renderers is worthy of its own design document.
There's many technical challenges: how to translate shaders, how to
integrate with the dependency graph for incremental updates in viewport
rendering, how Hydra integrates with the render engine API, and so on.

On the practical side of things for this add-on, it makes sense for us to
move to shared libraries for Blender, for reasons besides Hydra. It's a
complex change so we haven't prioritized it so far (if we do it for USD we
also need to do it for all of USD's dependencies). An API function to
convert a depsgraph to USD and provide a pointer also seems reasonable.


By itself, Hydra does not require design for the user workflow or changes
to Blender public data structures. The user would not even need to be aware
that Hydra is there under the hood, it would just transparently be used for
final, viewport and preview renders. Where user workflow comes in is USD
node graphs.

In the devtalk thread, there is an example node graph that reads a USD file
which is then connected to a Render USD via Hydra node, and in that node
RPR is selected as the renderer. With a node graph like that, would not
have the ability to view the same scene with different engines in different
viewports, inspect the resulting scene hierarchy in the outliner, or
select/hide/isolate objects in the viewport?

So what I'm proposing is that such a node graph should feed into the
Blender scene hierarchy, to support interactive inspection, editing and
overrides. It doesn't mean conversion to Blender data structures is always
done, just that it is possible.

On Wed, Aug 12, 2020 at 1:24 AM Brian Savery <brian.savery at gmail.com> wrote:
>
> Hi Brecht, et all.
>
> I've been meaning to write up a bit more here (too many projects), but
I'd like to give an idea what we (AMD) are working on, because it overlaps
a bit with what you lay out in that document.  A lot of what you say would
be good to do inside Blender, however we have already done quite a bit of
this in an addon!
>
> So basically, our WIP addon is two things:
> 1.  A Hydra render addon to blender (just like any other renderer addon)
that renders via hydra similar to other renderer plugins to Blender.  We of
course include the Radeon ProRender Hydra delegate but you could use this
with PRMan Hydra delegate, or Redshift, or Octane, or Arnold etc.  So think
of this like a "meta" render addon.  Part of the motivation here actually
was because we felt that each render addon to blender is kinda replicating
the same code to export data to the renderer and USD Hydra gives a good
abstraction layer for this.
>
> 2.  So the normal way a renderer addon works is to pull data directly
from Blender.  We also include a USD Node graph, which allows you to
composite USD via references, export data from blender into the USD node
graph, filter data etc.  The Hydra render addon would then pull from the
nodegraph rather than data directly from blender and get the references
etc.  I added some screenshots and discussion here:
>
https://devtalk.blender.org/t/a-out-the-tangent-animation-meeting-a-proper-place-to-talk-about-it/13733/3?u=bsavery
>
> So rather than being a direct property of collections we achieve this in
a node graph for assembling the data.
>
> We're pretty close to sharing something for testing and feedback from
users, certainly we are hoping early fall.  In the meantime if there are
serious objections or thoughts on this approach we'd like to hear them.
>
> Finally here's a bunch of issues we are hitting so far.
>
> 1.  Distribution.  Blender statically links in USD dll's which is less
than idea as we need to include our own then for this.
> 2. Furthermore, it would be ideal to get a pointer to USD data exported
from the USD export function rather than exporting our own USD data
> 3.  Namespace issues on macOS don't allow us to currently bring in
separate USD dlls
>
> Of course IMO this is something that could be even more powerful built
into blender, with a built in hydra rendering option.  Perhaps after we get
this addon out there that can be visited, but I think we're much closer to
getting this out as an addon.
>
> Brian
>
>>
>>
>> Hi all,
>>
>> I've written a design doc about how USD might integrate more closely in
>> Blender, and how that would relate to collections and other Blender data
>> structures.
>> https://developer.blender.org/T68933
>>
>> It's only a rough proposal at this point, and we'll discuss this more
>> internally as well. But it would be great to hear feedback and see if the
>> overall direction makes sense to others.
>>
>> Regards,
>> Brecht.
>>
> --
> Bf-usd mailing list
> Bf-usd at blender.org
> https://lists.blender.org/mailman/listinfo/bf-usd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/bf-usd/attachments/20200812/b49534f1/attachment.htm>


More information about the Bf-usd mailing list