When hatching, we often want to follow the contours of a form so that the hatching suggests the form as well as the light and shadow. We often do this by drawing regularly spaced, curving lines. Keeping this regular spacing makes this a somewhat slow process, as rapidly drawing in the lines leads to irregularity.
Computers are good at maintaining regularity, and if you are just drawing a patching of straight lines, I believe the hatching engine has you covered. But it doesn’t help if you want to draw curved lines. Yet I think that this could still be quite feasible. A potential approach is described in this paper, but the basic idea would be to create lines from two main components:
- An intensity value. Zero intensity = no lines; higher intensity = thicker lines
- A direction value. Lines will be drawn heading in the direction at their location
This couldn’t work perfectly in all situations: if a user creates a discontinuous direction field then I don’t think there’s a way to properly define what direction the lines would go, and there are probably other pitfalls I haven’t thought of. If the direction field is divergent, the regular spacing would not be preserved; this would have to be dealt with somehow.
A lot could be simplified by having multiple independently operating filters/layers/however this would be implemented.
Below is a visualisation of what I mean shading a ball, with arrows indicating the direction component and dashed regions indicating the intensity component.
I can code, but realistically, not knowing anything of Krita’s codebase, am unlikely to be able to meaningfully contribute. You never know though, so comment on how this might be implemented would be interesting to me. It seems to me like the most convenient approach would be as a layer style?
