Edge-sensitive painting?
This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.
This is a read-only list on gimpusers.com so this discussion thread is read-only, too.
Edge-sensitive painting? | Richard Gitschlag | 07 Feb 18:09 |
Edge-sensitive painting? | Chris Mohler | 07 Feb 18:27 |
Edge-sensitive painting? | Richard Gitschlag | 08 Feb 18:18 |
Edge-sensitive painting? | M Tieleman | 09 Feb 11:39 |
Edge-sensitive painting?
An idea about brush/tool painting that's been on my head for awhile is an "edge-sensitive" painting option.
Say for example that I am digitally coloring an inked linework (black lines, white background). There are many ways to go about this: I can use Multiply blending, perform a Color-to-Alpha transition and make it a separate layer, or so on -- but when it comes down to the actual painting process, one thing I have to keep in mind is "bleeding" -- the art of consciously keeping my brush within the lines I'm trying to color, because if I get too close to a line then the tool will paint right through it. Which is rather duh, but it may create a need to clean up the "spills" later on, depending on what workflow I'm using.
(Yes, there is a way around that too, but I'll get to that later.)
So the idea here is an option so that when GIMP applies a painting operation, it essentially calculates a flood-fill / fuzzy-select (using a sensitivity threshold like existing tools e.g. fuzzy select already have) around the specified brush coordinates that is strictly bounded to the current brush's size/mask. The result is the area that will actually be affected by the brush (other restrictions like a selection mask can still be included). So in my example, as long as I keep my cursor located on the same side of a given line, the painting will "stop" when it hits the line and won't spill across onto the opposite side, and as a result I'd be able to paint broad areas a lot quicker and more conveniently than in the current form.
The main way this differs from using a normal fuzzy select or flood fill to detect edges is the treatment of unbounded regions. As a demonstration, create a new image (white BG) and with the Circle 03 brush, paint a wavy line through part of the image that doesn't touch the image edges. Next, just try to select an area that only affects one side of the line and doesn't cross. A fuzzy-select will grab everything on both sides of the line, because the white pixels it's operating on are an unbounded region across the entire image layer. (At this point the solution is to turn on the QuickMask and use painting tools, like the flood-fill, to separate each region -- it does work and with relatively little effort, but is not entirely straightforward.)
On the other hand, an edge-sensitive option would easily be able to determine one side of the line from another and paint accordingly because it isn't giving a fuzzy check across the entire image area, only the immediate vicinity around the current brush coordinates. For example, you could start painting with the Circle 19 brush and the painting would only affect the region on one side of the line at a time, as long as you keep your brush on the side in question. (Of course, when you get close to the end of that line, where even the local whitespace is unbounded, then it would start 'bleeding' through onto both sides of the line. But it would happen around that spot only.)
What do you guys think?
-- Stratadrake
strata_ranger@hotmail.com
--------------------
Numbers may not lie, but neither do they tell the whole truth.
Edge-sensitive painting?
On Tue, Feb 7, 2012 at 12:09 PM, Richard Gitschlag wrote:
Say for example that I am digitally coloring an inked linework (black lines, white background).
1. Set blending mode on ink layer to "multiply". 2. Create new layer with white fill and move it below *below* ink layer. 3. Paint on new layer.
Does that not work?
Chris
Edge-sensitive painting?
Date: Tue, 7 Feb 2012 12:27:47 -0600 Subject: Re: [Gimp-developer] Edge-sensitive painting? From: cr33dog@gmail.com
To: strata_ranger@hotmail.com
CC: gimp-developer-list@gnome.orgOn Tue, Feb 7, 2012 at 12:09 PM, Richard Gitschlag wrote:
Say for example that I am digitally coloring an inked linework (black lines, white background).
1. Set blending mode on ink layer to "multiply". 2. Create new layer with white fill and move it below *below* ink layer. 3. Paint on new layer.
Does that not work?
Chris
I'm already aware of how to use layer blending modes (etc.) for this purpose, thank you, but that's not what I was talking about.
One of the minor, but slightly annoying (and minor annoyances are always the worst) things about digitally inking underneath any outline layer is what happens when your brush strays very close to the lines you're inking inside of. If your brush size is large enough to pass completely through that line onto the other side, or you just hit a bad stroke somewhere, then naturally the brush will end up painting (or as I phrased it, "bleeding") onto both sides of the line, which you probably didn't want -- you have to take time cleaning it up later.
I've attached a simple JPG to supplement what I'm talking about - on the top half is your existing behavior where stray too close to a line and your brush will pass through underneath it and end up painting on both sides. On the bottom half is the suggested "edge-sensitive" behavior, where as long as you remain on the same side of a line, the brush area "stops" at that line and does not pass through.
For an analogue, compare a simple coloring book to those toy-section "fuzzy posters". One requires a reasonably steady hand and conscious effort to remain within the lines; the other enforces it for you.
To be fair, there are other ways to achieve the desired end result (selection masks, etc.); but I'm suggesting, could it be possible as a checkable option in the actual painting tools themselves?
-- Stratadrake
strata_ranger@hotmail.com
--------------------
Numbers may not lie, but neither do they tell the whole truth.
Edge-sensitive painting?
on the danger of not having anything constructive to add. It sounds
like a good proposal to me. This is a potential option which could
increase the speed of certain workflows, I know I'd make use of it.
More so, the proposal seems well researched and presented, the image
really wasn't necessary. To have the first reply be something slightly
dismissive seems unnecessary.
If it is possible to use this independently of layers (or node
"layers", as GEGL will hopefully bring someday), then you can add this
in the "paint in the new layer" step. Only you'd have a lot less
cleaning up to do, depending on how sloppy you are.
Best regards
2012/2/8 Richard Gitschlag :
Date: Tue, 7 Feb 2012 12:27:47 -0600 Subject: Re: [Gimp-developer] Edge-sensitive painting? From: cr33dog@gmail.com
To: strata_ranger@hotmail.com
CC: gimp-developer-list@gnome.orgOn Tue, Feb 7, 2012 at 12:09 PM, Richard Gitschlag wrote:
Say for example that I am digitally coloring an inked linework (black lines,
white background).1. Set blending mode on ink layer to "multiply". 2. Create new layer with white fill and move it below *below* ink layer. 3. Paint on new layer.
Does that not work?
Chris
I'm already aware of how to use layer blending modes (etc.) for this purpose, thank you, but that's not what I was talking about.
One of the minor, but slightly annoying (and minor annoyances are always the worst) things about digitally inking underneath any outline layer is what happens when your brush strays very close to the lines you're inking inside of.