Maniphest T101506

UI: Font: decreased readability because of less spacing
Closed, Resolved

Assigned To
Harley Acheson (harley)
Authored By
Raimund Klink (Raimund58)
Sep 30 2022, 11:17 PM
Tags
  • BF Blender
  • User Interface
Subscribers
Harley Acheson (harley)
Iliya Katueshenock (Moder)
Pratik Borhade (PratikPB2123)
Raimund Klink (Raimund58)
Serge Lyatin (SergeL)
TheRedWaxPolice (TheRedWaxPolice)

Description

System Information
Operating system: Windows-11-10.0.22000-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 517.48
Display resolution: 2560x1440

Blender Version
Broken: version: 3.4.0 Alpha, branch: master, commit date: 2022-09-29 23:32, hash: rB1c1dc5f8440d
Worked: Blender 3.3.0
Changed in rBe9bd6abde37c: BLF: New Font Stack for Better Language Coverage

Short description of error

Notice how the i of the Window button gets pressed into the W.
Or the i into the F of File.

Blender 3.3.0


Blender 3.4.0

Blender 3.3Blender 3.4

Exact steps for others to reproduce the error
Open Blender

Revisions and Commits

rB Blender
D16186

Related Objects

Mentioned In
T101753: 3.4 daily build's interface font is blurry
D16130: Fix for T101506: BLF Sub-pixel Positioning
Mentioned Here
rB694481095bac: Fix for T101506: BLF Disable Kerning in Main Font
rBe9bd6abde37c: BLF: New Font Stack for Better Language Coverage

Event Timeline

Raimund Klink (Raimund58) created this task.Sep 30 2022, 11:17 PM
Iliya Katueshenock (Moder) updated the task description.Sep 30 2022, 11:28 PM
Iliya Katueshenock (Moder) added a project: Core.
Hans Goudey (HooglyBoogly) edited projects, added User Interface; removed Core.Sep 30 2022, 11:29 PM
Raimund Klink (Raimund58) updated the task description.Sep 30 2022, 11:29 PM
Iliya Katueshenock (Moder) added a subscriber: Iliya Katueshenock (Moder).Sep 30 2022, 11:30 PM
This comment was removed by Iliya Katueshenock (Moder).
Raimund Klink (Raimund58) updated the task description.Sep 30 2022, 11:36 PM
TheRedWaxPolice (TheRedWaxPolice) added a subscriber: TheRedWaxPolice (TheRedWaxPolice).Sep 30 2022, 11:53 PM
Pratik Borhade (PratikPB2123) changed the task status from Needs Triage to Confirmed.Oct 1 2022, 4:47 AM
Pratik Borhade (PratikPB2123) added a subscriber: Pratik Borhade (PratikPB2123).
Pratik Borhade (PratikPB2123) triaged this task as High priority.Oct 1 2022, 5:28 AM
Pratik Borhade (PratikPB2123) added a subscriber: Harley Acheson (harley).

@Harley Acheson (harley) , could you look at it? Spacing reduced because of new fonts: rBe9bd6abde37c: BLF: New Font Stack for Better Language Coverage
I'll raise the priority as per the triaging guidelines. Feel free to revert it.

Pratik Borhade (PratikPB2123) updated the task description.Oct 1 2022, 5:29 AM
Harley Acheson (harley) claimed this task.Oct 1 2022, 6:14 AM

Will take a look

Harley Acheson (harley) added a comment.Oct 1 2022, 8:20 PM

First a TL;DR: Don't worry, I'll figure something out. But for those interested in all the juicy details...

The exact change you see is a difference in the old font (our super-old DejaVu Sans) and the latest version of DejaVu Sans. I suspect differences in the (legacy) kern table, but will have to investigate further.

The reasons for replacing the fonts. We changed from having a single font with 58,000 glyphs to using multiple fonts instead. This makes it easier to maintain, easier to add new languages. Gives us more glyphs to play with (probably over 100,000 now) that act as a fallback stack. So if you replace the main interface font with something new you still get all the characters in all the other fonts too. The change will also allow us to (later) do complex shaping for languages like Hebrew and Arabic, which require specific per-font information.

So one short-term solution while I am figuring this out is to just change the UI font to the old font. Everything will look like it did with no issues.

One complication is that I have been advocating for - and so far failing to get approval for - to get us more accurate glyph placement. Right now we just do it wrong. And that "wrong" also results in our letters looking too scrunched up. Of course fixing that after years of having text too tight will be users complaining of them looking too loose. LOL.

When the placement is done correctly then you would see no change in width between hinting set to "None" (also our default) and when set to "Slight". This is because slight hinting does not make any horizontal changes, only vertical. If you now switch between them you will see what I mean. And note that "Slight" does not scrunch up the "Wi" in the "Window" in the example captures above. So again, another short-term solution is to turn Hinting to "Slight".

I would like to not only fix the placement, but then to also turn on slight hinting by default.

Another complication is that I want to eventually replace our awkward DejaVu with something more modern. Possibly "Roboto", as it has a modern look, is actively maintained, and matches the Noto family by design. Although the difference in design would require us to increase the font size - As in at UI scale 1X you'd want Roboto at 12, rather than our current 11 to have the same width and visual weight. Looks best with slight hinting.

Another complication is that if we eventually move to full shaping (and therefore get things like ligatures), that would also gives a change in kerning too. Right now we are using the legacy, deprecated "kern" table for kerning. With full shaping that necessarily uses the modern "gpos" table instead. Most fonts have both, with kern just acting as an imprecise and incomplete fallback.

Anyway, will figure out something. But with the goal always being to move us forward to better typographical correctness.

Harley Acheson (harley) added a comment.Oct 1 2022, 10:27 PM

An example of the interface using Roboto (using 12 points at 1X scale), with proper placement and with Slight hinting:

Jesse Yurkovich (deadpin) added a subscriber: Serge Lyatin (SergeL).
Harley Acheson (harley) added a commit: rB694481095bac: Fix for T101506: BLF Disable Kerning in Main Font.Oct 17 2022, 5:37 PM
Harley Acheson (harley) closed this task as Resolved.Oct 17 2022, 5:46 PM

Resolved with {694481095bac}