https://bugs.kde.org/show_bug.cgi?id=466583
Bug ID: 466583 Summary: Artifacts when shapes are not at integer positions Classification: Applications Product: krita Version: 5.1.5 Platform: Other OS: All Status: REPORTED Severity: minor Priority: NOR Component: Tools/Vector Assignee: krita-bugs-n...@kde.org Reporter: k...@frost.kiwi Target Milestone: --- Created attachment 156818 --> https://bugs.kde.org/attachment.cgi?id=156818&action=edit Screenshot showing stray alpha pixels being rastarized from a shape not at integer position The positional values for shapes are always floats. However, if these floats are not rounded to .0, then they introduce blurring and artifacts when being rasterized. Blurring is expected, since rasterizing a vector border at .5 positions is (somewhat) expected to provide a non-sharp result, however, artifacts breaking the silhouette of a shape are not. The solution to remove these artifacts becomes a strange ritual of having to press [Up Arrow] [Down Arrow] or manually entering an integer. This is explained in in at 6:49 in this video: https://www.youtube.com/watch?v=X1Aui6o_V2A&t=409s which is part of a PullRequest of another project. ( https://github.com/Immediate-Mode-UI/Nuklear/pull/548 ) This happens in different situation, but the quickest one to see is the example as shown in the above video. A rectangle with a round joint stroke (not the layer style stroke, but the vector border stroke), has stray pixels breaking the silhouette of the rectangle. To add insult to injury this happens only on one side, so the stray pixels also break symmetry. See attached image. Additionally, to more clearly communicate to the user what is actually going on, the float decimal place should be displayed, if the the position float is not a round integer. This is a separate issue and discussed here: https://bugs.kde.org/show_bug.cgi?id=466582 Whilst it may appear pixel peeping, this has severe consequences for certain use-cases. Like the use-case of interface skin design as shown in the above PR. Such stray pixels become very obvious, once those elements are used at 1:1 pixel mapped scales on a screen to output a user interface. Like dead pixels, they are invisible on a in the grand scheme of a painting of poster design, but on a very clean GUI, they stick out. All of this is is easily solved by positioning shapes at integer positions with integer sizes, so this issue is of minor severity. Steps to Reproduce: 1. Create a rectangle shape with a rounded stroke border 2. Position this rectangle with your mouse at a non-integer position 3. See the silhouette being broken by stray pixels at the border - fill intersection. Expected behavior: Outer silhouette of a rounded rectangle not being disturbed by stray pixels SOFTWARE/OS VERSIONS Krita version 5.1.5 -- You are receiving this mail because: You are watching all bug changes.