Importing Houdini RBD Sim into Blender for rendering

   1179   4   1
User Avatar
Member
15 posts
Joined: Feb. 2023
Offline
Hi. I recently created one of my first scenes following a tutorial dropping ceramic vases on the floor using an RBD solver.
The main attribute driver I use for spawning five different vases from a point is the Class Attribute.



I am using an Alembic ROP to export the sim into Blender. So far, so good, but I can not shade each Vase differently within Blender.
The entire sim seems driven by one shader for the Vase walls and one for the cracked edges.




Do you know what attribute in Houdini allows me to manipulate each Vase shader independently in Blender?

Thank you !

Attachments:
Screenshot 2023-12-25 120902.png (2.1 MB)
blenderattributes.jpg (44.0 KB)

User Avatar
Member
2607 posts
Joined: June 2008
Offline
Make sure each of your RBD pieces are unpacked and have a unique name. Set the Alembic ROP to Build Hierarchy By Attribute and use the name or class attribute to define that hierarchy. That name will become an object in Blender's outliner. This will allow you to apply a different material to each piece in the Blender scene.
Edited by Enivob - Dec. 25, 2023 09:15:36

Attachments:
Untitled-1.jpg (115.7 KB)
Untitled-1a.jpg (91.8 KB)

Using Houdini Indie 20.0
Windows 11 64GB Ryzen 16 core.
nVidia 3050RTX 8BG RAM.
User Avatar
Member
15 posts
Joined: Feb. 2023
Offline
Enivob
Make sure each RBD piece is unpacked and has a unique name. Set the Alembic ROP to Build Hierarchy By Attribute and use the name or class attribute to define that hierarchy. That name will become an object in Blender's outliner. This will allow you to apply a different material to each piece in the Blender scene.


Thank you, I tried your suggestion. I got in Blender every piece of the broken vase as a different mesh, making it impossible to handle. I am trying to get not a shader for each crack of each Vase but to get all cracks on Vases A, B, C, and D...identified.

I also tried to use Class instead of name (which gives me every tiny separated mesh), but Class doesn't seem to do anything when importing it into Blender. Maybe the attribute isn't present after using certain nodes.

I uploaded the Houdini file. I hope this helps to clarify or point out what I should do.

Thank you for your time and help.

Attachments:
RBDSPAWN.hiplc (1.2 MB)

User Avatar
Member
2 posts
Joined: Nov. 2021
Offline
Did you ever find a solution on your issue?
User Avatar
Member
113 posts
Joined: June 2024
Offline
This is an interesting question, I did some digging and realized that I have no idea how this works. Problems on both sides.
Problem #1 in blender - blender doesn't load attributes at all. But it loads groups of Houdini primitives as materials. This means we need to load groups of primitives into objects into the alembic.
And this is where Houdini's problems come in. Let's save the alembic and immediately load it back into Houdini, what will we see? First of all, Houdini doesn't categorically preserve some attribute names and I don't understand why. For example, the class attribute - it is not there after loading, but if you rename it, it will be loaded. Strangeness number 1, but not the last.
I moved the class attribute into primitives and turned it into groups. In the table we have 4 new groups g1, g2, g3, g4. But only one group g4 is loaded back. Why the first three groups disappear is completely unclear; renaming does not help. So the theoretically correct move - to write down groups in the alembik - actually does not work.
Well, the option to build a hierarchy had no effect. Although in fbx this hierarchy by name is built normally.
So maybe someone else can solve this puzzle?
  • Quick Links