I haven’t actually checked out the clone brush engine yet, but I may look at it for ideas on how to implement a dirty brush. That being said, the smudge brush uses a temporary painting device to build the composite smudge, so I think it may just be a matter of holding on to that between strokes, and only clearing it if the user hits the “clean brush” button. That will be my first avenue of approach in implementing this, anyway.
I spent this weekend working on fixing the issue with smudge length affecting the color rate, because the more I think about it, the more I feel like that is unintended and/or unintuitive. I finally got it working tonight, and the solution was much easier than I thought. Instead of moving the smudge length check earlier, I have to keep it where it is, but then set the final opacity to whichever is higher: smudge length or color rate. I do need to do some more testing, to make sure everything still works the way it should otherwise, but so far everything seems to be working correctly.
The version that’s available right now in the nightlies can’t do that, but I added the option as part of adding it to the smudge engine, so I’m about to go in and make sure it works with the pixel engine as well. Basically, I added a pen pressure option for lightness strength, so you can set it to decrease with time or distance, or with pen pressure or tilt. Hopefully this should allow for making much more realistic impasto effect.
I know, I keep talking about all these new things, and haven’t submitted them yet. Hopefully really soon! I just need to do a bit of my own testing, and cleaning up the code a bit so I don’t annoy the main coders but I think I have every feature regarding Lightness overlays/impasto effect that I planned on implementing working the way I want now, so pretty soon I should have it submitted to a branch others can test!