Art-direct individual pieces in SOP RDB glass shatter

   2136   9   2
User Avatar
Member
833 posts
Joined: 1月 2018
Offline
I'm trying to shatter a window using the new RBD SOP nodes. The challenge is that I would like some of the pieces to remain in place as if stuck to the window frame and I'm not having much luck accomplishing that result.

Any advice as to how to go about it?

I'm attaching a reference frame, I'd like for the pieces where the arrows are pointing to stay put and not be included in the simulation. I have built some hard constraints around the glass in the location of the window frame, but I can't figure out how to connect the specific pieces of the glass to the sides, or how to group them and exclude them.

I'm also attaching a .hip file.

Thanks!

Attachments:
SOTS_SHOT_1_v2.hiplc (1.3 MB)
Screen Shot 2020-07-09 at 4.51.35 PM.png (2.2 MB)

>>Kays
For my Houdini tutorials and more visit:
https://www.youtube.com/c/RightBrainedTutorials [www.youtube.com]
User Avatar
Member
46 posts
Joined: 4月 2016
Offline
You can use RBD Configure SOP, section “Attributes”, add pieces you want to stay still in group, use “Active” parameter on section “Bullet Data” or “Pin” parameter on section “Constraints”.
User Avatar
Member
833 posts
Joined: 1月 2018
Offline
Thank you for the info…although I'm more than a bit confused by this new node. First of all, I'm not sure where in my node tree it should be instanced. Before the RBDSolver node I assume, but after the RBDMaterialFracture node?

If anyone could post a very basic/typical case scenario .hip file on how to use it I would be quite grateful.

Here's a basic .hip setup, but I can't seem to be able to get the larger top piece to sit in place while the rest of the geometry crumbles.

Thanks!

Attachments:
RBDSIM.hiplc (973.5 KB)

>>Kays
For my Houdini tutorials and more visit:
https://www.youtube.com/c/RightBrainedTutorials [www.youtube.com]
User Avatar
Member
833 posts
Joined: 1月 2018
Offline
Ok, so I'm able to use the Blast node to delete selected pieces of my fractured object so that they are excluded from the simulation, to then merge them back into my final output. I guess it kinda works, but this being Houdini there's got to be a more elegant way to exclude certain pieces from the simulation with either a Group node or by a bounding region?

I am really puzzled by this…so any help is much appreciated!

Attachments:
Screen Shot 2020-07-10 at 3.04.17 PM.png (344.9 KB)

>>Kays
For my Houdini tutorials and more visit:
https://www.youtube.com/c/RightBrainedTutorials [www.youtube.com]
User Avatar
Member
359 posts
Joined: 4月 2017
Offline
Just set i@active to zero on those pieces before the simulation. They'll act as static objects.
MOPs (Motion Operators for Houdini): http://www.motionoperators.com [www.motionoperators.com]
User Avatar
Member
833 posts
Joined: 1月 2018
Offline
You mean in an Attribute Wrangler node?
>>Kays
For my Houdini tutorials and more visit:
https://www.youtube.com/c/RightBrainedTutorials [www.youtube.com]
User Avatar
Member
359 posts
Joined: 4月 2017
Offline
Yep! Just set a point attribute named active on the points representing the packed fragments you want to be static, and set the value to zero. You'll probably want to ensure that the other fragments have a value of 1. A Point Wrangle is a perfectly good way to do this, but you can use whatever nodes you like as long as you're setting that attribute as an integer.
MOPs (Motion Operators for Houdini): http://www.motionoperators.com [www.motionoperators.com]
User Avatar
Member
46 posts
Joined: 4月 2016
Offline
Here is the file with two approaches using RBD Configure SOP.
1. Active. The tool sets i@active point attribute on packed primitive, as Henry said.
2. Pin. The tool sets s@name point attribute of constraint as a blank string, it means this point of constraint placed at world space position and doesn't move, a glue constraint will be unbreakable but on the other hand that constrained packed prim will not be able to collide.

You can combine these two methods of course.
I hope it helps.
Edited by vicvvsh - 2020年7月11日 04:10:38

Attachments:
RBDSIM_01.hipnc (1013.7 KB)

User Avatar
Member
833 posts
Joined: 1月 2018
Offline
Ok this helps immensely. It appears that the reason why I couldn't get RBDConfigure to work properly was because the Constraint Geo inputs and outputs were connected all the way through effectively negating the RBDConfigure attributes.

In your second example, the Constraint Geo is connected, but I guess when using the Pin function everything works regardless.

Thank you both for helping me figure this out!!!
>>Kays
For my Houdini tutorials and more visit:
https://www.youtube.com/c/RightBrainedTutorials [www.youtube.com]
User Avatar
Member
73 posts
Joined: 3月 2020
Offline
Also note that the issue with your original file was that you had “Use Bounds” checked on the RBD Configure node but didn't actually supply any bounds (by connecting the 4th input). This has the unintuitive effect of setting the value opposite of what you'd expect (because everything is outside of the zero bounds). Perhaps what you intended to do was the following:

1. Create a box that surrounds only the glass pieces you want to shatter (presumably in the center of the window) and connect it to the 4th input.

2. Set Active to 1 and check Use Bounds - this will mark only the pieces within the box as active.

And yeah typically RBD Configure feeds directly into RBD Bullet Solver because RBD Configure conveniently packs up your geometry as well. You could stick in a prim wrangle between the pink Constraints wire if there's any further tweaks you need to make to your constraints, but this new node does simplify a lot of the constraint setup workflow.
  • Quick Links