Wuwu55 Posted August 7, 2020 Share Posted August 7, 2020 Hello everyone, I recently tested out a simulation I wanted to create on smaller objects and everything seemed to work fine. It's basically a ship on water that gets struck by a missile. The part of the ship where it will get struck is already fractured (rbd). It works fine. So I would like to simulate debris coming from the points of impact and use those same source points for my massive smoke. The only problem is, there is nothing in the debris source. I have brought the packed geometry out of DOP's, unpacked, stuck a trail node and everything appears to be working until the debris source node. This is very confusing because it worked in my simple SIM setup previously but for the life of me, I can't figure out why there are no debris source points. I would appreciate some help on this, and I've attached my scene file to this. Thank you. shipanddestruction.hipnc Quote Link to comment Share on other sites More sharing options...
ziconic Posted August 9, 2020 Share Posted August 9, 2020 Hard to tell for sure since you didn't include any geometry in your file but one place to check is whether your search radius for the Debris Source node is appropriate for the scale of your geometry. It is possible that Debris Source wasn't able to find a nearby point that it can use to determine if two adjacent pieces have separated. Check the output of the "find_closest_from_other_piece" node in Debris Source and see if @__otherid is actually being set to something other than @ptnum. Quote Link to comment Share on other sites More sharing options...
Wuwu55 Posted August 9, 2020 Author Share Posted August 9, 2020 10 hours ago, ziconic said: Hard to tell for sure since you didn't include any geometry in your file but one place to check is whether your search radius for the Debris Source node is appropriate for the scale of your geometry. It is possible that Debris Source wasn't able to find a nearby point that it can use to determine if two adjacent pieces have separated. Check the output of the "find_closest_from_other_piece" node in Debris Source and see if @__otherid is actually being set to something other than @ptnum. I just checked that, it is looking at Ptnum. I realized that the geometry wouldn't show up properly so there is a simple box and sphere rbd breaking and debris node setup in this file just to illustrate what I'm going for and show that it isn't working. Still stumped. shipanddestruction.hipnc Quote Link to comment Share on other sites More sharing options...
ziconic Posted August 9, 2020 Share Posted August 9, 2020 In your simplified example, the reason debris isn't being emitted is because you set the rest frame of the Debris Source node to a frame that doesn't have any geometry. You need to pick a frame where all your pieces are present and still stuck together. @__otherid needs to be set to something other than @ptnum for debris emission. @__otherid is the point the distance to which is tracked to determine if debris should be emitted. When @__otherid is the same as @ptnum, it means we failed to find a corresponding point to track for @ptnum. Quote Link to comment Share on other sites More sharing options...
Wuwu55 Posted August 9, 2020 Author Share Posted August 9, 2020 Yes! That's the issue. The rest point. It is emitting now. Thank you so much. What exactly is @_otherid supposed to be set to if not @ptnum? Quote Link to comment Share on other sites More sharing options...
ziconic Posted August 9, 2020 Share Posted August 9, 2020 The Debris Source node works by scattering points over your pieces, and, for each point (ptnum), finding another point (__otherid) on a different piece to track. Once the distance between the two points exceeds a certain threshold, debris is emitted. If both points are the same, then debris is never emitted from that point. Quote Link to comment Share on other sites More sharing options...
melanie_mntl Posted August 22 Share Posted August 22 Hi, same issue here, in my case in the attribwrange find_closest_from_other_pieces the attribute was @__other_pt instead of @__otherid, changing the name in the wrangle was the answer for me : i@__otherid = @ptnum; float pscale = point(0,"pscale",0); float radius = chf("search_radius") * pscale * 2; int maxpoints = chi("search_points"); foreach (int other_pt; pcfind(0, "P", @P, radius, maxpoints)) { string other_name = point(0, "name", other_pt); if (s@name != other_name) { i@__otherid = other_pt; break; } } hope it may helped someone ^^ Mélanie Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.