Tuesday, July 21, 2015

Playback and export

In the past few weeks we have been working on providing real-time preview playback for animations in Krita.

In order to deliver smooth playback, we cannot simply render the frames on the fly - that would be far too slow, especially once the number of layers starts to build up. Instead, we prerender the animation frames into a cache before playback.

I have been working on implementing the management of the playback cache. Krita now automatically prerenders the frames when it is idle, and when something changes, the affected frames are removed from the cache. To reduce memory consumption, any subsequent frames with the same content (ie. a hold) share the same cache data. The status of the cache can be seen at the top of the timeline.

In the meanwhile, Dmitry has implemented OpenGL playback support and fixed a number of bugs. He is also working on the LOD feature in the same branch.

I have also added a basic support for exporting animations into image sequences. From File -> Export animation you can choose a base file name to which Krita will add frame numbers. The frames can be exported in any image file format already supported by Krita.

In terms of central features, the animation support starting to get quite usable. However, there is still a lot of work ahead to improve stability, performance and usablility.