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