<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>So to distill all this down, what you're saying is it might be useful to have some USD data rendered with Hydra, and the Blender data rendered in Workbench/EEVEE/Cycles through the Blender pipeline and then merged into a single viewport?  </div></div></div></blockquote><div><br></div><div>Yes, that's the gist-- as similar as possible to what Autodesk's maya-usd plugin provides.  IIRC it can't be a rendertime python callback because those aren't called during playblast renders, but maybe that's been fixed?</div><div>  </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div></div><div>It should be technically possible but I think there would be a few issues there. Mainly if you have lights in your USD Stage, they wouldn't light your character unless the lights are duplicated in Blender.  Maybe it doesn't matter too much for playblast type stuff or doing animation, but any lighting work it would.  <br></div></div></div></blockquote><div><br></div><div>In my experience animators work mostly without lights, or with default lighting.  If that were a concern I could see a USDLight type being added that references a prim on a USDStage object for viewport sync.  But for the use cases I'm thinking of, that would be a non-issue.  And as far as lighting work goes, I'd imagine Lighters are the target audience for the full render preview Hydra view and wouldn't be as interested in the above interaction method.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div></div><div>But the part you are describing to bring the USDStage object into the outliner is similar to what we're doing now in our addon.<br></div></div></div></blockquote><div><br></div><div>It definitely sounds like there's overlap.  The method I'm interested in would have new DNA / RNA types defined that store overrides, or perhaps a saving of the the session edit layer for serialization, but the outliner is more "native" with property views on the new DNA data on selection in viewport or in the Outliner itself.  Duplicate locators have the bonus of being animatable and more easily moved, but I'd love to see a USDStage object animated from a single action block as opposed to one block per locator.  That would be incredibly powerful.</div><div><br></div><div>~ C</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 5, 2022 at 9:31 AM Charles Wardlaw <<a href="mailto:cwardlaw@imageworks.com" target="_blank">cwardlaw@imageworks.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Hi Brian,<div><br></div><div>Congratulations on the new addition. :)</div><div><br></div><div>At Tangent I had something going like what you're describing, only the goal was more about viewport display-- there was a new USDStage object type which could be pathed to a layer (and a prim in that layer) on disk.  It had outliner extensions that allowed the user to choose variants and enable / disable / move prims, etc.</div><div><br></div><div>All USDStage object prims were "merged" into a single anonymous stage for drawing, and I added a Workbench drawing engine to merge the draws into the main view. This was the most useful for us-- it meant we could pass environments downstream without having them actually in the files, but we were still able to playblast for dailies.  It also meant we could quickly do layouts by duplicating the objects in scene, although I never got the Gizmos working on the in-memory prims (still don't 100% understand that API).</div><div><br></div><div>Have you given any thought to perhaps adding the regular viewport draw as well?  Marking objects to defer payloads, saving variants, edit callbacks, and so on?  USDPrimConstraints, perhaps, so that a character can reference a transform in a resolved (and depsgraph-evaluated) USDStage object so that characters can follow edits from upstream department without importing?  As useful as the Hydra render preview is, not constantly converting animated characters to USD geometry per frame evaluation would be huge.</div><div><br></div><div>I'd also love to discuss how it could be possible to efficiently key transformations on a USDStage-style object without having to create an extra transform, leaving the curves in Blender's action block.  For example, I heard that Omniverse batches changes together on a frame-by-frame basis for speed through the SDF layer?</div><div><br></div><div>And if any of this has already been discussed I apologize-- I'm a recent addition to the list and still coming off a turkey coma from the holiday. :)</div><div>~ C</div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Dec 24, 2021 at 5:50 PM Michael A Kowalski via Bf-usd <<a href="mailto:bf-usd@blender.org" target="_blank">bf-usd@blender.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div>
<p class="MsoNormal">Hi Brian,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks for sharing your ideas!<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I'll provide a detailed response after the holidays, but I'm certainly looking forward to discussing your proposal and to working together to design and extend the USD import / export APIs.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Michael<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div style="border-style:solid none none;border-top-width:1pt;border-top-color:rgb(225,225,225);padding:3pt 0in 0in">
<p class="MsoNormal"><b>From:</b> Bf-usd <<a href="mailto:bf-usd-bounces@blender.org" target="_blank">bf-usd-bounces@blender.org</a>> <b>On Behalf Of
</b>Brian Savery via Bf-usd<br>
<b>Sent:</b> Friday, December 24, 2021 11:55 AM<br>
<b>To:</b> <a href="mailto:bf-usd@blender.org" target="_blank">bf-usd@blender.org</a>; <a href="mailto:sybren@blender.org" target="_blank">sybren@blender.org</a><br>
<b>Cc:</b> Brian Savery <<a href="mailto:brian.savery@gmail.com" target="_blank">brian.savery@gmail.com</a>><br>
<b>Subject:</b> Re: [Bf-usd] Bf-usd Digest, Vol 13, Issue 3<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<table border="1" cellpadding="0" style="background-color:rgb(255,235,156)">
<tbody>
<tr>
<td style="padding:0.75pt">
<p class="MsoNormal"><b><span style="font-size:7.5pt;font-family:Verdana,sans-serif;color:black">External email: Use caution opening links or attachments</span></b><span style="font-size:7.5pt;font-family:Verdana,sans-serif;color:black">
</span><u></u><u></u></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<div>
<div>
<p class="MsoNormal">Basically the answer is yes, our proposal is that we integrate this "Hydra addon" directly into Blender to use the internal apis for export, and allow users to install their own Hydra delegates, which would open up some flexibility for
 other renderers.  <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Our target would be mid - late 2022 timing wise.  But we're looking for some "blessing" or sync up with BF (and Michael) that this is a good idea and something you would accept.  Basically a design review.  I don't foresee any disagreements,
 but with Materials, we might have different opinions, and BF should have the final say.  <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<blockquote style="border-style:none none none solid;border-left-width:1pt;border-left-color:rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal" style="margin-bottom:12pt">> Some todo's I see for bringing this into mainline.<br>
><br>
What does "mainline" mean? Do you mean Blender's master branch?<br>
<br>
1.  Aligning with the current import / export USD work that is being done.<br>
> We currently translate the blender data via python and the USD python<br>
> binding but obj.  Moving this directly into blender's code where it could<br>
> use the internal C api would be advantageous.<br>
><br>
It would indeed be advantageous to work together with Michael Kowalski<br>
(NVIDIA) on this. He's coauthor and maintainer of Blender's USD importer,<br>
and he's actively working on improvements on both import and export. This<br>
mailing list, as well as the #pipeline-assets-io-module channel<br>
<<a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fblender.chat%2Fchannel%2Fpipeline-assets-io-module&data=04%7C01%7Cmakowalski%40nvidia.com%7Cbf7c31eb547d406393c408d9c6fe2e1f%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637759618187965161%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=M%2Frm2My6ret%2FMjFBVJlBh5TO34LbiUAtkRNWOukuf0g%3D&reserved=0" target="_blank">https://blender.chat/channel/pipeline-assets-io-module</a>>
 on Blender Chat,<br>
would be good channels to sync up.<u></u><u></u></p>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">That's fine, I'd ask if we could be included in future meetings on USD.  I am actually on paternity leave for the next month but can get a design review meeting so we can start things on our side.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<blockquote style="border-style:none none none solid;border-left-width:1pt;border-left-color:rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">2.  Writing a proper scene delegate for Blender's data to Hydra.<br>
> 3.  Making the MaterialX workflow a bit simpler.  It might/should be<br>
> possible to just use blender's nodes and translate them at render time to<br>
> MaterialX nodes.<br>
> 4.  Integrating the USD data representation in Blender a bit more<br>
> tightly.  Using the empty objects for each USD prim is a bit awkward.<br>
><br>
How does this relate to the current work on Blender in this area? I'm<br>
thinking about tasks like T68933: Collections for Import/Export<br>
<<a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.blender.org%2FT68933&data=04%7C01%7Cmakowalski%40nvidia.com%7Cbf7c31eb547d406393c408d9c6fe2e1f%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637759618187965161%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=FzWaMT2TAYdeVqHlzsBm5aC3XHow0624RaSNh3vh60k%3D&reserved=0" target="_blank">https://developer.blender.org/T68933</a>>.<u></u><u></u></p>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Yeah, so that one sort of addresses why this could be useful in the "USD / Hydra" and "Nodes" section, this is pretty much exactly what we did (plus the MaterialX stuff).  But it's unclear to me if the goal here of this task is to actually
 handle the deferred loading for rendering or just how it could happen. <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">So maybe our proposal could be considered an extension to that task to add Hydra support and the node tree for manipulating data.  And we would re write parts to use that work when it's landed.<u></u><u></u></p>
</div>
<blockquote style="border-style:none none none solid;border-left-width:1pt;border-left-color:rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
Cheers,<br>
Sybren<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.blender.org%2Fpipermail%2Fbf-usd%2Fattachments%2F20211223%2Fa1fda356%2Fattachment-0001.htm&data=04%7C01%7Cmakowalski%40nvidia.com%7Cbf7c31eb547d406393c408d9c6fe2e1f%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637759618187965161%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=pTWhLIniBw34%2BBUF4Oz9Z1%2FMLWNovD4lk9wxEQklwZI%3D&reserved=0" target="_blank">http://lists.blender.org/pipermail/bf-usd/attachments/20211223/a1fda356/attachment-0001.htm</a>><br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
Bf-usd mailing list<br>
<a href="mailto:Bf-usd@blender.org" target="_blank">Bf-usd@blender.org</a><br>
<a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.blender.org%2Fmailman%2Flistinfo%2Fbf-usd&data=04%7C01%7Cmakowalski%40nvidia.com%7Cbf7c31eb547d406393c408d9c6fe2e1f%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637759618187965161%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=CvjcROZ92%2BS3UqCtpOg4q6Z4jbvSfYt8lt%2B6qpAGZr0%3D&reserved=0" target="_blank">https://lists.blender.org/mailman/listinfo/bf-usd</a><br>
<br>
<br>
------------------------------<br>
<br>
End of Bf-usd Digest, Vol 13, Issue 3<br>
*************************************<u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"><br clear="all">
<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal"><br></p><div>
</div>
</div>
</div>
</div>
</div>

_______________________________________________<br>
Bf-usd mailing list<br>
<a href="mailto:Bf-usd@blender.org" target="_blank">Bf-usd@blender.org</a><br>
List details, subscription details or unsubscribe:<br>
<a href="https://lists.blender.org/mailman/listinfo/bf-usd" rel="noreferrer" target="_blank">https://lists.blender.org/mailman/listinfo/bf-usd</a><br>
</blockquote></div></div>
</blockquote></div><br clear="all"><div><br></div></div>
</blockquote></div></div>