What would it take to add an option for the Pencil tool to support brush transparency?
I /really, really /badly want this feature! Badly enough that I will
have to figure out how to hack the source myself unless can tell me a
way to accomplish it.
Basically, the problem is this:
The brush tool uses sub-pixel sampling to get an anti-aliased effect
when you paint. I don't want this, because I'm working at pixel-level
scale and I need exact pixel painting with anti-aliasing.
The pencil tool would be the natural solution, but the pencil tool does
not support transparency for RGB brushes! I'm surprised because it
seems like such a very simple feature. :(
Without this, there's no way to do per-pixel precise painting that
supports transparency. Is this something that would be possible to add
in the current developer release? Or if nobody has time, could someone
please tell me where I'd have to look in the code to add support for it?
Fyi, no other paint program out there supports this entirely. I checked
Krita, Paint Shop Pro, and Photoshop. Paint Shop Pro technically does
do it, but the features of the "Picture Tube" are absolutely horrible in
their limitations. GIMP should be able to do it *easily* if the pencil
tool could just be modified with an option to support transparency from
the source brush image.
I really desperately need to be able to do this exact technique for a
game I'm developing that requires a tremendous amount of by-hand,
per-pixel terrain and vegetation painting. I would be so greatly
appreciative if anyone can tell me how to make this technique possible!
/Thank you in advance!/
Re: What would it take to add an option for the Pencil tool to support brush transparency?
On Tue, 2019-05-21 at 20:57 -0500, James Houx via gimp-developer-list
> The pencil tool would be the natural solution, but the pencil tool
> not support transparency for RGB brushes! I'm surprised because it
> seems like such a very simple feature. :(
I’m not sure what you mean. It certainly has support for transparency.
otherwise, brush/pencil strokes could never miss pixels. See e.g. the
green pepper brush or the confetti brush.
Maybe you could explain in more detail what you mean by supporting
Liam (slave ankh)
Liam Quin - web slave for https://www.fromoldbooks.org/ with fabulous vintage art and fascinating texts to read.
Click here to have the slave beaten.
On 5/21/19 9:57 PM, James Houx via gimp-developer-list wrote:
> I /really, really /badly want this feature!?? Badly enough that I will
> have to figure out how to hack the source myself unless can tell me a
> way to accomplish it.
> Basically, the problem is this:
> The brush tool uses sub-pixel sampling to get an anti-aliased effect
> when you paint.?? I don't want this, because I'm working at pixel-level
> scale and I need exact pixel painting with anti-aliasing.
> The pencil tool would be the natural solution, but the pencil tool does
> not support transparency for RGB brushes!?? I'm surprised because it
> seems like such a very simple feature. :(
Right, the pencil tool lumps together both binary transparency and
pixel-grid alignment, which are really two independent things. It has
come up before, and I agree that being able to control these separately
would be useful. It's one of those simple features where generality and
consistency get in the way: Should we add this to the pencil tool, or
the paintbrush tool? What about the other paint tools, which already
suffer from an annoying lack of consistency? Should we just merge the
pencil and paintbrush tools? Or, if this separation is convenient, why
not generalize this and allow creating new tools from arbitrary tool
presets, etc.? It's a slippery slope :) Ultimately, though, I agree
that it's a useful feature.
> Without this, there's no way to do per-pixel precise painting that
> supports transparency.
It is possible, although it's a bit clunky: You need to set up a
1px-by-1px image grid ("Image -> Configure Grid..."), and enable
"View -> Snap to Grid" (and possibly also "View -> Show Grid"). This
would snap the pointer to the pixel grid in all tools, including the
paintbrush. Now, here's the clunky part: the grid offset should depend
on the brush size -- if the brush size is even, you need a grid offset
of 0px (grid along pixel edges), while if the brush size is odd, you
need an offset of 0.5px (grid along pixel centers). If the brush isn't
square, you might need different offsets in different dimensions.