Flush nParticles created by HE

   2902   3   1
User Avatar
Member
2 posts
Joined: June 2006
Offline
I have created an otl for maya that is creating a density attribute through pcOpen vex code.

While it's a bit of a drag, I can deal with the fact that each time I reload the asset, I must recreate a “density” attr on the nParticles for houdiniEngine to write.

However, after I have played through the shot and rewind, the resultant nParticles will not clear. I have tried cutting maya particle emission and runtime expressions for lifespanPP at the tail of my shot and reloading/sync'ing the HDA on frame1 where no input particles exist.

The only solution that I've found is to save & re-launch the scene.

Are the particles getting caught up in memory of HEngine with no way to flush them?
User Avatar
Member
818 posts
Joined: Sept. 2013
Offline
krbrowne
While it's a bit of a drag, I can deal with the fact that each time I reload the asset, I must recreate a “density” attr on the nParticles for houdiniEngine to write.
Which Houdini version are you using? In 14.0.289 and up, the plugin should create the necessary per-particle attributes for you. There has also been a few bug fixes since then, try 14.0.404 and up.

krbrowne
However, after I have played through the shot and rewind, the resultant nParticles will not clear. I have tried cutting maya particle emission and runtime expressions for lifespanPP at the tail of my shot and reloading/sync'ing the HDA on frame1 where no input particles exist.
Yeah, the plugin isn't clearing the particles properly. Let me look into fixing this in the next few days.
Andrew / アンドリュー
User Avatar
Member
3 posts
Joined: July 2006
Offline
until it gets fixed properly i know of one hack to fix the clearing.
It is to create a single point that exists when there are no particles present in the particle system.
in your asset or cache, if you drop down a switch node and set the switching expression to “if(npoints(”../yournode“)==0, 0, 1) where ”your node" is the output of the particle sim. Set input 0 of the swtich node to a single point with an id of 999999999 or something high so there is no conflict, and make sure it has all the same point attributes etc as what will come out of your particle sim, set input 1 to your particle sim output.
Then maya should play nicely and your non moving, single point should ‘stand in’ for the particle sim when there are no points.

hope that helps
User Avatar
Member
818 posts
Joined: Sept. 2013
Offline
I've been working on this for a while, but it turns out the proper fix is going to take a bit longer. :? For now, I've put in a temporary fix that should work for most situations:
1. “Sync” will be able to remove the particle nodes that no longer exists.
2. In the case where the SOP node only outputs particles, the particles will also be cleared out even when the particle node is still in the scene.

The change should be in tomorrow's build (14.0.457).

I'll keep working on a proper fix, which will hopefully generalize (2) to work in cases where the SOP node outputs a mix of geometries, like some polygons and unused points.
Andrew / アンドリュー
  • Quick Links