Visitar URL original
Zen Dots: lowercase "b" and "d" render incorrectly in Blender (overlapping components) · Issue #11140 · google/fonts · GitHub
Skip to content

Zen Dots: lowercase "b" and "d" render incorrectly in Blender (overlapping components) #11140

Open

Description

@mressl-itba

Font: Zen Dots Regular (ofl/zendots/ZenDots-Regular.ttf)

Description

When Zen Dots is used in Blender, the lowercase "b" and "d" show fill artifacts in the viewport. After converting the text to a mesh, the stem goes missing (for example, "d" turns into a "c"). Every other glyph renders correctly.

Note: the upstream repository (googlefonts/zen-dots) is archived, so this needs to be fixed directly in the google/fonts binary.

Cause

Both glyphs are composites of the same two components, and the components overlap:

Glyph Components Transform
b l + bellycomb none
d l + bellycomb scale (−1, 1), offset (744, 0)

The stem (l) crosses the bowl (bellycomb), and their bottom edges coincide along y = 0. Renderers that don't fill with the nonzero winding rule can't resolve this. Blender's text fill is one of them, and it doesn't support crossing contours (see blender#42071). No other glyph in the font has overlapping components.

Separately, the mirrored components in d give its decomposed contours reversed (counter-clockwise outer) winding, because FreeType doesn't correct direction for mirrored sub-glyphs (see freetype#883).

Suggested fix

Make b and d simple glyphs with the overlaps removed and correct (clockwise) outer winding. With fontTools, running removeOverlaps on the font and then reversing the contours of d produces clean outlines for both glyphs (one outer contour plus one counter). I've confirmed this fixes the problem in Blender.

Steps to reproduce

  1. In Blender, add a Text object and load ZenDots-Regular.ttf as its font.
  2. Type b or d. Fill artifacts appear.
  3. Run Object → Convert → Mesh. The stem is missing.

Activity

  1. changed the title [-]Zen Dots: lowercase “d” renders incorrectly in Blender (mirrored overlapping components)[/-] [+]Zen Dots: lowercase "b" and "d" render incorrectly in Blender (overlapping components)[/+] on Oct 20, 2026
  2. mressl-itba commented on Oct 20, 2026

    @mressl-itba
    Author

    Attached is a patched build for reference (fontTools removeOverlaps plus contour reversal of d). It fixes both glyphs in Blender. Hinting was not preserved on the modified glyphs.

    ZenDots-Regular-fixed.zip

  3. davelab6 commented on Oct 22, 2026

    @davelab6
    Member

    Thanks @mressl-itba !! @emmamarichal will work on onboarding this but I expect there may be a delay into 1Q1

  4. added this to the 2027 Q1 milestone on Oct 28, 2026
  5. emmamarichal commented on Oct 28, 2026

    @emmamarichal
    Collaborator

    @davelab6, this is a small fix, can you unarchive the repo? thanks! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions