Translation graphs

So the last month and a half has been mainly just trying to figure some things out.


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 ribbon trails in TimelineFX at some point (hopefully sooner rather then later). The thing with ribbon trails is that the line needs to be continuous, and you also want the line segments to always face the camera. Without going into too much detail I do have much better line drawing now, and I also have most of the ground work done for ribbon trails too so watch out for that in a future version.


The other thing I wanted to do was have some kind of a keyframe editor so that you could control emitter and effect movement overtime (along with rotation). I went ahead and created a keyframe widget but after a lot of thinking about it for now I removed it and just added new graphs for translating effects and emitters overtime. I figured that the graphs are already basically keyframes and it seemed like I was just overcomplicating things with the keyframe editor. If I feel like it will definitely add something though then I’ll add it back in.

Either way though, you can now change the location of emitters and effect overtime with the new translation graphs. It’s a bit basic at the moment but I’ll be improving it overtime and will be adding paths/splines in the future for even more control.

Multiline graphs

Another thing worth mentioning is that for graphs that are related like Width, Height, Depth, Translation x/y etc they can now be edited using one graph making it easier to switch between the graphs. On these graphs there are new X/Y/Z buttons to switch between each graph, and you can also just hover over the line of the graph that you want to edit too to switch to it. The lines are colour coded and I actually just realised that the buttons in the toolbar should also get the same colours too so I’ll add that in the next update!

I re-arranged the attribute lists a little bit too so that it’s a bit better organised with all the extra graphs. And anything that’s related to transforming the emitters and effects now go into their own category.

Multiline graphs. Switch between lines either by hovering over the line or pressing the x/y/z button


Re-arranged attribute lists with new translation graphs


I will be doing under-the-hood stuff next as I really want to implement multi-threading to get things running as fast as possible and will have another optimisation parse too. This will be with a view to working towards being able to export effects so that they can be run in a compute shader. I already proved this is possible earlier on in the development but only while TimelineFX was 2d but I want to also research how to store that data, maybe by exporting sprite data for each frame that can be interpolated between and rendered. There’s also lots of possibilities with SIMD for optimisations too. Multi-threading will be first on the list though.

Here’s the full list of updates in this update:

* Added translation graphs for emitters and effects so that you can move and offset the effects/emitters overtime
* Some graphs that have x, y and z values (translation, roll/pitch/yaw, sizes) now let you edit all 3 at the same time on one graph.
* Organised the attributes lists for effects and emitters so it’s a bit clearer and added transform graphs into their own lists.
* Renamed Global Attributes to Effect Attributes
* Updated preset effects with the new emission types.
* Fixed a crash when preview tab is resized to 0.
* Fixed an issue when inserting a node onto the graph which has a lot of nodes.
* Right mouse camera look now only works when the preview window is hovered.
* Fixed an issue with looped emitters where particles were disappearing.
* Fixed a crash when cloning an emitter inside a folder.
* Add “Match value to first node” option to the graph node context menu.
* Added bounding box for icosphere emitters for drawing outlines.
* Outlines are no longer drawn when an emitter has no particles.
* Fixed a couple of crash bugs relating to restoring deleted effects.
* Fixed bug when exiting the program and clicking close window would leave it unresponsive.
* Improve style of some buttons that were missed in the last update.
* Shapes tab arranges shapes into rows more effectively now.