Black Smoke particles.. how to achieve?

I started with code copied from HelloEffects and soon had white smoke puffs coming out. I saw that I could set start and end colors to get other, equally terrible colors such as red or blue. A good start. But I need black smoke and nothing I can think of produces this:


  1. I created a variant version of the Smoke.png which shows a 15x1 array of black puffs set against a transparent background. Using this does nothing useful – the smoke is STILL white.


  2. I passed in setStartColor(ColorRGBA.Black) and setEndColor(ColorRGBA.Black) – this just makes the smoke plume disappear.



    What is going on here?



    tone
1 Like

it depends on the blend mode of the particle, the default is additive, which means black will be transparent, but you can set it to Alpha, so the alpha channel will be used.



material.getAdditionalRenderState().setBlendMode(BlendMode.Alpha);



or directly in the j3m file in the render state section

2 Likes

Many thanks!

I wonder if the default mode here is the most commonly used/desired one?

I’d think “alpha is alpha, black is black” a much more natural supposition.



tone

Alpha works differently than you might expect, try it. So the default one is the most commonly used yeah.

Thank you for this information. Very useful.

Just something to keep in mind when setting the material to something other than AlphaAdditive:

The particle depth order is not sorted and the particles are reused as they are freed up. This means that particles further away will sometimes render over particles that are closer and this becomes very noticeable when switching the blend mode without resorting the particles based on distance from camera.

And I was wondering for a while why the heck does it not end in black if the end color is black. I want a start in white and end in black too. Ok, I’ll see if this alpha mode does the trick.