Hey, short version:
A sphere is remeshed, broken into pieces with Edge Fracture.
Vellum cloth, pressure and weld constraints are added to it. A break threshold is given for the weld.
Geo and constraints streams are brought into a DOP network, nothing fancy.
The restlengthscale of the pressure constraints primitive group is increased with a few keyframes.
This causes the balloon to inflate and after a while it tears apart because of the welds being broken. At this point i would like to disable the pressure on the “broken” pieces. I cannot figure out a way to do this, there is the broken group that the weld creates but i can't seem to do much with it.
I hope i've been clear enough.
Thanks in advance!
Detecting if pieces have been broken in a Vellum cloth tearing simulation.
2009 2 1- scarything
- Member
- 5 posts
- Joined: June 2017
- Offline
- folpatte
- Member
- 7 posts
- Joined: Aug. 2018
- Offline
A bit yearish late on this one
But I've been in the same case those days, and i think i found some info to get that broken data out
So i have the test case of an inflating sphere with weld constraints that get broken through pressure.
Checking the group_broken on the points, it seems to stay empty even if there are some broken points.
I did unlock the vellumsolver and found where that group is set on the points. From there if I set an attribute @broken, which is not a group, and add it to the attributes to create channel, i can get that correct value broken with 1.0values in it
So from there to detect the frame of the break, it becomes easy i think, with a sopsolver, a blast keeping only points @broken=1, and an npoints() function checking if the blast gives 0 points or not would be a way of doing that probably !
But I've been in the same case those days, and i think i found some info to get that broken data out
So i have the test case of an inflating sphere with weld constraints that get broken through pressure.
Checking the group_broken on the points, it seems to stay empty even if there are some broken points.
I did unlock the vellumsolver and found where that group is set on the points. From there if I set an attribute @broken, which is not a group, and add it to the attributes to create channel, i can get that correct value broken with 1.0values in it
So from there to detect the frame of the break, it becomes easy i think, with a sopsolver, a blast keeping only points @broken=1, and an npoints() function checking if the blast gives 0 points or not would be a way of doing that probably !
Edited by folpatte - April 8, 2023 20:20:15
- nikokoneko
- Member
- 2 posts
- Joined: Feb. 2021
- Offline
-
- Quick Links