First step for GSoC: the Painterly Color Mixer.
Emanuele Tamponi
emanuele at valinor.it
Fri Jun 1 20:51:17 CEST 2007
Finally I decided to start it ;) I'd like to know what do you think about
my first thought, so I can start coding.
First step: the Color Mixer.
The mixer takes the footprint of the paintop. Then the
footprint is mixed with the underlying colors. Optionally, the
result is automatically set as the current color of the
paintop.
To do this, we need to know the nature of the current paintop:
we expect that a pencil mixes colors in a different way
respect a brush; and this just because the brush is wetter
than the pencil.
But current brush and pencil paintops (to make an example)
don't have any painterly properties, so the mixer doesn't know
about their wetness. On the other hand, there will be some
paintops that do have painterly properties.
My idea is: for all non-painterly paintops, the mixer guesses
about their wetness using their ids. For painterly paintops,
the mixer takes their properties using KisPaintOpSettings.
First issue: we don't want to respect exactly current paintop
settings: for example, it's better if we use a different size
for the paintop, and, if the current dab of the paintop is a
pattern, we will ignore it (we mix colors, not peppers! ;) and
take a default color instead.
Another issue: the bidirectional paintop that I'm going to
implement will interfere with the behavior of the mixer. In my
opinion, his "bidirectionality" (excuse me for the term :) has
to be deactivated while you use it in the mixer.
To do all this, my idea is:
- While on the mixer, we will change the paintop settings to
those set on the paintop (for now, this is just the size of
the paintop, but perhaps we will come up to other settings
to change).
- Draw the paintop footprint in a white dab (this way, the
bidirectional paintop can't do its stuff).
- Guess the paintop wetness using its id.
- Mix up the color on the dab with the color in the mixer
canvas.
- Record the changes in wetness that occurs in the canvas.
- As user option, automatically set the resulting color as the
current paintop color.
To clear a frequent equivocal: the mixer doesn't need a
painterly overlay! The overlay provides a lot of extra,
interactive functions that in a mixer (that just need to *mix*
colors) are going to be not useful, if not even not wanted.
Ideas? Questions? Problems?
I hope to have something working for Monday or Tuesday, but
obviously I'd like to know if you agree with this behavior.
Thanks in advance,
Emanuele
More information about the kimageshop
mailing list