microsoft / terminal

The new Windows Terminal and the original Windows console host, all in the same place!
MIT License
95.32k stars 8.29k forks source link

Add a setting to control vertical antialiasing #5093

Open ygohko opened 4 years ago

ygohko commented 4 years ago

Description of the new feature/enhancement

Adding a setting to control DirectWrite's rendering mode is wanted to improve font rendering quality when using a font that does not have hinting information.

I prefer NasuM font (https://osdn.net/users/itouhiro/pf/font/files/) because it has high readability. But it does not have hinting information and it causes decrasing rendering quality in Windows Terminal.

Below is a screenshot that taken from Windows Terminal with using NasuM font: Terminal

Below is a screenshot that taken from WSL window with using NasuM font: WSL

Please focus on horizontal lines in the Kanji character "見".

Windows's legacy command window uses GDI and now it supports vertical antialiasing (I believe), but Windows Terminal does not support that.

If Windows Terminal has a setting to enable vertical antialiasing, it can improve font rendering quality at this situation.

Proposed technical implementation details (optional)

Firefox has a hidden setting to control DirectWrite's rendering mode (https://support.mozilla.org/en-US/questions/1115938). When gfx.font_rendering.cleartype_params.rendering_mode is 5 (Natural Symmetric), Firefox enables vertical antialiasing.

If Windows Terminal has similar one, it would solve this problem.

DHowett-MSFT commented 4 years ago

I'm repurposing this one for vertical antialiasing specifically, because we have an epic for all rendering flags at #1790. I've linked them and put this one on the backlog.

Thanks!

zadjii-msft commented 4 years ago

A bunch of relevant links:

ygohko commented 3 years ago

I found information (https://qiita.com/AumyF/items/4f625ebd47603efaac7a Japanese, please read with mechanical translation) that may relates this issue. This issue may not be caused by font that does not have hinting information, but may be caused by font that have low quality hinting information.

I had made a dehinted font and set it for Windows Terminal, then rendering quality was improved as below: After

Now my problem was solved, but I think this issue (vertical antialiasing setting) may be still useful for other people who can not modify fonts.

Thanks!