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