Pixel perfect line setting for pixel art brushes

Hi @AzureDusk10

There is already a pixel perfect feature request (and many posts discussing it).

Please read this feature request and let us know if we can merge your comment into this thread (we try to keep only one thread per request so the developers don’t have to go looking around for all the relevant comments).

1 Like

Hi @sooz

Of course, please move this post to wherever it should live! Sorry if I posted in the wrong place.

Thank you!

1 Like

any news on this feature?

Already approved and merged, it will be available in Krita 5.3.0 possibly.

12 Likes

praying it shows up on nightly builds

Thats awesome!
I just discovered this. I was finishing a plugin for pixel art that covered this, because I missed it literally for years.

Part of my plugin had an integrated pixel art editor that is/was meant cover different pixel art features that Krita lacks, one of them the pixel perfect brush:

demo3

(and more things, like good shapes, better lines, etc).

demo4 circles

demo lines

bezier

It grabs the view from the document (so you are able to see what your “krita drawing” looks like (in the gifs my document was empty)) and then after you make your changes in the pixel art editor, you can submit them to a new layer to krita and continue drawing over it in krita.

It’s done, but I wanted to work on the UI to make it look better. Even though is a bit discouraging that I just finished it after working a lot on it when is going to be officially supported (perfect timing :sweat_smile:).

But I guess I’ll finish it anyway

14 Likes

next step would be navigating up an down from palette colors in indexed palette with 256 colours

and create indexed gradients inside the palette selecting the initial color and final color in the palette. i remember grafx and deluxepaint using it iirw.

good job in pixel perfect

2 Likes

I think the plugin is very good because it allows you to work in a more direct way with the pixel art, that is to say the window with everything you need, I like it, it is a good proposal.

1 Like

I finished it. I was adding a cool UI, imitating Krita controls (pan, zoom, etc) in the editor, solving bugs, optimizing, etc. Also wanted to use it as an excuse for making a Pixel Art illustration and to fully test it, adding missing things, etc.

To be honest, I love it. Krita has always been my fav Pixel Art editor, but missing some important things like Pixel Perfect has always been a bit meh. But now definitely is my fav Pixel Art editor, over any other pixel art editor.

I’ll upload it when I finish some things and the readme :slight_smile:

I can’t upload a video here because it says is too big, but here is in “movement”:
https://x.com/SuzukaKDev/status/1875323646262309229

12 Likes

I ended adding a tool that correctly displays pixel fonts
(And even non pixel fonts!)

Video: x.com

7 Likes

That looks very nice suzuka, is there a place to download it yet or are you still finishing it?

:slight_smile: Hello @Marmalade_Plan3t and welcome to the forum!

If you want to reach someone, let someone know that you would like to talk to a user, you simply have to add the @-sign in front of that user’s name, as I did it with your name ↑ :wink:

@Suzuka, are you willing to share your cool tool with the community? I guess you’ll make a lot of users very happy!

And since I already named @Suzuka in this posting, there is no need for you to do it too.

Michelist

@Marmalade_Plan3t @Michelist

Hello friends, I was continuining adding new things. But I just uploaded it! :slight_smile:

Here is the topic! Hope you find it useful, I worked a lot on it and Im proud of it :slight_smile:

5 Likes

Hi, I’m testing this feature in the krita-x64-5.3.0-prealpha-57685f11 build, and I wanted to give a bit of feedback.

Location of the feature

First of all, it is not very convenient to have this in the Tool Options docker, and the reason is that you need to toggle it on and off each time you need to change your brush, luckily there is the keyboard shortcut to set the pixel smoothing and then disable it, but I think that this option would be more useful to have on a brush level instead, and be able to toggle with a shortcut at the same time if needed, but that is fine overall, it works, so I thank the developer who implemented this!

Inconsistency and other issues

Currently the biggest issue is that the smoothing works quite inconsistently. In some cases it still produces not smooth parts in your lines. I know that a lot of effort has been put into it already, but I hope that this can be improved further. Here is the screenshot:

Secondly, and this one is probably not as important compared to the issue above, but when you have pixel smoothing, it doesn’t work when you have a brush with a non 1px size. For example I have a brush which has a base size of 8px, but it also has a variable size linked to the pressure sensor, and in this case the size is always 8px, no matter the pressure. So in this case what should happen ideally is the following: the pressure still should work, even with the pixel smoothing being enabled, but which won’t affect the smoothness anymore, but if taking it further (if possible) it should produce smooth lines when the line is as thin as 1px.

Below is the screenshot from Pixelorama (open source pixel art editor), where on the left the pixel perfect line is disabled and on the right it is enabled. It seems that it works correctly, but it also seems that it tries to make the thicker lines smooth as well, and it produces some not as smooth edges for such thick lines, so I’m not sure if that can be avoided or not, because if not it is probably be reasonable to just make the pressure sensor work without using the pixel smoothness feature if the base size is more than 1px, but it needs to be decided by the developers of what is better, of course.

Afterwords

Anyway, thanks for the hard work, I think that Krita already works relatively well for pixel art, but a few more features and improvements will make it really good.

I mentioned Pixelorama, and you may ask why I don’t use it instead, but unfortunately it is still quite new and it doesn’t have all of those cool features such as Recorder, perspective tools (crucial for me) and it doesn’t have a brush editor/creator, so you can’t create your own presets, all configurations for brushes are global and you need to change it every time for a different behavior, it doesn’t have patterns feature, which makes it really hard to create dithering fast, so for me at least it is unusable at the moment. It also nice that you can use only one program and one workflow for different art styles and supporting one development team rather than spreading your donations across multiple programs that mainly specialize in digital painting, a large part of which I believe is pixel art. (Edit, I was mistaken, there is Recorder and Perspective dockers)

1 Like

Could you try how pixel-perfect works in Drawpile in comparison? You can probably just use the browser version, no need to install it just for testing this one thing. I’m also one of the sponsored developers on Krita, so if my implementation in Drawpile works better, I could potentially port it over without too much work.

The “Pixel 3” and “Pixel Art” brushes have it turned on by default, the setting as well as a pixel art input setting that disables all smoothing and input processing is available in this menu here. And evidently it’s a setting attached to brushes, not the freehand tool

4 Likes

I tried the pixel brush and it works really well, here is the screenshot, I personally don’t notice any weird behavior:

I also tried the thicker brush with the pressure sensor for the size + Pixel Perfect option, it works too, it makes it smooth when it is 1px, and it somewhat works with thicker lines, but of course it can potentially cause some weird behavior as it is probably not optimized for this of course. Here is the screenshot for the “Brush” brush, I disabled the pressure sensor for opacity and enabled Pixel Perfect option:

So, it is quite interesting. I also like that you can toggle the Pixel Perfect feature for each individual brush instead of having it globally, very cool! So it definitely works well for 1px brush, which is the primary usage anyway, but it can potentially work for the thicker brushes with pressure sensor for size too, but it needs more testing I guess. Thanks!

How would you expect it to work for bigger brushes? The people who explained it to me that I implemented it for only wanted it for 1 pixel brushes like you say, so I’ve put off adding different behavior for larger sizes until someone can explain that (in a way that’s possible to actually implement.)

Yes I have no idea, as it is quite a variable behavior so to speak, it is probably too dynamic, at least for me to think of how it should work perfectly, haha. So yeah, the primary case is 1px, so if that can work as in Drawpile then it will be perfect I think.

Alright, thanks! It’s not something that is possible to put into Krita 5.3.0, since that is already in feature freeze, but I’ll see about porting it in a future version.

3 Likes

Thank you!