PixarAnimationStudios / OpenUSD

Universal Scene Description
http://www.openusd.org
Other
6.14k stars 1.22k forks source link

Katana : why there is no pxrUsdOut ? #474

Closed nyue closed 1 year ago

nyue commented 6 years ago

I see pxrUsdIn but no pxrUsdOut. Is this by design ? Katana is purely a consumer of USD files unlike Maya which can both consume and produce USD files.

Cheers

jtran56 commented 6 years ago

Filed as internal issue #160013.

chadrik commented 6 years ago

I'm also very interested in this. What's still unclear to me is what form this would take on the Katana side. I was talking with @slooper about this and he felt that there were limitations to the Katana C++ API (consuming multiple scene graph locations) which might limit this feature to python. We wrote something basic in python to export arnold materials to UsdShade, using the existing lookfile baking utilities, but I don't think its interesting enough to share. I'm very interested to hear more concrete ideas about the right format for this feature. Do we need something more from The Foundry to do it right?

slooper commented 6 years ago

Likely the most appropriate ask from the foundry is for them to provide a pluggable API for the LookFileBake and related Nodes, Ops and APIs. That would allow for supporting any number of scene graph descriptions for export.

spiffmon commented 6 years ago

We’ve thought about this, too, and currently also have very limited, python only export mechanisms from Katana, originally derived from the look-file baking process, and supporting only Material (plus bindings) and Gaffer export.

On the performance side, even given proper C++ bindings, “full” export from Katana will be super-slow if you have time-varying data in katana, since it was not designed for changing frames... and on that note we also can (I think) have varying scene topology per-frame, but we could deal with that similarly to how we do in Houdini. We also found, in our gaffer-export experiments, that anything causing cel-based collections to need to be expanded was way too expensive, but that is a judgment for the particular workflow we were targeting, not for full-scene export.

Then you get into the interesting philosophical questions of how much of the nodegraph do you want to bake? One way to give yourself a simple answer is to formulate the export as a Katana renderer plugin; then the answer is easy: you’re baking out everything to one, fixed branch of the katana recipe.

But we’’d really like to be able to export our Master lighting setups to USD. Those Katana documents contain conditionals about specific shots in a sequence, and get evaluated as live groups in shots - very cool and powerful. It’d be really unfortunate if we had to bake each master-lighting setup out into per-shot versions. We currently lack a fitting variation mechanism in USD to capture this elegantly, but we have some thoughts. But, as Steve has pointed out many times, trying to reason about branching logic in a nodegraph can be pretty fraught, unless there are strong guardrails in place (such as gaffer nodes in isolation, provide).

I’m sure there are other issues I’m forgetting about, but wanted to dump what I remember. We would definitely like to be able to use Katana as a powerful USD editor and authoring tool, though it sounds like Houdini is going to get there first!

On Tue, Apr 24, 2018 at 5:46 PM Sean Looper notifications@github.com wrote:

Likely the most appropriate ask from the foundry is for them to provide a pluggable API for the LookFileBake and related Nodes, Ops and APIs. That would allow for supporting any number of scene graph descriptions for export.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/PixarAnimationStudios/USD/issues/474#issuecomment-384124823, or mute the thread https://github.com/notifications/unsubscribe-auth/AF7qaC0IJHG-SevRMh50DpNkwCWKrjGyks5tr8d0gaJpZM4TiaKK .

-- --spiffiPhone

animanathome commented 6 years ago

To build on top of the question of @nyue (we work together). We would like to use Katana for asset look development and thus only export the shading information for each asset individually.

@spiffmon , would the python export mechanisms you're talking about here be useful in this scenario? They would be relatively small and static files. If so, are these methods currently available?

@chadrik , it sounds like the export arnold material to UsdShade might actually be what we're looking for. Do you think this would be something you could share?

Thanks

animanathome commented 6 years ago

Hi @spiffmon and @chadrik. Is it possible to get an update on this. thanks.

spiffmon commented 6 years ago

Our python exporter was not designed to be open-sourced, unfortunately, and would take a fair bit of effort to do so; it has both pixar and renderman-specific logic in it, and we're not currently planning on publishing it.

animanathome commented 6 years ago

Thanks, @spiffmon.

BastienLaby commented 5 years ago

Hello,

In our case, it should be nice to have a pxrUsdOut similar to Houdini USD Output node. A basic usage should be : pxrUsdImport an USD asset, modify certain transforms (lighting, for example), then export the result as a USD file containing overrides.

Regards

spiffmon commented 1 year ago

Closing, as Pixar no longer publishes Katana plugins.