Halftone Filter request

Testing 4.4.2 beta.

Right now, in the halftone filter, the intencity of tones are determined based on the layer’s color, not the opacity. Which means it works like this :

But I think it’s better to make it based on its opacity AND color(and leave the opacity control to the filter mask or filter layer), which means it should work like this :

The real screentone works like the latter.

1 Like

I’m not sure what you want but, have you tried changing the mode to alpha?
If you want both color and alpha, then you can apply 2 filter masks.

When you’re painting with a halftone filter mask for example, You can see what I mean by comparing these 2 cases :

  • Painting on a transparent layer with a halftone filter mask
  • Painting on a white 100% layer with a halftone filter mask

What we want is the latter. The filter should behave like that without filling the layer with white 100% first.

1 Like

You’re going to have to explain the issue better because I still don’t get what you want to achieve.
What do you mean by “painting with a halftone filter mask”?
Are you painting on the paint layer or in the mask of the filter?
When you say opacity, do you mean the alpha channel of the layer or the global opacity of the layer that you set with the slider?
What are the parameters you are using?

Let me see if I understood: you want to have a layer with the dots and the background removed (transparent). Is that correct?

Just in case that is what you want, try these 2 methods:

  1. Paint on a transparent layer that has a filter mask with the halftone filter and set the filter mode to alpha. You then select the screentone generator in the filter. You’ll have to set the contrast of the screentone to 50 to achieve the best results.

  2. Paint on a fully opaque white layer with black, as if it where a mask. Then add a halftone filter mask to it with the mode set to intensity. Then in the postprocessing tab of the filter set the foreground to the color you want and its opacity to 100,and the background opacity to 0.

A test video for the first method I did when I was developing the filter:

3 Likes

Made a video about the 2 cases I mentioned.

Using alpha mode didn’t help at all, it has very different looks :

1 Like

Even with the video, you still don’t explain what you exactly want to achieve.
Do you want to achieve the look of the “case 2” but with the white removed (transparent)? If so you can try the methods I explain earlier.
In the case of method 1, make sure you set the contrast of the screentone generator to 50 as I said (the “screen texture” used with the halftone filter must be smooth to achieve the best results and the default look of the screentone has hard edges).
If you want to achieve that effect but taking into account both the alpha channel and the colors, you can’t.
If you use method 1 you should vary the alpha of the brush to control the halftone effect, not the color, this allows you having different colors in the opaque area.
If you use method 2 the halftone effect is controlled by the intensity but you can only have a flat color in the opaque area (by setting the foreground color in the postprocessing tab of the filter).
I post a video for further clarification:

1 Like

Sorry for not checking your answers closely.

I think this (which is not avaliable atm) is what we want, yes.

So the method 1 is not an option to us.
Method 2 is closer to what we want, but when we gently erase the layer to control its screentone strength it just softens the opacity of the tones, not reducing the size of the particles.

Can you point out some use cases for that behavior?

I was gonna say the usage but I found out it can actually be done with the method 1 you mentioned.
I’m gonna stick with that for now. Thank you.

No, sorry. This comment was mistake. The affect we want is what you mentioned(taking into account both the alpha channel and the colors) and it doesn’t seem achievable in the current system. :frowning:

I’m not sure it’s just us, but when we adjusting strength of tones, as like we paint, we usually both use transparency created by eraser and opaque colors(And later we merge it to the bottom if we’re painting). So making the halftone based on both the layer’s opacity and color will make it far more simpler to control the tone strength. Right now we have to use blender brush and other workarounds to create tones that have gradiants, complex patterns, etc.

You will have to provide an actual sample of what you want to achieve, not just an example explaining the effect, and be clear about the exact end result as well as the workflow you want to achive it. Till now all that you have said is pretty vague.

1 Like

Source Image : https://i.imgur.com/8IbIqjX.png

Ask anything further if something’s still ‘vague’ for you. I don’t mind you keep asking(no sarcasm).

If I’m understanding that correctly, the problem arises from the fact, that the filter mask can only ‘see’ what’s on the layer the mask is on. It isn’t ‘aware’ of the background, which would be necessary to interpret transparent black as opaque grey, right? Because the look of transparent parts is determined by the background, obviously.

So in other words, you need the filter to ‘look’ at the image the same way as we humans do - which is what merging achieves. Have you tried using it as filter layer on-top instead of a mask? This way you can control what exactly the filter is ‘seeing’ (e.g. inside of a group) and you have real-time response.

Can you suggest any setup details(or even a .kra file)? We sure have tried filter layer(putting it inside a group with a layer that we paint values on), but the result was the same as we used it as a mask.

The only way we could get the right result using filter layer, is when we placed the filter layer outside the group. But that’s obviously because the filter layer includes the document background into the consideration since it’s outside the group.

If what you’re suggesting is that we have to put an additional white background inside the group, we think it’s slightly better but basically no different from starting with the white 100% layer with a halftone mask anyway.

Yes, that’s what I suggest. As I said, the filter needs to ‘see’ what you are seeing - in this case a white background. Sorry, if this doesn’t work for you - hope you can find a better solution.

1 Like

As @dreamkeeper said you could have a group with the layer you paint on and a white layer bellow inside. Then you apply a filter mask to the group with method 2. The end effect is the same as starting with a white layer and painting grays and applying the halftone with method 2. But the difference is in that it allows you to keep your workflow by mixing transparency and opaque colors and also lets you seeing the painting layer alone by hidding the white layer and the mask.
That is basically what the filter would have to do internally.

You can also try experimenting adding 2 halftone masks with the same screentone parameters but one with method 1 and the other with method 2.

Ok we finally settled with this one for now.

Group Layer
└ Filter Layer (Color to Alpha, to make the white background transparent, without being affected by visibility of the halftone filter)
└ Filter Layer (Halftone)
└ Paint Layer (Where we paint values)
└ Paint Layer (White background)

Although we think it’d be better to just implement the behavior(Taking both color, alpha into the consideration) into the halftone filter itself. Building all the group layer structure seems unnecessary.

Speaking of which, how do you use halftone filter? As for us, our needs come from making Japanese-style grayscale comics, which uses screentones very extensively in rendering. We thought it would be blessing when we first saw the dev’s were implementing this filter until the point we found out it’s still a bit tricky to use.

Why do you use a color to alpha filter? Can’t you just set the background opacity to 0 in the halftone filter?
Edit: I guess you are using the halftone in alpha mode so then it makes sense to use the color to alpha

To make grayscale illustrations with screentones I would just use a white layer and paint on it and then use method 2 or the basic parameters of the filter and then use multiply blending mode. It is just much easier from my point of view and the end effect is the same. I think you are overcomplicating the process a bit.