Alpha 29 released, library improvements and paths for 2d

Another new alpha version has been uploaded with more new features and improvements. Here’s an overview of some of them:

 

2d Paths

Paths are now available for 2d as well as 3d. They have pretty much exactly the same features as the 3d paths with the obvious exception that there’s no z axis for some of the settings. Otherwise the same generators are there plus I added a basic selection of preset paths under the Add Emitter menu.

2d paths in timelinefx

There’s still a lot I want to do to improve the interface for creating paths such as direct node manipulation and will be giving that a lot more thought as to how I will go about doing it as it’s not so straightforward especially in 3d where you have that 3rd axis. I will probably start with 2d first and hopefully that will give me some better insights as to how I can apply them in 3d.

 

New Emission Type: Other Emitter

As mentioned in the previous news post I talked about an alternative way to do sub effects without actually using sub effects which can be more processor intensive. The trouble with sub effects is that for every particle that has a sub effects you’re create extra effects and emitters for everyone of those particles so that’s a whole bunch of extra processing that needs to be done. To get around that you can use this new emission type where you can tell the emitter to use the locations of all the particles from another emitter and use those locations to as the spawn location for this emitter. What this means is that if want all the particles in one emitter to leave a trail you only need one extra emitter to do it, rather then a separate sub effect for every particle. This is much much faster.

Other emitter emission type in TimelineFX

Just simply select the source emitter you want for the spawn locations of the paired emitter.

There is also the option to “Multiply the spawn rate by particles in source emitter” which basically does exactly what it says. This means that the number of particles spawned will stay consistent no matter how many in the source emitter there are. Although sub effects can still be used and will have their uses still, this will be the recommended way to do sub effects in the future.

Other Emitter effect example in TimelineFX

Lots of particles that leave trails will be a lot more efficient when using this emission type.

 

TimelineFX Library Improvements

Again as mentioned in the last post, I wanted to improve the library so that instead of the particle manager producing one big long list of sprites that you can then render I have now added the option to group sprites by effect. So with this option in effect, each effect that exists in the effect now maintains its own list of sprites so that you can now draw sprites by effect rather then one big list. This adds a lot more flexibility in the future and already allows you to order the effects by camera depth so that effects can be drawn as a whole in depth order if desired. This means that some effects’ sprites can be unordered whilst other effects’ sprites can be in depth order. Before if one effect in the particle manager had to be kept in depth order then every effects had to (because of the sprites being kept in a single list). Now with separate lists of sprites for each effect the ordering of sprites in effects can be switched on and off as you need per effect.

For a more clearer example, let’s say you had an effect that was entirely using additive blending and therefore could be unordered, but then you had another effect who’s sprites did need to be kept in depth order. Well now the only the sprites in the depth ordered effect need to be kept sorted and if the other effect is behind or in front the particle manager will only need to sort the two effects so it becomes easier to draw the effects as a whole in the correct order.

 

Shader Compiling

I also did a little bit of work on the renderer I use for the editor so that it can now compile shaders. This sets the way for introducing the ability to create custom pixel shaders from with TimelineFX. This will also be a great way for me to experiment with pixels shaders as the one that is currently used is very basic. I have a few ideas to improve the drawing of particles on a per pixel basis. Of course the TimelineFX library is render agnostic so any shaders you create you would need to carry over to your own renderer but that should be too difficult.

 

Cleaner Install on Windows

I’ve done some IncBinning which means that I can now store some of the extra assets for TimelineFX Editor such as images, shaders and config files within the exe itself. So when you unzip the latest version the folder you unpack will contain much less files so it looks a lot cleaner. Once you’ve run TimelineFX some of the files will be unpacked outside such as a shader cache and some config files.

 

Next

I feel like I’m getting a lot closer to a beta release soon where I’ll start to push TimelineFX out there more. So the final things I want to add before then are:

  • New pixel shader options and creating new shaders within the editor.
  • Ribbon trails.
  • A more complete set of example effects with full Author notes to act as tutorials as to how to create a range of effects.
  • More intuitive path creation and manipulation.
  • Make the library fully C API compatible.
  • More optimisations for the library.

Alpha 30 will be next though, and hopefully that will have the pixel shader and ribbons in there, so until then!

Here’s a list of all the changes in this release:

* Paths now also available with 2d effects.
* New Emission Type: Other Emitter. This allows you to set the spawn location of particles to the location of particles in another emitter.
* Fixed a bug with line traversal and looping.
* Simple randomness works better with line traversal now.
* Fixed a bug when importing effects and the wrong shape being applied.
* Preview window is now opened when clicking an effect in the import effects tab.
* Fixed a bug on the sprite data tab when compression is used with sub effects.
* Motion randomness variables are now properly reset to 0 for new particles. Before they were taking values from the previous particles resulting in much more randomness then desired.
* Updated Dear ImGui to the latest version.
* Added new documentation for new paired emitters emission types.
* Some improvements to insights and added insights for other emitter emission type.
* Have now IncBinned some files for a cleaner install on windows. This means that a lot of the files in the zip including shaders and images are now stored in the exe.
* Compressing sprite data now greatly simplified: Just simply set the number of frames you want the animation to compress to and it will do it.