Bug 459530 - Animated transform masks use low-quality bilinear interpolation when doing final rendering
Summary: Animated transform masks use low-quality bilinear interpolation when doing fi...
Status: CONFIRMED
Alias: None
Product: krita
Classification: Applications
Component: Tools/Transform (show other bugs)
Version: 5.1.1
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2022-09-22 14:29 UTC by ramskullsart
Modified: 2023-10-16 16:04 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
left is observed result, right is expected result (29.25 KB, image/png)
2022-09-22 14:29 UTC, ramskullsart
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ramskullsart 2022-09-22 14:29:18 UTC
Created attachment 152337 [details]
left is observed result, right is expected result

SUMMARY
Trying to use a transform mask on an image with nearest neighbor setting does not respect the setting when trying to use it with animation curves. It works with regular transform mask. While it takes some time to show the result it DOES render eventually. I've tried waiting quite a while for animated transform and it shows the desired result but as soon as I move to the next frame that disappears.

STEPS TO REPRODUCE
1. Add a transform mask to a layer
2. Set filter to "nearest neighbor"
3. Use animation curves to perform any transformation (skew, shear, rotate, scale, perspective)
4. Wait for the transform to render
5. Go to another frame
6. Go back to last frame

OBSERVED RESULT
Result comes out blurry

EXPECTED RESULT
Not blurry

SOFTWARE/OS VERSIONS
Windows: 11
Comment 1 wolthera 2023-01-16 14:48:57 UTC
Hi, thank you for your report.

I can confirm with the Krita Version: 5.2.0-prealpha (git 5c98a72) Appimage with Qt 5.15.7
Comment 2 tomtomtomreportingin 2023-04-30 15:55:30 UTC
By extension this bug also applies to clone layers with transform masks. It even occurs when simplying mirroring horizontally.
Comment 3 Dmitry Kazakov 2023-10-16 15:30:25 UTC
The problem is a bit more complicated than just "use nearest neighbour".

We have two ways of rendering the animation masks, one for quick on-the-fly rendering, and the other one is final high-quality render. Currently, animated transform masks can do high-quality rendering only for the "current frame" (and that high-quality render will use NN-settigns). But when rendering a transform mask into video file or cache, the mask will always use bilinear  method. That is kind of "not implemented" kind of thing.