Unpacking alembic in Solaris?

   4771   11   3
User Avatar
Member
433 posts
Joined: April 2018
Offline
Howdy all, I've got some geo with name attributes on various parts, exported to alembic. If I bring the geo into Solaris it doesn't see the names. I have to go to /obj, unpack, and bring back in. Is there a way to unpack alembic directly in Solaris? Thanks!
Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Staff
727 posts
Joined: Oct. 2012
Offline
SOP Import doesn't have much support for packed Alembic prims - since USD has a .abc file format plugin, you can directly load alembic files through the File LOP etc
User Avatar
Member
433 posts
Joined: April 2018
Offline
Thanks. Here's what I'm seeing:

1. Alembic unpacked in SOPs shows the groups

2. Same alembic loaded via file node in LOPs, no groups

3. Unpacked alembic brought in from SOPs has the groups


Is that the only way to get the groups into LOPs or is there way to do it without the trip to SOPs? Maybe I set the groups up wrong to begin with? Thanks again!
Edited by BrianHanke - July 12, 2021 09:35:27

Attachments:
sops.png (103.9 KB)
lops1.png (87.0 KB)
lops2.png (92.1 KB)

Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Staff
727 posts
Joined: Oct. 2012
Offline
In this case it looks like you're relying on SOP Import's ability to partition the geometry into different USD prims based on the SOP `name` attribute.
So in the second image that's directly loading the alembic file, I'd expect there to be a primvar on the mesh with the various 'name' values, since the .abc file format plugin would just be loading the alembic file as-is. If you're creating the alembic file with the Alembic ROP, you could set the "Partition Mode" parameter to "Use Attribute Value" (and set Partition Attribute to "name") - this should partition the mesh based on the name attribute
User Avatar
Member
433 posts
Joined: April 2018
Offline
Ah great. Yes, I was using an Alembic ROP. Partition Mode is greyed out, but I'm getting the result I want using "Build Hierarchy From Attribute."
Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
127 posts
Joined: Feb. 2021
Offline
Not sure how you are getting this problem. But perhaps try and load it with a reference node instead. When set to "reference specific primitive" you could ctrl-click the arrow and browse the containing primitives.

Another option is to import it in a SOP-create node using the same node as in sops.
Edited by AndreasWeidman - July 20, 2021 11:12:30
Andreas Weidman
VFX Supervisor - Dupe VFX
www.dupevfx.com
User Avatar
Member
433 posts
Joined: April 2018
Offline
AndreasWeidman
Not sure how you are getting this problem. But perhaps try and load it with a reference node instead. When set to "reference specific primitive" you could ctrl-click the arrow and browse the containing primitives.

Another option is to import it in a SOP-create node using the same node as in sops.

Thanks. Somehow it seems to come down to what produced the Alembic. Default settings from the Houdini Alembic ROP saves it packed (I guess?) and Solaris doesn't see the various primitives. But, an Alembic saved from ZBrush of a scene with multiple models works just fine either via file or reference node.

I'm sure I'm missing something, but the default Houdini behavior isn't quite working for me. The defaults in Maya and ZBrush do...
Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
7733 posts
Joined: Sept. 2011
Offline
BrianHanke
I'm sure I'm missing something, but the default Houdini behavior isn't quite working for me. The defaults in Maya and ZBrush do...

Houdini and zbrush and maya are working identically. The difference is in houdini you had one object that you expected to work like it was many objects. Fortunately, Houdini lets you do that using the 'build hierarchy from path' option. It's not on by default because it can't assume that the partion attribute exists or it will fail if it doesn't.

BrianHanke
Default settings from the Houdini Alembic ROP saves it packed (I

Has nothing to do with it. 'Packed' doesn't exist as a concept outside of Houdini sops geometry.
User Avatar
Member
433 posts
Joined: April 2018
Offline
I get it now, just need to click that checkbox. Question: by default it looks for "path," but there is no "path" in the geo spreadsheet. Still works and separates the geo though. Why?
Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
7733 posts
Joined: Sept. 2011
Offline
BrianHanke
I get it now, just need to click that checkbox. Question: by default it looks for "path," but there is no "path" in the geo spreadsheet. Still works and separates the geo though. Why?

Check the primitive tab of the geometry spreadsheet. It will error out if there is no path attribute.
User Avatar
Member
433 posts
Joined: April 2018
Offline
Hmm, not following. Attached is a box, torus, sphere from Maya, cached to Alembic, brought into Houdini. It sees the separate objects but I don't see path and it's not listed in the spreadsheet. If I export from the ROP using default settings I get one geo. If I click hierarchy and leave it at path (even though not listed) it works.

Attachments:
abc.mp4 (641.6 KB)

Subscribe to my Patreon for the best CG tips, tricks and tutorials! https://patreon.com/bhgc [patreon.com]

Twitter: https://twitter.com/brianhanke [twitter.com]
Behance: https://www.behance.net/brianhanke/projects [www.behance.net]
User Avatar
Member
7733 posts
Joined: Sept. 2011
Offline
Oh, you didn't say you were writing out alembic packed primitives as alembic. I think they pass through properly to allow for round-tripping. In that case the path attribute is probably redundant since the packed primitives have an intrinsic alembic path property.

It's strange your alembic prims don't have a path attribute but instead have groups. I guess when the file sop is used instead of the canonical alembic sop, you don't get any of the frills.
  • Quick Links