Post-Jam Feedback II: Performance

Wick’s performance, at least on my machine, is rather slow.

Ways to increase performance

  • I know that Wick used two.js for its rendering a very long time ago. Would it be possible to switch back? Unlike current renderer paper.js, two.js has a WebGL mode, which is much faster than HTML5 Canvas which is currently used. This would really increase performance.
  • Alternatively, turn vector objects into fast WebGL meshes after they are drawn. [Example; source] Keep the vector data in a cache so the user can easily edit it with path cursor, etc. But behind the scenes, convert it to a WebGL mesh after the user creates it. Because a mesh will look polygonal if you zoom in too much, consider letting the user set the Resolution (or “Quality”) of each object in an easy way. (For example, Low, Medium, High, or “Auto”—using different quality versions of the mesh depending on the object’s scaleX and scaleY)
    • Converting vectors to meshes may be slow, so exported Wick projects could do this on load. Note that this would increase loading time
    • This would also allow you to do shape tweens (yay!) because vector meshes can be molded and mangled at high speed
  • Use pixi.js again — but this time with measures to increase rendering quality (like smartly resampling objects when they are scaled up) and use it all the time as opposed to only when playing project
  • Merge same-colored brush strokes automatically. I tend to have a lot of these due to my art style and having these combined into a smaller number of objects would help performance.

What do you all think about these ideas?

3 Likes