

Below, pink arrows point to the "blobs" that come from exterior overlaps in a variable font. These are due to antialiasing "doubling up" on two contours. Basically, a pixel of 50% black + another pixel of 50% black = a pixel of 100% black.

--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-dis...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/googlefonts-discuss/d3d1e52a-d6f4-4a56-996e-668c7e55b066%40googlegroups.com.
Wei: "I'm still not sure what exactly external overlap means?"

These issues seem to be resolved by removing overlap along smooth edges.

This happens in other fonts, too. Here is Markazi Text. The problem is worse on "normal" pixel density screens, around 144 DPI.

Here's a look at the construction of the /M in Markazi Text, showing problematic and fine overlapping. The "Exterior Corner" overlap is something that may or may not cause problems, but which I mostly try to avoid and/or minimize.

Here's a diagram trying to show a very zoomed-in look at why antialiased pixels "double up" like this, to cause those rendering issues.
![]()
Adam: "that's a bad rendering bug that needs to be reported to the makers of the renderer."
I agree, though I'm not sure how long this sort of rendering issue will take to resolve. I think I was told once that it may significantly slow down text rendering if contours have to be interpreted before rendering, and because speed is so highly prioritized by text renderers, that may mean that this issue goes unresolved for some time. So, for now, I'm avoiding exterior overlaps / edge overlaps.
I'm on macOS, so that's where I see this issue. It is less noticeable in large text and on high-DPI screens, but for body text and especially on normal-DPI screens, these edge blobs really distort text shaping and are very distracting. A big frustration for me is that Apple's bug reporting system is very closed, so I have no idea whether they know about this issue or not.
Let me know if I can explain anything better, here!