so the Google Summer Of Code 2009 ended. I have final report for you.
My GSoC project brings 3 important features for Krita 2.1:
– infinite canvas
– OpenGL tool overlay
– 3D brush visualization
Infinite canvas sounds little funny, but basically it is implementation of the canvas from KOffice libraries where the mouse and tablet events and mainly strokes are not cut by the border of the canvas. So you can start the stroke outside of the canvas. You also can paint outside of the canvas, because internally the layers in Krita are infinite. To check this, paint something on the border and use move tool to move the layer. You see what is painted outside of the canvas.
OpenGL tool overlay. Overlay is e.g. line you see when you use line tool. It is the preview of the line, which is going to be painted. If you enable OpenGL canvas, the tool overlays will be painted with XOR operation using OpenGL. I plan to also add support for brush outlines to be painted with OpenGL as this is much faster way of painting then Qt.
3D brush visualization is something handy when you own a tablet and you don’t paint on screen, but on a device which is in front of you. We inspired this idea by Bill’s Baxter work. You don’t have to watch your hands, you can see the 3D brush on the screen. I wrote obj parser. So we create model with materials in Blender, export it as obj file and every paintop can have it’s own model. enkithan made two models so far, thank you for them, they are very nice. If you own one of those Intuos Tables from Wacom, you will find it useful. At least I found it very nice.
Every feature is in a stable state but needs some polishing.Infinite canvas needs better zooming support, especially corners are not handled nicely. Tool overlay is a complicated matter for now, I plan to write one bigger blog post about this as it is complicated issue. And 3D brush need shadows so that you can have a better feeling of the angles.
This GSoC means a lot to me and gave me opportunity to see more from the Krita UI part. You can except more commits from me on UI part of the Krita. But I will focus on brush engines this year as my thesis is waiting for me.
Thanks to my mentor, Sven. Thanks to fellow KOffice and Krita hackers for answering my questions. It was nice.