Simplest Payload Setup

   Views 656   Replies 5   Subscribers 0
User Avatar
Member
33 posts
Joined: 7月 2005
Offline
Mmmm feeling a bit silly but can't get an expected behaviour and not sure why. Without going down the component builder hda route, I want to in the simplest way possible create a payloadable usd asset, with bounding box preview.

Using Houdini 19.5 (at work)

I have a model.usd and material.usd file, that I am sublayering together and write out as an asset.usd

When I use a reference LOP to bring in my asset.usd, and set node to payload, the asset unloads. As expected there is no bbox preview. All info about this points to using a node called loftpayloadinfo to generate bound info.

When I append this node below model and material sublayering, write out my asset, reference it back in... Same result. Also I do not see any bbox metadata in the usd file. The node did nothing.

However using that new reference node, if I set it to payload, and append a loftpayload below this, I now see a bbox (strangely being created from an asset not loaded?!)

If I write this out as payload.usd, and I once more reference in this new file, with it set to either "reference" or "payload" in the reference type field, I get payload behaviour with bbox! Is that correct? (perhaps that's how it means to be? i.e i'm referencing a payload now so it's behaving like one?). Seems a bit confusing I can no longer choose load behaviour as reference, or payload, on the node that behaving exactly like that in just the previous step.

If that all sounds correct, How can I set up the bound info directly when i'm sublayering my model and lookdev together to prepare my asset.usd? I suspect it want's a root prim to write the metadata to that wont be there with I reference, so that's why it doesn't work?

Interestingly to help demonstrate, at home (H20.5) ive tried to add an example file to showcase my confusion. However there i hit another issue. If I set any reference to payload, its doesn't change to one. That sounds broken. (file attached)
Edited by revilo3d - 2024年12月21日 00:07:11

Attachments:
payloadTest.hipnc (199.8 KB)

User Avatar
Member
343 posts
Joined: 11月 2013
Offline
From your description I can't quite tell what stages of your workflow are asset construction (payload unloading/loading not relevant so much), versus using your asset in a shot or scene (with payloads loaded or unloaded).

Hopefully the attached file helps, just run the two rop nodes from left to right.

Attachments:
payload.hipnc (119.3 KB)

User Avatar
Member
33 posts
Joined: 7月 2005
Offline
Thanks Antc,

Appreciate the file, and settled on something pretty similar! Interesting use of the empty sublayer node. I see it setting load payloads to off, and controlling that for the whole stage?

Why does simply setting a reference node to payload for the usd file still do nothing. I'm very confused about that.

My expection is with viewport payloads off:
Reference > ReferenceType > Reference File = A Reference (not treated as a payload)
Reference > ReferenceType > Payload = An unloaded Payload (and turned on and off using viewport masks)

Seems like one can't have a usd file that supports acting behaving as either reference or a payload. Shouldn't payloading purely be a loading behaviour when we call on the usd file?

Inside the usd file it switches between:
prepend references = @D:/downloads/geo/sphere.usd@</Sphere>
prepend payload = @D:/downloads/geo/sphere.usd@</Sphere>

But both show just the bounds until I load payload :S
User Avatar
Member
343 posts
Joined: 11月 2013
Offline
revilo3d
Why does simply setting a reference node to payload for the usd file still do nothing. I'm very confused about that.

My expection is with viewport payloads off:
Reference > ReferenceType > Reference File = A Reference (not treated as a payload)
Reference > ReferenceType > Payload = An unloaded Payload (and turned on and off using viewport masks)

The behavior I'm seeing from Step 2 in the file I attached is that when the reference lop is configured to "Payload File" it's possible to load/unload in the viewport. Sorry if I'm misunderstanding.
Edited by antc - 2024年12月21日 23:15:49

Attachments:
payload.gif (642.0 KB)

User Avatar
Member
33 posts
Joined: 7月 2005
Offline
So what Im meaning is (in your example) when you write out sphere.usd and reference that back in (as you would be bring that into a shot) - its will always behave like a payload, regardless of the reference Type parm setting.

It makes sense in a way, because the file you are referencing inside of sphere.usd (payload_geom_file) was set to payload when it was written. But it also means we have a parameter on our sphere.usd reference, that we can choose reference or payload, yet always behaves like a payload.

I feel like reference should envoke referencing of all dependencies too perhaps?
User Avatar
Member
343 posts
Joined: 11月 2013
Offline
That's correct - the Reference/Payload options on the node are for authoring, which is what gets written into sphere.usd. There's no functionality I'm aware of that would allow a reference node to remove an authored payload from the input file.

There is a subtle difference between referencing and payloading sphere.usd back into the scene though. The bounding box (extents) attribute was lofted above the payload so that Houdini has access to it even when the payload (sphere.geom.usd) is unloaded. So it's important to reference sphere.usd for that reason. If sphere.usd is payloaded, the lofted bounding box info gets placed behind a second payload, and will be unavailable to Houdini unless payloads are loaded.
Edited by antc - 2024年12月27日 11:41:12
  • Quick Links