Jump to content

Disabling antialiasing can offset pixels in text under rare circumstances


Recommended Posts

If the antialiasing is set to Off and a text is being drawn at around Y=640, some pixels are occasionally shifted away from their corresponding locations, seemingly at random. This happens most commonly on the bottom part of the text, and is generally more common at the left side of the image (closer to X=0).
The offset can be repeated by placing the same text at the exact same location, even in different colors. It seemingly only happens with some strings but not others, but anything ending with "tability" seems to cause it quite often. It also seems to be font-dependent, as I could reproduce it with Arial and Typostuck (a downloaded font), but not Calibri.

OS: Windows 10 21H1 (64-bit), build 19043.1889
CPU: Intel Core i5-10400F
GPU: NVIDIA GeForce RTX 2060 SUPER, driver version 512.15
PDN version: 4.3.12 (Free)

Steps to reproduce:
1. Create a new 640+ pixels tall image. (The issue was first noticed at a 400×687 image, but could be reproduced on an 800×1374 image and an 800×800 image.)
2. Select the Text tool, switch the font to Arial and disable antialiasing.
3. Write a string such as "Instability" (or any string ending with "tability"). The string should take one line and be around Y=640. Press Esc to draw the text.
4. Repeat step 3 for 5-20 times until a location that causes the issue to appear is found.

Workaround if someone else has the same issue: I don't know if this fixes the issue for all strings that could cause it, but adding a line break at the end of the string (after the "y" in "tability") seems to fix this specific case.

Attached is a visual demonstration of the issue.

pixel glitch demo.png

  • Like 1
  • Upvote 2
Link to comment
Share on other sites

Reproduces 100% of the time under these exact conditions:
- Arial size 12 font, no antialiasing
- Image size is 400x687
- Mark the pixel at location 120,636
- Write the word "Instability" and position it so the top pixel of the first letter I is at position 120,636
- Press escape to confirm the text. It should change incorrectly

Seems this position also affects some other font sizes. The excess space below or to the right can be any size.

  • Upvote 2
Link to comment
Share on other sites

This seems to be a bug in Direct2D/DirectWrite with respect to clipping. Caching the renderer's output seems to fix this, although it'll use more memory.

  • Upvote 2

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

  • 6 months later...

Does this repro for anyone using the latest version (5.0.2) ? The fix for this in the "4.3.13" branch didn't get integrated into the 5.0 code, but I also can't seem to reproduce it anymore

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...