macOS 10.14 Mojaveではフォントのサブピクセル・アンチエイリアス処理が変更されカラーフリンジがなくなるため、非RetinaディスプレイのMacに大きく影響。

スポンサーリンク

 macOS 10.14 Mojaveではフォントのサブピクセル・アンチエイリアスが廃止され、カラーフリンジ・エフェクトがなくなっています。詳細は以下から。


 AppleはWWDC 2018のセッション209″What’s New in Cocoa for macOS”の中で発表したとおり、日本時間2018年09月25日にリリースしたmacOS 10.14 Mojaveでフォントのアンチエイリアス処理(以下、AA)を変更しています。

Font antialiasing refinements

クリックで拡大

There’s one last change I want to talk about, which is a change we’ve made to font antialiasing. If you go ahead and look at this screen comparison, I have macOS 10.13 on the left, and macOS 10.14 on the right. And, if you look at the text in this window, it’s basically identical. But, if we zoom in, all the way to a 48X scale factor, we can see that macOS 10.13 is using this color-fringing effect for its font rendering. In macOS 10.14, we no longer use that effect.

What’s New in Cocoa for macOSより

スポンサーリンク

比較

 変更されたAA処理はmacOS 10.13 High Sierraまで利用されていたカラーフリンジ・エフェクト(color-fringing effect)で、実際にHigh SierraとMojaveでスクリーンショットを撮影し、プレビューなどで拡大するとMojaveではHigh Sierraまでフォントの周りのサブピクセルに表示されていたカラーフリンジが無くなっているのがわかると思います。

AA処理の変更の意味は?

 Appleがサブピクセル・AA処理を変更したことに対し、長年にわたりAppKitの開発に関わっていた元AppleのソフトウェアエンジニアのPeter AmmonさんはHackerNewsの中で、サブピクセルAAは実装がとても面倒(不快)で、画面にレンダリングする前にフォントの前後のカラーと不自然なGPUアクセレーションが必要になるため、Appleはサブピクセル-AAのカラーフリンジ・エフェクトを廃止したのではないかとコメントし、

macOS 10.14 Mojaveで廃止されたカラーフリンジ

フォントのサブピクセル-AA処理の変更はシステム全体で行われているため、テキストエディタだけでなく、Finderやメニューなどにも適用されており、上の画像はFinderのメニューを約30倍に拡大したものですが、その違いがはっきりと分かると思います。

他のエンジニアの方も、現在発売されているほぼ全てのMacがRetina化されている今、フォントのサブピクセルにカラーフリンジが無くなってもほぼ遜色ないとコメントしていますが、これはRetinaディスプレイの話で、非Retina(x1 displays)の場合、サブピクセル-AA処理のテキストがよく見えることは否定しないとPeterさんもコメントしているので、非RetinaディスプレイのMacを利用されている方はMojaveにアップグレードされると違和感を持つかもしれません。

ex-MacOS SWE here. Subpixel antialiasing is obnoxious to implement.It requires threading physical pixel geometry up through multiple graphics layers, geometry which is screen-dependent (think multi-monitor). It multiplies your glyph caches: glyph * subpixel offset. Nevertheless there’s no denying that subpixel-AA text looks better on 1x displays. Everyone notices when it’s not working, and macOS will look worse without it (on 1x displays).

ex-MacOS SWE here. Subpixel antialiasing is obnoxious to implement. It requires

おまけ

 また、一部サイトではサブピクセル-AAを復活させるdefaultsコマンドとしてAppleFontSmoothingが紹介されていますが、これはフォントの標準アンチエイリアス(regular anti-aliasing)処理を拡大するだけで、サブピクセル-AAのカラーフリンジを復活させるものではありません。

defaults -currentHost write -globalDomain AppleFontSmoothing -int 1

Update: As some eagle-eyed readers have noticed, the below trick doesn’t technically enable subpixel antialiasing. However, this does increase font weight, which makes fonts look less jagged and all-around better on the MacBook Air and other low-resolution displays.

How to Fix Blurry Fonts on macOS Mojave (With Subpixel Antialiasing)

コメント

  1. 匿名 より:

    retinaだし外付けは4Kの@2xだけど、ハイシエラからのアプデ後やけにフォントが細いのはこれが原因か
    綺麗とかどうでもいいとまでは言わんが、見にくくするのはやめてほしいわ