References, Payloads & Layers ?

   2956   7   3
User Avatar
Member
761 posts
Joined: April 2014
Offline
Why use that over a SopImport; just personal preference or is there a performance increase ?

Also, I've ready on references; but I don't quite understand. I know payloads loads the assets into memory but references are loaded from disk; rather then memory, correct ?
With regards to references, I watched a Jeff Wagner tutorial whereas he loaded the material into a createLayer node, I assume that Jeff just wrote the SOPImport with a material node for the particular object ?

And how would I create a variant of a mesh with different displacements; just use variant with SOPCreate or SOPImport or if I'm instancing, use instance. Although I'm not aware on how to do this with instances. I understand somewhat how to do it without instances, which is just duplicating a SOPCreate or SOPImport and plugging into a variant node with different materials per references, assuming one is using the reference node.

What node must I use if I want to add a layer of FX to an object ? I ask as I would like to know, how can add fx to an object before the materials are applied ?
Edited by _Christopher_ - July 23, 2021 20:16:52
【T】【C】【S】
User Avatar
Member
127 posts
Joined: Feb. 2021
Offline
A lot of questions in this one. I'm probably not the right person to give you all the answers or the full depth of them, but here are a few basic things that may or may not help out

SOP-import:
will import things from within the same workfile from a SOPs network, not from disk. If you have done work in SOPs it can be handy for bringing it in to solaris, but I'd then rather use SOP-create to keep it all work inside of the solaris context.

SOP-create:
Will create an adhoc SOPs network disguised as a LOPs. Very useful for building things, lookdevs and other stuff (have a look at grid for example, or pighead).

SOP-modify:
Will also create an adhoc SOPs network, but also import whatever usd/lops content that was above it. Then you could blast stuff, model, do FX, UV map or whatever you want, and it will automatically be merged back as a replacement. OR, exported separately as a FX layer to be loaded back with reference (with primpath set to object changed, or new primpath), or if used with a layerbreak loaded with sublayer.

Reference:
Will import usd files or alembics etc from disk, and use the primpath to place them within the stage usd hierarchy. I.E. You might already have imported a lookdev with the primpath "/assets/foobar". If you later import the anim with a reference node and primpath also set to "/assets/foobar", it will merge them and inherit shading, uvs and other stuff.

Sublayer:
Will import usd-files from disk that already have "a place". For instance, in a proper usd workflow, only changes below a layerbreak would exported. Trying to reference that in would not work, since it is only partial information (the changes). So it needs to merge with other layers to work.
Example, if you have export a cube (/objects/cube) as cube.usd. Then (as an example) you also export that but with a layerbreak and a transform of the cube moving it as anim.usd. In a new file you now need to sublayer both cube.usd and anim.usd to see it working. anim.usd will not contain the cube itself.

Variants:
You create your geo however you want. Then add variants on new prim with path set to the top prim. (this prim cannot exist in stage at this point), from your geo, you can connect two assign material nodes, or edit materials to change disp or whatever you want. wire those to the variant node.
Then you should be able to right click on you instances and select variant, or create a setVariant node and add the instance number. Variants can be a bit tricky to understand for sure.


So to simplify, sublayers purpose is to combine the changes from different departments, while reference purpose is to bring in completely separate/standalone things. Reference has the same usecase as the nodes: volume, geometrysequence and value clip. I.E to bring in complete files.

As for payloads and settings for editable layer, instancable etc, It's all a blur for me still. I tend to leave it to the default.
Andreas Weidman
VFX Supervisor - Dupe VFX
www.dupevfx.com
User Avatar
Member
761 posts
Joined: April 2014
Offline
Why use SOP-Create over SOP-import, seems more logical to just import your SOP context using SOP-import ?

I saw in some tutorials, Reference being used for materials; but I didn't quite understand. Although your explanation makes it more clearer which is loading the material from a USD file. Although I thought sub-layers where for FX,UV etc; rather then SOP-modify ?

If I'm working on an asset and I want to add FX before even the textures, must I save the asset as USD file then using Scene Manager load the USD file; as a sub-layer ?
Edited by _Christopher_ - July 24, 2021 22:06:21
【T】【C】【S】
User Avatar
Member
127 posts
Joined: Feb. 2021
Offline
Using SOP-create you would have it contained inside the solaris context, as an hda asset for instance. You could also have hydra pinned showing you the solaris viewport while working inside of it. Again, check pighead and grid for good use of it.
SOP-import I would personally never really use unless for legacy files. But whatever floats your boat

I have a heard time following what your asking here. Not sure why you would use scenen manager to load the file?
Sub-layers are mainly for combining changes from departments, where each department would have saved to a usd file with partial information. Layout.usd. Anim.us. FX.usd. Light.usd and so on to be combined into one. If you do not work like that, then you most likely want to use reference for all imports.

So for your last question. I don’t know what FX you want to do here. But one way without saving anything out would be:
- if you are working on an asset in a sopcreate. Primpath on sopcreate is set to say ”/myasset”
- In that SOPcreate you could add all the FX you want OR you could have a SOPmodify below it where you do the FX, making sure primpath is the same.
- Below those you could add a material library with shaders and textures pointing to that primpath.

If you rather save things out or are two people working, you can just write out each step to an usd file. And load them with reference and they will merge and inherit as long as the primpaths match.
So you could reference asset.usd, then FX.usd, When you have done your textures and updated asset.usd then those will be inherited.

Hope that makes sense.
Andreas Weidman
VFX Supervisor - Dupe VFX
www.dupevfx.com
User Avatar
Member
761 posts
Joined: April 2014
Offline
When you mention; pighead and grid, is this an example scene file; if so I downloaded the Solaris Demo files and I didn't see such a scene file within that the compressed file which I downloaded ?

I have a heard time following what your asking here. Not sure why you would use scenen manager to load the file?
I meant Scene Manager, for brining in multiple USD files How one could use Sub-layers and scene manager together, I assume if Sub-Layers is for combining changes from departments by means of PrimPath, if the PrimPath is the same, it adds onto the current PrimPath; but if it's the same PrimPath it will overwrite ?


So for your last question. I don’t know what FX you want to do here. But one way without saving anything out would be:
- if you are working on an asset in a sopcreate. Primpath on sopcreate is set to say ”/myasset”
- In that SOPcreate you could add all the FX you want OR you could have a SOPmodify below it where you do the FX, making sure primpath is the same.
- Below those you could add a material library with shaders and textures pointing to that primpath.

The PrimPath has to be the same for the FX or materials to be applied to the object for which you want the material or FX to be applied too ? Therefore if you use SOP-Modify and add your FX within this LOP, immediately following the SOP-Create then in this example the last would be AssignMaterial (SOP-Create > SOP-Modify > AssignMaterial).

The PrimPath, as mentioned earlier in this message must be the same on the SOP-Create & SOP-Modify; otherwise your not applying the FX or material to the object you want.

And if I understanding referencing, which is simply taking a SOP-Import and maybe along side a SOP-Modify then writing that out to a USD using USD_ROP then since the referencing node can take multiple inputs then I bring in the USD by means of a configuration layer ?
Edited by _Christopher_ - July 25, 2021 11:36:26
【T】【C】【S】
User Avatar
Member
127 posts
Joined: Feb. 2021
Offline
I think at the place you are with Houdini, USD and Solaris knowledge right now, the better way to go might be to spend a little bit more time following SideFX tutorials and Solaris FMX talks. Read the help documents for every node, very useful. Also check out the Pixars USD documents if you get the chance.

Your questions seems to repeat somewhat and have hopefully been answered, they also tend to be too broad and specific at the same time. For me they go beyond the scope of what can be explained in a forum post. Wish you the best of luck on your Solaris journey!
Edited by AndreasWeidman - July 25, 2021 12:42:57
Andreas Weidman
VFX Supervisor - Dupe VFX
www.dupevfx.com
User Avatar
Member
761 posts
Joined: April 2014
Offline
I was hoping you or someone could simply just answer my last post; as from that post I should be able to get a better understanding then where I currently stand and it should be clearer !
【T】【C】【S】
User Avatar
Member
761 posts
Joined: April 2014
Offline
I would have thought that USD added in a more efficient way, rather then having to use a SOP-modify to do FX and having to use a SOP-create to bring everything in SOPs into Solaris. Rather I'm learning this is the way to layer things in USD within Solaris; and if there is a better way, if not; alright, I have to live with this is how USD in Solaris works.
【T】【C】【S】
  • Quick Links