Upcoming: Use a sprite to emit particles?!?


Hey Everyone!

I've got some news of incoming stuff. I have implemented a displacement map and a color map

What does this mean, you ask? Well, it means that you can change the particle properties by the color values of a texture. For example, you can generate Perlin Noise with Dragonite's Macaw, use a sprite or a surface. 

With a displacement map you can alter the position of the generated particle, the speed, the life, the orientation, the size and the color.

The main difference is that you can drastically alter the feeling of the effect. For instance, I think this application of Perlin Noise makes for a very organic watery effect.

https://fxtwitter.com/DelfosAnimation/status/1673851634294706178

This is because neighbouring particles have similar speed, direction and coloration, unifying the movement.

With a color map, you can take the color of an image and apply it to the corresponding particle , and also change the size of it in relation to the opacity.

Yes, this means you can now make a Mario with particles

https://fxtwitter.com/DelfosAnimation/status/1673785852567093254

But in more serious uses, this means you can make WAY more complex color profiles for your effects (basically you can color individual particles!). Notice that this coloring doesn't evolve over the life of the particle, it is only set at birth.

If you care about the technical details, Pulse coordinates are normalized (go from 0 to 1) which means I can straight up look up a texture coordinate and apply the color/luma value as a percentage. This is also 100% compatible with Macaw, which means you can generate Perlin textures at runtime to use with your emitters. These textures are slow to be generated so I wouldn't recommend it to do it all the time, probably best at load time.

You can also load a sprite or a surface with a function I provide also based on Macaw to keep compatibility.

Both Macaw and the sprite method generate a fixed buffer, which means you need to garbage collect it when you are done using it.

And of course, the bigger the image you use as a map, the more memory you will need, so keep that in mind.

Luckily, the result of EVERYTHING done by pulse can be saved as a cache and read out by pulse, so you can destroy that buffer/surface/whatever right after creating your emitter. This means, of course, that you will be limited to cache'd particles instead of dynamically generating them.

This is not fully released yet, but you can download a beta version from the github repo. Some things might be a bit broken.
Hope you make some cool stuff with this!

Get Pulse - Particle magic for GM

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.