More Optimising – SIMD Particle Updates. Alpha 20

More Optimising – SIMD Particle Updates. Alpha 20

Just uploaded a new Alpha version of the editor, which doesn’t have too many new features but does have a huge amount of new stuff going on under the hood. Fully implemented SIMD for updating particles I’ve spent a long time thinking about how I would go about doing this ever since taking on the rewrite of TimelineFX from the beginning. Being relatively new to C/C++ and SIMD in general, it has been a step-by-step process to get to this point. In the last blog post I made, I talked about how I made things multithreaded, and now I’ve added Read more


Optimisations and stability

A long overdue post, but rest assured, lots of work has been done over the last couple of months! Optimizations of the TimelineFX Library Firstly, for most of December, I did a big refactor of the TimelineFX Library, not just to optimize it but also to open the door for a lot more optimizations in the future. This had two main steps: I transitioned all the data for updating effects, emitters, and particles to “structs of arrays”. Without going into too much technical detail, this makes it a lot easier to parallelize updating the particles. The problem with storing all Read more


Translation graphs

So the last month and a half has been mainly just trying to figure some things out. Lines You’d think that lines would be quite easy to draw but they’re actually a lot more complicated to do properly then you might think. I wanted to update the line rendering in my renderer so that they were more efficient then they current were. They were just using gl lines basically where it’s a lot harder to manage the thickness of the line. The other reason that I wanted to spend some time on it is because I also want to implement Read more


Cylinders, icospheres and eff file converter for old files.

I just uploaded a new version of the TimelineFX Alpha with a few new features and more bug fixes. Here’s the main highlights: Cylinders I added 2 new emission types for 3d effects. The first is cylinder, which is exactly as you’d expects – allows you to spawn particles in a cylinder shape. Also worth pointing out that making the cylinder have 0 height you also have a ring emission type. Icospheres Icosphere is similar to an ellipse but with the icosphere you can spawn in a grid with up to 5 subdivisions to give a unique effect. An icosphere Read more


More stability and a refactor

I have uploaded a new alpha version which I hope brings a lot more stability. After the new 3d version I wanted to refactor a lot of the underlying library to try and optimise it more. I’ve spent a long time thinking about the best way to update particles and in the end I think I’ve come up with a reasonably decent way of doing it by having a 3 separate methods depending on the nature of the particle effects being updated. These 3 different scenarios are: Unordered particles For a lot of particle effects you’re not worried about the Read more


New Alpha Version Released with 3D effects!

Happy to announce that 3d effects are now possible in the latest alpha version of TimelineFX. Isometric mode is also supported which works well for exporting animations. Here’s a simple mushroom cloud explosion I put together and exported – this just wasn’t possible with only 2D effects: So let’s go over some of the new features: New effect options Obviously the option to actually make an effect 3d is there under effect options. When you create a new effect you now have a bunch of new 3d preset emitters to choose from. But also you can convert an existing 2d Read more


3D is coming…

For the last month and a half since the last blog post where I mentioned that I was strongly thinking about adding 3d particle effects to timelinefx – that’s exactly what I’ve been doing. It’s been a lot of fun mixed in with a lot of head scratching as I wrap my head around 3d math again (it’s been a while since I did any 3d stuff) but I’m mostly there with it. I still have a few things to iron out with it and would like to create an example library to go with the next alpha update but Read more


New Alpha, New Features – blend factor, playback speed and more!

A lot of work has been done since the last update in March and most of it wasn’t directly related to the editor it was more with the TimelineFX library (available here on github). I really wanted a better solution for how effects are updated and drawn. The way that I was doing it was that you have a particle manager, and to this you add all effects, which then spawn all the particles and these are all updated by the particle manager. The problem with this is that all the particles are basically mashed together in the order that Read more


Simplex Noise in latest alpha! Plus Particle Compute Shader progress

It’s been a very busy few weeks working on 2 big new things for TimelineFX – a compute shader and a new motion randomness alorithm that uses Simplex Noise.   Particle Compute Shader I really wanted to get this out of my system as I always wanted to see if I could make TimelineFX effects run in a compute shader for maximum speed and free up the CPU. This would be a big plus for anyone wanting to incorperate the TimelineFX library into their games and other projects. It took a lot of head scratching as to how I’d make Read more


New Alpha version with library importer

I just uploaded a new Alpha version with some more bug fixes plus a new importer to import effects from other effect libraries. This will only import effects from the current alpha version (not the old version eff files) but I may well add an importer for the old version as well at some point. The new importer should be a lot more useable then the old version. You can now drag effects and emitters individually or you can import all if you wish. Plus you can also drag over shapes individually as well if needed.   Full list of Read more