Jump to content

Pixie dust effect


malkuth

Recommended Posts

Hi

 

I want to achieve a pixie dust effect using a particles simulation.

 

The way that I have done it, is by using a layered CHOPS noise that generates the flicker for the particles color. Using a different seed for each noise produces a very nice delay and variation for each particle. The problem is that for rather large simulations I have a possible memory limit issue when `cooking` the CHOP noise.

 

The attached example has a limit for the particle count in order to be easy to load the first time. There is about 250 points and 250 channels of noise. That works fine but  when the particle number is around 400.000 the memory required for cooking goes up to about 30 GB.

 

Any ideas for a better workflow?

 

Thank you!

 

cheers

Cristian

nS_sh02_t_v04.hiplc

Link to comment
Share on other sites

if you're just talking about the sparkle effect, then just use a point wrangle and use id and frame as seeds to a rand function:

 

if (rand(i@id/75.32 + floor(f@Frame/3)/12.6)<.1)
     f@sparkle = 1;
else
     f@sparkle = 0;

 

the 75.32 and 12.6 are just there to avoid integer seeds which might cause repetition.  the floor(Frame/3) will make a sparkle last 3 frames (since the seed will only change evern 3 frames).  you could probably add a random number in there (based on id and frame) to offset so the 3 frame change isn't sync'd across all particles.  the <.1 part equates to 10% of your particles at any time being sparkles.  you can drop that down for fewer or increase it for more.

Link to comment
Share on other sites

Hi Jim

 

Thank you for your reply.

 

The noise in VOP was my first try but to my eyes it seems that one can still see the noise pattern creeping in the particle render as well as being totally unusable with a lot of fast moving particles.

 

The first suggestion I have considered it as well since I can probably be happy with 200 channels of noise that are spread out to the whole lot but I cannot figure out a way to distribute the channels to, let's say, 400.000 particles.

 

cheers

Link to comment
Share on other sites

Hi Miles

 

Thank you for your detailed answer. That is definitely an expression that I'll use at some point.

 

Far as I can see, the expression above gives to an attribute called 'sparkle' the values of 0 or 1 when the conditions above are meet. Is that correct? If you meant something else can you please explain?

 

I can use that expression to drive the alpha of the particle but that will be just a frame off witch you wont see in a fast moving / small particle.

If you can have a look at the file attached you can see the effect that I'm after. I can be done for 400.000 particles but it is very close to my memory limit and not very friendly if I want to increase the number for particles above that.

 

Thank you!

 

cheers

Edited by malkuth
Link to comment
Share on other sites

You can tie the noise to anything you want. You do not want to base noise off of pose. You need something static, like $ID or make a birth position. rand($ID)*100 would work fine. From there you can use any math function on the noise you would like, to achieve any style of twinkling. 

Link to comment
Share on other sites

Hi Miles

 

Thank you for your detailed answer. That is definitely an expression that I'll use at some point.

 

Far as I can see, the expression above gives to an attribute called 'sparkle' the values of 0 or 1 when the conditions above are meet. Is that correct? If you meant something else can you please explain?

 

I can use that expression to drive the alpha of the particle but that will be just a frame off witch you wont see in a fast moving / small particle.

If you can have a look at the file attached you can see the effect that I'm after. I can be done for 400.000 particles but it is very close to my memory limit and not very friendly if I want to increase the number for particles above that.

 

Thank you!

 

cheers

 

 

i didn't open your file (kind of restricted internet at work).  sparkle 0/1 is really just to indicate which particles are currently "sparkling".  you can then do whatever you want to make the sparkle effect -- brighter particles, larger particles, replaced with a sprite texture (like a starburst or something), etc. 

 

you can add a blast to filter your particles into groups based on the sparkle attribute if that makes the most sense to you.  then treat each group however you wish and merge them back together.

Link to comment
Share on other sites

Cool Miles, I follow you now :)

 

The only thing that I'm missing is a way to offset in time about 200 channels of different noises generated by CHOPS (about 200 frames animation) and apply that to the group/s.

 

Thanks!

 

cheers

c

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...