Painterly stuff

Boudewijn Rempt boud at valdyas.org
Sun Dec 3 23:14:16 CET 2006


I've started some experimental coding for really supporting painterly stuff 
all over Krita today. I'll explain my thoughts and the code here:

* Putting the painterly features (wetness, stickyness etc) in separate 
colorspaces didn't work for Krita 1.x. One reason was that it turned out to 
be unpleasant to have different layers for different materials (it's 
unpleasant in Corel Painter, too), another reason is that it's plainly not 
flexible. Ideally, you'd be able to drag & drop the wetness of one layer onto 
another layer, same as with selections and masks (1).

* One of the coolest ideas in Tunde Cockshott's thesis was the ability 
to "make the mona lisa wet again" -- which suggests that it's a good idea to 
be able to apply painterly features -- I'm calling them "overlays" for 
now  -- to any layer.

* I've identified a number of these features: wetness, height, adsorbency, 
viscosity, mixability -- not an exhaustive list, the exhaustive list is 
already in trunk.

* But I'm hard-coding them for now: a set of predefined classes each 
representing one painterly feature, implemented as a KisMask -- that is, a 
single-channel paint device associated with a layer (2)

* these masks are not obligatory for a layer, one or more may be present. 

* Like selections, the values of these masks will be made available through 
the iterators. Tools, filters and paintops can use them at will to do stuff. 
This makes is much easier to code procedural brushes, weird painterly 
paintops and so on.

* because krita's core now knows about things like wetness, permanently 
running filters to dry out paint will be trivial to implement.

* These masks will be rendered at the appropriate moment (same holds for alpha 
masks (bcoppen's masks ported to stand on their own) and selections and so 
on), using tailor made rendering code. Some will be painted after scaling the 
projection (selections), some will be painted during merging (alpha and filter
masks) and so on: for every painterly feature we need to discover a 
visualisation method (bump-mapping for height and paint volume, for instance)

* realistic colorspaces, such as Kubelka-Munk will still be a separate 
colorspace, of course. But colorspaces will be for color and painterly 
overlays for physics.

Er... I may have forgotten something, but for now, this is what I intend to 
code for Krita 2.0.

----
1) I know we haven't d&d or ccp'ing of masks and selections right now, but 
I've been working on that. And it should be possible to select a selections 
and set it to "global" -- working on that, too. I should be making a mockup 
of the user interface, but my wrests won't stand it right now.


2) Bart's masks will be another subclass of KisMask, as are already 
selections, and I've already done a bit of work towards filter masks and 
channel masks.
-- 
Boudewijn Rempt 
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20061203/ee36f082/attachment.pgp 


More information about the kimageshop mailing list