re-editing material usd once made into a usd

   1173   17   4
User Avatar
Member
107 posts
Joined: Aug. 2013
Online
Hi.

Is there any way to reedit the material of a premade usd file. If the mesh is usd and the material is usd, what I want to to be able to dive back inside the material to make further edits. Or am I thinking about this wrong. Should I think of a usd material as “compiled”. Best Mark
Edited by Mark Wallman - March 2, 2020 07:09:18

Attachments:
Capture.qJPG.JPG (159.5 KB)

User Avatar
Staff
1287 posts
Joined: July 2005
Offline
If you want to “dive back” into the material network, then indeed Edit Material LOP is probably the way to go. However, at the moment, this LOP handles only simple networks (eg, no NodeGraphs, etc).
User Avatar
Member
107 posts
Joined: Aug. 2013
Online
Hi. Cool good to know. Is this something that might be expanded on in the future? Best mark
User Avatar
Staff
1287 posts
Joined: July 2005
Offline
Yes. We definitely plan on improving the Material Edit LOP.
User Avatar
Member
52 posts
Joined:
Offline
Is there a plan or even just a way right now to override a parameter value from a shader, but just for a single primitive? Im using the ‘variant’ node, but I feel this might not be a good workflow, and moreover it requires the user to know the name of whatever variable needs to be overriden.

Something that would just display all the ‘promoted’ parameters or a list of shader parameters and allow a primitive to receive whichever value is changed.
User Avatar
Member
1787 posts
Joined: Sept. 2015
Offline
Is there a plan or even just a way right now to override a parameter value from a shader, but just for a single primitive?

You can either set shader parm values in a wrangle prior to importing the geo to Lops, or while in Lops use a Sop Modify node (setting on Unpack USD Primitives to Polygons - or use unpack USD Primitives to Polygon node inside Sop Modify node) - then use a wrangle there.
User Avatar
Member
3847 posts
Joined: Sept. 2011
Online
Sixjames1000
Is there a plan or even just a way right now to override a parameter value from a shader, but just for a single primitive? Im using the ‘variant’ node, but I feel this might not be a good workflow, and moreover it requires the user to know the name of whatever variable needs to be overriden.

Something that would just display all the ‘promoted’ parameters or a list of shader parameters and allow a primitive to receive whichever value is changed.

The assign material and materialvariation lops allow modifying material parameters per target prim.

Assign material creates material instances with the parameter variations and varations are visible in HoudiniGL.

Material variation authors primvars on the target prims based on the available exposed parameters of the assigned materials. This method is not visible in HoudiniGL since primvars are not used other than displayColor. It should behave similarly to the SOP methods BabaJ recommended but without the unnecessary unpacking overhead.

Attachments:
vary_materials.hip (314.6 KB)

User Avatar
Member
52 posts
Joined:
Offline
I see,

Unfortunately none of this presents the artist with a clean UI with exposed parameters or ‘overrideable’ parameters. Is there any plan to improve the material override parameter workflow for solaris ?
User Avatar
Member
1787 posts
Joined: Sept. 2015
Offline
Unfortunately none of this presents the artist with a clean UI with exposed parameters or ‘overrideable’ parameters. Is there any plan to improve the material override parameter workflow for solaris ?

Don't see what you mean by that - especially jsmacks suggestion - everything is laid out at the top level of the node - what is it you feel needs improving?
User Avatar
Member
3847 posts
Joined: Sept. 2011
Online
Sixjames1000
I see,

Unfortunately none of this presents the artist with a clean UI with exposed parameters or ‘overrideable’ parameters. Is there any plan to improve the material override parameter workflow for solaris ?

You can use a reference lop to make a new material instance, and then an edit properties node to create overrides for all of the parameters if you like. Then manually assign the instance to the desired targets.
User Avatar
Member
52 posts
Joined:
Offline
Edit material doesn't work on complex networks right?
Edited by Sixjames1000 - April 2, 2020 09:45:48
User Avatar
Staff
1287 posts
Joined: July 2005
Offline
That's correct. At the moment, it only works on simple networks.
User Avatar
Member
52 posts
Joined:
Offline
bummer
User Avatar
Member
12 posts
Joined: April 2017
Offline
Hi all. Just wondering if there were any updates for this or planned for 18.5? The edit material node also seems to struggle on Shader Nodes created for other render delegates (In particular the HdCycles render delegate). Happy to provide some examples if needed.

Thanks for any insight,
- Ben
Edited by vochsel - Sept. 2, 2020 13:36:19
User Avatar
Staff
1287 posts
Joined: July 2005
Offline
While there are few improvements to the material inheritance/specialization, which somewhat relate to Material editing, unfortunately there were not many direct improvements to the Edit Material LOP.
User Avatar
Member
12 posts
Joined: April 2017
Offline
Okay, thanks for the heads up rafal!
User Avatar
Member
93 posts
Joined: April 2015
Offline
What do you guys mean with ‘complex networks’ btw?

When I import a material it just imports the network? i.e. All the shaders in the material with the connections are there still in tact. (My 3Delight material network)
What's the difference between this network and a ‘complex network’?
Edited by OdFotan - Sept. 23, 2020 12:25:45
User Avatar
Staff
1287 posts
Joined: July 2005
Offline
The USD material may have been translated from a Subnet VOP or maybe from a bunch of VOP nodes feeding into the Collect VOP directly inside the Material Library LOP. Both USD translations will look the same, so re-creating the exact VOP network is not possible.

Also, Subnet VOP may have nested Subnet VOPs, which yield NodeGraph prims, and Edit Material does not handle that yet, IIRC.

Even if it did handle NodeGraphs, it's possible a given NodeGraph may have been translated from an HDA VOP, but there is no way of knowing it at the moment, so Edit Material may create a regular Subnet VOP.

Also, the 3Delight material network may be packaged together in with Karma and RenderMan's materials, etc.

When USD shader is a VEX shader translated from a Material Builder, then it's not possible to re-create VEX building block VOPs inside it, unless we encode the VOP network topology in USD.

Anyway, these are the “complexities” that come to my mind off hand.
  • Quick Links