
upright=乗数を から に1.70わずかに変更するだけ1.75で、大きく異なるレンダリング異常が発生します。これは、整数フォントサイズの使用による丸め誤差が原因であると考えられます。フォントのラスタライズとは、ベクター形式のテキスト記述( TrueTypeフォントなどのスケーラブルフォントに含まれるもの)をラスター形式またはビットマップ形式に 変換するプロセスです。このプロセスでは、画面上のテキストをより滑らかで読みやすくするために、アンチエイリアシング処理が行われることがよくあります。また、特定の文字サイズに合わせてレンダリングの詳細を最適化するためにフォントデータに埋め込まれた情報であるヒンティング処理が含まれる場合もあります。
ラスタライズの最も単純な形式は、アンチエイリアシングを一切使用しない単純な線描画です。マイクロソフトの用語では、これは二値(より一般的には「白黒」)レンダリングと呼ばれ、グリフを描画するために中間色(グレー)は使用されません。(実際には、任意の 2 色を前景と背景として使用できます。)[ 1 ]この形式のレンダリングは、エイリアスまたは「ギザギザ」とも呼ばれます。[ 2 ]これは、計算負荷が最も少ないという意味で、最も高速なレンダリング方法です。ただし、レンダリングされたグリフが小さなサイズで解像度を失い、認識しにくくなる可能性があるという欠点があります。そのため、多くのフォントデータファイル(TrueType など)には、ラスタライザーがグリフの特に問題のある領域のピクセルをどこにレンダリングするかを決定するのに役立つヒント、または特定のピクセルサイズで使用するために手動で調整されたビットマップのセットが含まれています。[ 1 ]典型的な例として、Windows 95より前のすべてのバージョンのMicrosoft Windows ( Windows 3.1など) は、このタイプの組み込みラスタライザーのみを提供していました。[ 2 ]
より複雑なアプローチとしては、コンピュータグラフィックスの標準的なアンチエイリアシング技術を用いる方法があります。これは、文字の端にある各ピクセルについて、文字がそのピクセルのどの部分を占めているかを判断し、そのピクセルをその不透明度で描画すると考えることができます。例えば、白(FFFFFF)の背景に黒(000000)の文字を描画する場合、ピクセルが理想的には半分塗りつぶされるべき場合(例えば、角から角への対角線で)、そのピクセルは50%グレー(BCBCBC)で描画されます。この手順を単純に適用しすぎると、文字がぼやけてしまうことがあります。例えば、文字に1ピクセル幅であるべき垂直線が含まれているにもかかわらず、それがちょうど2つのピクセルの間にある場合、画面上では2ピクセル幅のグレーの線として表示されます。このぼやけは、鮮明さを犠牲にして正確さを犠牲にしています。しかし、現代のシステムでは、多くの場合、線が整数ピクセル座標内に収まるように強制されるため、文字はより鮮明に見えますが、印刷された紙に描かれた場合よりも線がわずかに太くなったり細くなったりします。

ほとんどのコンピュータディスプレイは、複数のサブピクセル(通常は赤、緑、青それぞれに1つずつ、これらを組み合わせて全色を表現)で構成されたピクセルを持っています。フラットパネルディスプレイなどでは、ピクセル全体を使用するのではなく、サブピクセル解像度でレンダリングすることで、画面の実効解像度を高めることが可能です。これは一般にサブピクセルレンダリングと呼ばれています。サブピクセルレンダリングの独自実装の1つとして、マイクロソフトのClearTypeがあります。
現代のオペレーティングシステムでは、ラスタライズ処理は通常、多くのアプリケーションで共通して使用される共有ライブラリによって提供されます。このような共有ライブラリは、オペレーティングシステムやデスクトップ環境に組み込まれている場合もあれば、後から追加される場合もあります。原則として、各アプリケーションは異なるフォントラスタライズライブラリを使用できますが、実際にはほとんどのシステムが単一のライブラリに標準化しようとしています。
Microsoft Windows はWindows XP以降、サブピクセル レンダリングをサポートしています。一方、ClearType を使用しない標準の Microsoft ラスタライザーは、タイプ デザイナーの明瞭さの意図を優先する例です。タイプ デザイナーのヒンティングの意図に従ってテキストを整数座標位置に強制し、タイプデザイナーのガスプ テーブルの意図に従って特定のサイズの特定のフォントにアンチエイリアスを適用しないことで、画面上では読みやすくなりますが、印刷すると多少異なって見える場合があります。これは、Windows 7 および Windows Vista プラットフォーム アップデートで Direct2D/DirectWrite が出荷されたことで変更され、1/16 ピクセル サイズまでのサブピクセル テキスト配置が可能になりました。[ 3 ]
Mac OS XのQuartz は、サブピクセル位置決めを使用しているのが特徴です。グリフを正確なピクセル位置に強制するのではなく、サブピクセル レンダリングを含むさまざまなアンチエイリアシング技術[ 4 ]を使用して、文字や行をタイプ デザイナーの意図したヒントから遠ざかり、元のアウトラインに近づけるように配置します。その結果、画面上の表示は印刷出力と非常によく似ていますが、小さなポイント サイズでは読みにくい場合があります。Quartz レンダラーは、macOS Mojave 以降、サブピクセル レンダリングを削除し、代わりにグレースケール アンチエイリアシングのみに依存するようになりました。この変更は HiDPI の「Retina」スクリーンでは許容範囲内ですが、外部モニター上のテキストは読みにくくなります。[ 5 ]
他のほとんどのシステムはFreeTypeライブラリを使用しており、設定によってはMicrosoftとAppleの実装の中間に位置する可能性があります。FreeTypeはヒンティングとアンチエイリアシングをサポートし、オプションでサブピクセルレンダリングと位置決めを実行します。FreeTypeは、カラーバランスの取れたサブピクセルレンダリングやガンマ補正など、どちらの実装にも存在しない機能も提供します。[ 6 ]
アプリケーションによっては、独自のフォントレンダリングソリューションを持ち込む場合もあります。Skia Graphics Engine ( Google Chromeで使用されている) のようなグラフィックスフレームワークは、独自のフォントレンダラーを使用することがあります。ビデオゲームやその他の 3D アプリケーションでは、さまざまなSDFベースのレンダラーや「Slug」などの、より高速な GPU ベースのレンダラーが必要になる場合もあります。[ 7 ]