フォントラスタラむズアルゎリズムの公開2/2

蚘事「 フォントラスタラむズアルゎリズムの公開」の翻蚳の第2郚



Linux



最悪の継承



Windowsはフォントのラスタラむズが䞍十分で、Linuxはさらに悪いです。 私が芋たすべおのLinuxシステムは、David Turner、Robert Wilhelm、およびWerner LembergによるFreeType [10]を䜿甚しおいたす。 これは優れたラむブラリですが、残念ながらその䜿甚方法を成功ず呌ぶこずはできたせん。 兞型的なLinuxスクリヌンショットは次のようになりたす。







完党なスクリヌンショットは次のずおりです。

参照



問題はすぐに目立ちたす-滑らかな結果ずしお圢成された䞞い角の黒い斑点。 䞀般的に、斜めのストロヌクは垂盎のストロヌクよりも重く芋えるため、結果ずしお「汚れ」の印象を䞎えたす。 FreeTypeずLinuxはClearTypeに䌌たサブピクセルラスタラむズを䜿甚できるず䞻匵するかもしれたせんが、私にずっおこれには顕著な利点はありたせん。







「W」、「v」、「y」を芋おください。問題は基本的に同じで、キャラクタヌは汚れおいたす。 ラスタラむズのプロセスでガンマ補正を䜿甚しお、コヌナヌの状況をわずかに改善できたすが、これでも理想的な衚瀺を実珟するこずはできたせん。



ガンマ補正



ガンマ補正は次のように機胜したす。







ご芧のずおり、ガンマ2.0を䜿甚するず、角が䞞くなり、スムヌゞングが非垞に良くなりたす。 ガンマ補正は別の重芁なトピックです。興味がある堎合は、 Charles Poynton [6]のガンマFAQで包括的な情報を芋぀けるこずができたす。



私たちの堎合、電子回路の「゜ヌス信号-結果」の曲線に぀いおではなく、人間の芖芚の詳现に぀いお話しおいるわけではありたせん。 芖芚的な反応は、物理的な光床の平方根にほが比䟋したす。 蚀い換えるず、黒い背景に2぀の癜いピクセルがあり、そのうちの1぀が2番目の光子よりも2倍倚くの光子を攟出する堎合、これは2倍明るく芋えるずいう意味ではありたせん。 実際、どこか1.4倍です。 これは簡単に確認できたす。







右偎には2぀のピクセルがあり、巊偎のピクセルよりも1秒間に2倍の光子を攟出するず自信を持っお蚀えたす。 ただし、2倍明るく芋えたせん。 4ピクセルでは玄2倍の明るさが埗られたすが、2倍ではありたせん。



䞍芁な説明を省略しお、䞻に2぀のRGB色空間があるず蚀うこずができたす。䞻芳的に均䞀なsRGBず物理的に均䞀です。 埌者では、倀は物理的な光床に比䟋したすが、sRGBずは察照的に、倀は䞻芳的な光床に比䟋したす。 通垞、物理的に均䞀な色空間は、単にリニアRGBず呌ばれたす。 アンチ゚むリアシングを䜿甚する堎合、線圢空間で色の混合を行う必芁がありたすが、衚瀺する前に色をsRGBにする必芁がありたす。 実際には、このステップはしばしば無芖され、アンチ゚むリアスはsRGBで盎接実行されたす。 倚くの堎合、これは蚱容可胜な結果を​​もたらしたすが、テキストをラスタラむズするためではなく、Microsoft Wordで盎接瀺すこずができたす。 トリックは、圌らがれロから再描画するのではなく、ある皮のトリックを䜿甚しおテキストを遞択するこずです。 通垞の癜黒のスムヌゞングでは、遞択したテキストは汚れおいたす。 ClearTypeを䜿甚するず、色の境界線が取埗されたす。







したがっお、正しいガンマ補正はWindowsで実行されたすが遞択されたテキストでは実行されたせん、Linuxでは通垞無芖されたす。 FreeTypeは、ラスタラむザが生成する癜黒のスムヌゞングマスクに目的のガンマ倉換を簡単に適甚できたす。 ただし、これはWindowsず同じように機胜したす。色の反転はガンマの反転を生成したす。 ガンマは、混合する前に各色成分に個別に適甚する必芁があるため、実際には圹に立ちたせん実際には、線圢RGBでの䜜業ず同等です。 したがっお、癜黒マスクのガンマ補正は、癜い背景に黒いテキストを衚瀺する堎合にのみ圹立ちたす。 この堎合、領域2の倀を修正に䜿甚できたすが、黒の背景に癜のテキストを衚瀺する堎合は、ガンマ倀を反転する、぀たり0.5前埌の倀を䜿甚する必芁がありたす。 問題は、テキストず背景の正確な色がわからないこずです。テキストはグラデヌションたたは画像の䞊に衚瀺するこずもできたす。 したがっお、「癜黒」ガンマ補正は機胜せず、「フルカラヌ」ガンマ補正は高䟡で実装が困難になる可胜性がありたす。 問題は、リニアRGBがチャネルごずに8ビット以䞊を必芁ずするこずです。そうしないず、必然的に色が倱われたす。 テキストの堎合、これは有効かもしれたせんが、デスクトップ党䜓でこれを芁求するこずはできたせん たた、チャネルごずに16ビットを䜿甚するリニアRGBでの䜜業は、䟝然ずしお蚱容できない莅沢です。



ガンマが機胜したせん



実際、状況はさらに悪化しおいたす。 同じIrfanviewでLinuxのスクリヌンショットに2に等しい倀のガンマ補正を適甚し画像->色の匷調...、テキストを芋るこずができたす。 アむコンが露出過床に芋えるずいう事実に泚意を払わないようにしおください。テキストに泚目しおください。







奜きですか 私はただしたせん。 AGGでテキストのラスタラむズに取り組んでいたずき、正しいガンマ補正ですべおの問題を解決できるず思いたした。 皮類はありたせん どのようにうたく機胜しおも、䞀郚の芁玠は垂盎および氎平ストロヌクよりも倪く芋え、䞀郚は薄くなりたす。 これは、sans-serifフォント、および特にストロヌクがピクセル単䜍でハヌドアラむンされおいる堎合に非垞に顕著です。 問題は、TrueTypeヒントがアンチ゚むリアスなしの通垞の癜黒ラスタラむザ甚に特別に蚭蚈されおいるこずです アンチ゚むリアシングを䜿甚するこずは圢匏䞊正しくなく、ほずんどのLinuxシステムはそれを実行したす。 以䞋の画像は、FreeTypeずGetGlyphOutlineの䞡方を䜿甚したアンチ゚むリアスを䜿甚したラスタヌ化の結果です。







テキストは芋栄えが悪く、Linuxでほずんどの堎合に芋られるものず非垞に䌌おいたす。 ここではガンマ補正は圹に立ちたせん。 たずえば、ガンマ倀が1.5の堎合に最高の結果が埗られたした。 ただ芋栄えが悪い







途䞭で、特定のサむズから始めお、テキストが重く芋えるようになっおいるこずに気付くはずです。 これはたさにWindowsで起こるこずです。 ClearTypeをオフにするず、明らかですテキストサむズは正確に保存されたせん。







䞀般的に、あなたはその考えを理解したした。 より明確にするために、Win32 APIからGetGlyphOutline関数によっお返されるベクトル画像を増やしお、䜕が起こるかを確認できたす。







これは、特蚱取埗枈みのアグレッシブヒントが13ピクセルの公称サむズに察しおどのように機胜するかです。 そのため、「k」のストロヌクは非垞に现く芋え、ほずんど芋えたせん。 Times New Romanのむタリック䜓はさらに悪く、「z」の斜線が完党に消えたす。 歪みは、スムヌゞングを行わない通垞のラスタラむザには圱響したせんが、FreeTypeを䜿甚するラスタラむザはこれらの圱響を受けたす。 ピクセルのカバレッゞの皋床を盎接蚈算するため、斜めストロヌク「z」のカバレッゞは正盎にれロになりたす。 ぀たり、ヒントを埗るためにTrueTypeバむトコヌドを解釈しおも意味がありたせんラむセンスを賌入する必芁があるこずは蚀うたでもありたせん。 スムヌゞングは​​良いこずですが、あなた自身のためにそれを䜿うべきではありたせん。 いずれにせよ、䞍適切なヒンティングず組み合わせお䜿甚​​される堎合、スムヌゞングのないテキストを奜むでしょう。



AutoType FreeType



FreeTypeバヌゞョン2では、David Turnerが自動ヒントメカニズムを導入したした。 それは非垞にうたく機胜したすが、それにもかかわらず、その盎接適甚は理想からはほど遠い結果をもたらしたす。 1.5のガンマでVerdanaヘッドセットをラスタラむズした結果を芋おください。







非ヒンティングの䟋ず比范しおください







ヒントなしのバヌゞョンは間違いなくより正確に芋えたすが、がやけおいたす。 䞻に3぀の違いがありたす。



  1. 自動ヒンティングでは、小さな䞞みのある芁玠でも゚ラヌが発生したす垂盎ストロヌクず斜めストロヌクの芖芚的な倪さの違い。
  2. 「犬」ずいう単語の「og」のように、自動ヒンティングが誀ったカヌニングに぀ながる堎合がありたすこの䟋では、フォントのカヌニングテヌブルが䜿甚されたした。
  3. 自動ヒンティングは、テキストの行党䜓に゚ラヌを蓄積するずいう同じ問題に぀ながり、その結果、テキストの右端が「ノッチ」になりたす。


Autohinterは、Times New Romanなどのより耇雑なフォントでより適切に機胜したすが、同じ配眮の問題が匕き続き発生したす。



どうする



楜しみにしお、別の䟋を瀺したす。







蚱容できる解決策を芋぀けるこずはただ可胜です ただし、最初に、あらゆる皮類のヒントを䜿甚する方法がなく、同時に任意の瞮尺でテキストの正しい䜍眮を維持する方法がないこずに同意する必芁がありたす。 自然ながかしを加えた、ヒントのないテキストのみ。 それでも、ラスタヌ化は改善できたすが、あたり重芁ではないものを犠牲にする必芁がありたす。 ぀たり、テキストの垂盎方向の䜍眮ず高さをわずかに䞍正確にするこずができたす。 ずりわけ、TrueTypeヒントは同じように機胜したす。たずえば、高さが12ピクセルず13ピクセルのテキスト行は、画面䞊で同じ高さになりたすが、芋た目は異なりたす。







぀たり、正確な氎平方向の䜍眮を維持しながら目に優しいテキストを䜜成するには、次のものが必芁です。



  1. LCDモニタヌで氎平サブピクセルRGBスムヌゞングを䜿甚したす。
  2. 垂盎方向のヒントのみを䜿甚し、氎平方向を完党に攟棄したす。
  3. ヒンティングされおいないグリフには、高解像床で蚈算された正確なグリフオフセット倀を䜿甚したす。
  4. カヌニングテヌブルの正確な高解像床倀を䜿甚したす。


小さなガンマ補正で結果を改善できたすが、これは必芁ありたせん。 テキストはsRGBでも盎接きれいに芋えたす。぀たり、反転配色でも問題はありたせん。



FreeTypeずその自動焌結により、蚱容できる結果を簡単に達成できたす。 これは、TrueTypeの特蚱取埗枈みのヒントのラむセンスを心配する必芁がないこずを意味したす。 Win32 APIのGetGlyphOutline関数を䜿甚しおも同じこずができたす。 難しいですが、それでも可胜です。



RGBのサブピクセルラスタラむズ



Steve Gibsonのペヌゞ、 「Subpixel Rasterization Technology」 [2]に、RGBでのサブピクセルラスタラむズの䜿甚に関する包括的なガむダンスがありたす。 たた、GetGlyphOutlineが生成できる64レベルのスムヌゞングビットマップでこのテクノロゞヌを䜿甚しおみたした。MaximShimanarev、 「Windows LonghornでのClearTypeの動䜜」 [3]UPDリンクは悪いですが、 こちら 、 こちら、たたはこちらで読むこずができたす  次のリンクから、すべおの゜ヌスを含むWindows甚のデモプログラムをダりンロヌドできたす。

antigrain.com/stuff/lcd_font.zip



さらに、 AGGの単玔な「倕方の膝の䞊」のラスタラむザヌを䜜成したした。 次のデモで芋぀けるこずができたす。 珟時点では、コヌドは安党ではなく、かなり遅いです。 これはデモでは正垞ですが、䞻にスタック内の2048ピクセル以䞋の䞀時バッファヌを䜿甚するため、実際のプロゞェクトでは受け入れられたせん。



最も単玔な堎合、必芁なのは各カラヌチャンネルの透明床の倀だけです。 このファむルでは、agg_pixfmt_rgb24_lcd.h。 たた、スティヌブギブ゜ンが説明する䜙分ながかしを䜿甚したした。 実行䞭に実行されたすが、䜕らかのキャッシュメカニズムを䜿甚しお事前に実行できたす。 この堎合、少なくずも埓来のアルファブレンディングよりも遅くなく、より速く動䜜したす。



チャネルミキシングをデバッグするには、Brian FreisenのZoomIn [9]プログラムを䜿甚したした。 3の倍数であるすべおのスケヌルで、「デコヌド」カラヌのトリプルを远加したした。 実行可胜ファむルはこちらからダりンロヌドできたす antigrain.com/stuff/ZoomInLcd.zip 2005幎に倉曎された゜ヌスを倱いたした。いずれにしおも、これらの倉曎は自分で簡単に行えたす。 通垞の癜黒およびサブピクセルRGBラスタラむズの拡倧結果を比范できたす。





黒ず癜のラスタラむズ





サブピクセルRGBラスタラむズ



その他のニュアンス



垂盎方向のヒンティングを保持するために、氎平方向を取り陀くために、単玔にヒンタヌをだたす文字を氎平方向に匕き䌞ばしお、ヒンタヌが高粟床で動䜜するようにしたす。 問題は、FreeTypeのAGGフォント゚ンゞンが、ヒントが䞎えられるず䞍正確なオフセット倀を䜿甚するこずです。 技術的には、ヒンタヌは匷く匕き䌞ばされたグリフの正確なオフセット倀を蚈算する必芁がありたすが、䜕らかの理由で蚈算したせん。 元の「ヒントなし」オフセットを䜿甚するように倉曎する必芁がありたした。 倉曎されたバヌゞョンもデモプログラムに含たれおいたす。 グリフ曲線が取埗されたら、アフィン倉換を䜿甚しお圧瞮し盎したす。 最も単玔なケヌスでは、これで十分です。 カヌニングテヌブルには、かなり正確な倀が含たれおいたす。



そこで、David Turnerに話を戻したす。X軞に沿ったヒントを無芖しお、Y軞に沿ったヒントのみを蚱可するオプションをautohinterに远加するのは理にかなっおいたすか たたは、既存のヒントよりもはるかに簡単な別の1次元ヒントを䜜成できたす。 ご芧のずおり、サブピクセルRGBラスタラむズを䜿甚したテキストは、Adobe Acrobat Readerず非垞によく䌌おおり、いずれの堎合も、最新のLinuxシステムよりもはるかに優れおいたすこの蚘事は2007幎-およそTransl。に曞かれおいたす 。 これは、Linuxベヌスのシステムの普及ず普及に圹立぀ず考えおいたす。



Windows APIの䜿甚ははるかに耇雑です。 GetGlyphOutline関数は、敎数ピクセルのオフセット倀を返したすが、これは私たちにずっおは無瀌です。 ストレッチは保存されたせん。 GetCharABCWidthsFloatのような関数もありたすが、ヒント付きグリフの倀を蚈算し、浮動小数点数が含たれおいるにもかかわらず実際には敎数であるため、圹に立たないのです。 そのため、正確なオフセットを取埗する簡単な方法を芋぀けられたせんでした。 その結果、2぀のフォントを同時に䜿甚する必芁がありたした。1぀は高さ1024ピクセルで、もう1぀は必芁なサむズで、ヒントずストレッチアフィンマトリックスを䜿甚しおいたした。 私は䜕かを芋逃しおいるかもしれないず認めたすが、これをより正確に実装する方法に぀いおは考えおいたせん。 おそらく圌らは、Microsoft Wordの文曞化されおいない機胜をいく぀か䜿甚しおいたすが、これは競合ずいう点で完党に䞍正です。 もちろん、これを完党に確信するこずはできたせんが、状況から、MicrosoftはWYSIWYGドキュメントツヌルを開発するための十分なAPIを意図的に提䟛しおいないず思わせたす。 これは兞型的な独占政策であり、その結果、技術進歩の阻害に぀ながりたす。



実際、さらに悪いこずです。 特蚱取埗枈みのヒントは、「ストレッチ」マトリックスでは機胜したせん。 少なくずも、グリフを正しく凊理するスケヌリングファクタヌは1぀も芋぀かりたせんでした。 11スケヌルのみが正垞に機胜したしたが、その結果、スムヌゞングなしで癜黒のラスタラむザヌを䜿甚せざるを埗なかった同じ問題が発生したした。







気味が悪いね。 スケヌリングを行うず、グリフがひどく砎損したす。 ここで、たずえば、斜䜓のTimes New Roman16倍の氎平ストレッチ







それずもそうです。 Arial100倍の氎平ストレッチ-面癜い汚れ しかし、読むこずは䞍可胜です。







FreeType autohinterがどんなストレッチに察しおも正しく機胜するず蚀っおも意味がないず思いたす。



Microsoft APIは、゚ンゞニアリング文化やグロヌバルなアむデアを䞀切持たない「ひざたずき」の䞍健康なランダム゜リュヌションの集たりに過ぎないようです。 䞀般に、Microsoft゜フトりェアは1぀のハヌドコヌドされた方法でのみ䜿甚できたす。 右ぞのステップ、巊ぞのステップ-そしおすべおがなくなっおいたす。 これは圌らのビゞネスには良いかもしれたせんが、少なくずも公平ではありたせん。 このようなポリシヌは、平等な競争の条件に違反し、その結果、垂堎の党䜓的な進歩を遅らせたす。 独占犁止委員䌚は、Media PlayerたたはInternet Explorerをシステムから削陀するずいうばかげた芁件ではなく、この状況に泚意を払う必芁がありたす。



最終的に、倀「16」はより小さな悪であり、ほずんどの堎合に適しおいたすが、それでもむタリックタむムズニュヌロヌマンでは機胜しないこずがわかりたした。



デモプログラム



TrueTypeを䜿甚するWindowsプログラムは次のずおりです。

www.antigrain.com/research/font_rasterization/truetype_test_02_ft.zip



そしお、Windows APIを䜿甚するバヌゞョンは次のずおりです。

www.antigrain.com/research/font_rasterization/truetype_test_02_win.zip



FreeTypeのバヌゞョンには、プログラムディレクトリに次のファむルが必芁ですarial.ttf、ariali.ttf、georgia.ttf、georgiai.ttf、tahoma.ttf、times.ttf、timesi.ttf、verdana.ttf、verdanai.ttf。 これらはWINDIR\ Fontsフォルダヌにありたす。



コンパむルする堎合は、 AGGバヌゞョン2.4たたは2.5をダりンロヌドし、agg-2.4 \ research \ win32 \ trutype_lcd \ *。*のようなファむルを解凍したす。 FreeTypeバヌゞョンの堎合、FreeTypeを自分でビルドする必芁があり、堎合によっおはプロゞェクトの蚭定を倉曎する必芁がありたす。



AGGの䟋で䜿甚されおいるものず同様の適切なメむクファむルを䜜成するず、プログラムをLinux / X11たたは別のシステム甚にコンパむルするこずもできたす。



FreeTypeのバヌゞョンずWinAPIのバヌゞョンのテキストは、ヒントアルゎリズムが異なるために異なっお芋えたす。







ここには倚数の蚭定が衚瀺されたす。 たず、フォントを倉曎するだけでなく、カヌニング、ヒント、サブピクセルRGBラスタラむズのオン/オフを切り替えるこずができたす。 さらに、画像を反転しお、黒い背景に癜いテキストを衚瀺できたす。



フォントスケヌルスラむダヌを䜿甚するず、フォントサむズをスムヌズに倉曎できたす。 ご芧のずおり、ヒントがオンの堎合、線はピクセルに関連付けられたすが、テキストの幅は滑らかに倉化し続けたす。 間隔を倉曎するこずで、この効果をよりよく芋るこずができたす。 ヒントなしで、テキストのレむアりトはどの瞮尺でも完党に保持されたすが、テキストはがやけお芋えたす。 垂盎のスナップ線-テキストの鮮明さず粟床の間の最も合理的な劥協点。 私自身、キャラクタヌの圢を維持しながら、垂盎方向のヒントが品質を改善する方法にショックを受けおいたす。



間隔、幅、および斜䜓のむミテヌションスラむダヌは、コメントを必芁ずしないず思いたす。 コンピュヌタグラフィックスに粟通しおいる人にずっおは、これらが通垞のアフィン倉換であるこずは明らかです。 1぀の事実のみに泚目したいず思いたす。「癜黒」モヌドず「サブピクセルRGBラスタラむズ」モヌドでは、「むタリックシミュレヌション」スラむダヌの動䜜が少し異なりたす。 これは、アヌクタンゞェントを介しお倀を正しく凊理するのが面倒だったためです。 いずれにせよ、これは重芁ではありたせん。



私が特に誇りに思っおいる機胜は「倧胆な暡倣」です。 次のように機胜したす。







別の簡単なトリックがありたす。 AGGには、特定のポリゎンの等距離を蚈算できるconv_contourナヌティリティがありたす。 ただし、盎接䜿甚するずがやけた結果になり、サむンの圢状も倧きく倉化したすただし、これはグロヌやシャドり゚フェクトに圹立ちたす。







がやけは簡単に回避できたす。 グリフをたずえば100倍たたは1000倍垂盎に匕き䌞ばし、等距離ポリゎンを蚈算しお圧瞮したす。 そのため、結果ずしお、Y軞に沿った座暙はほずんど倉化せず、テキストは明確なたたです。 デモプログラムにはfaux_weightクラスがありたす。 繰り返したすが、無料の氎平スケヌリングがどれだけ倚くの機䌚をもたらすかは驚くべきこずです。 そしお、驚くべきこずではありたせんが、ピクセルに垂盎にスナップするず芖芚的な結果が改善されたす。



別の䟋この自由が倧奜きです







これはすべお同じゞョヌゞア州のヘッドセットですが、゜フトりェアのみが倉換されおいたす。 完党に読みやすく、鮮明で、同時に滑らかですはい、私は同意したす、圌女は手動カヌニングで傷぀けられないでしょう。



たたは、Tahomaヘッドセットでも同じです。







ガンマ調敎スラむダヌは、ガンマ補正を制埡したすチャンネルごずに個別に実行されたす。 理論的には、「盎接の色域」を元の色に適甚し、シヌンをレンダリングした埌、「逆の色域」を適甚する必芁がありたす。 ただし、これらの䟋のテキストは垞に癜たたは黒であるため、最初の操䜜には意味がありたせん。



プラむマリりェむトスラむダヌは、Steve Gibsonの説明に埓っお゚ネルギヌ分垃を制埡したす www.grc.com/freeandclear.htm 。 䞀次䜓重のみを管理し、残りを適宜蚈算するだけで十分です。 プラむマリりェむトを増やすこずで、テキストをより明確にするこずができたすが、文字の呚りに色付きのアりトラむンが衚瀺されたす。 0.5たでの倀を䜿甚するのは理にかなっおいたす。倀が倧きいず、「グロヌ」の色が目立ちやすくなりたす。 私に関しおは、Windows ClearTypeは、あたりにも目立぀色「グロヌ」も提䟛したす。



このようなラスタラむズは迅速に機胜したす



デモプログラムはかなり遅いです。 郚分的にはベクタヌ操䜜がオンザフラむで実行されたすが、䞻にそれ自䜓が非垞に遅いWinAPI GetGlyphOutline関数が原因です。 䞀方、このようなラスタ化は、ハヌドりェアアクセラレヌションによるテキストのラスタ化ず同じくらい高速です。 ただし、最初に、ヒント、正しいレむアりト、および明確なサブピクセル品質を維持しながら、任意に可倉のテキストのラスタラむズを加速するこずは、原則ずしお簡単な䜜業ではないこずに同意する必芁がありたす。 任意の倉換ずは、遠近法や非線圢倉換など、本圓に任意の倉換を意味したす。



ほずんどの堎合、東アゞア蚀語を䜿甚しおいる堎合でも、氎平テキストを凊理する必芁がありたす。 さらに、ほずんどのグリフは同じ公称サむズを䜿甚したす。 ここでは、キャッシュメカニズムが圹立ちたす。 3぀のRGBチャンネルのサブピクセルモノクロマスクには3倍のメモリが必芁ですが、同時に最倧1/3ピクセルのテキスト配眮粟床が埗られたす。 ほずんどの堎合、これは非垞にうたく機胜したす。 理論的な「豪華な」ラスタヌ化の堎合を陀き、グリフごずに2぀の癜黒マスクを䜿甚しお、1/6ピクセルの粟床を埗るこずができたす。 ゜フトりェアアルファミキシングでも非垞に高速に動䜜したす。最新のIntelプロセッサたたはPPCではグリフあたり玄2〜4ミリ秒です。 GPUを䜿甚するず、適切なテクスチャをロヌドするず、これはさらに速くなりたす。 唯䞀の問題は、GPUがチャンネル間でアルファブレンディングを蚱可する必芁があるこずです。これは、私が知る限り、可胜だず思われたす。 少なくずも、David Brownはプレれンテヌションでこれに぀いお蚀及しおいたす[8]。 しかし、このトピックに関する詳现情報ピクセルシェヌダヌから6チャネル出力を取埗する方法を芋぀けるこずができなかったため、このトピックに関するリンクを提䟛しおいただければ幞いです。



参照資料



  1. Joel Spolsky、フォントスムヌゞング、アンチ゚むリアス、およびサブピクセルレンダリング。

    www.joelonsoftware.com/items/2007/06/12.html
  2. スティヌブギブ゜ン、サブピクセルフォントレンダリングテクノロゞヌ。

    www.grc.com/cleartype.htm
  3. マキシムシェマナレフ、Windows Longhornの内郚ClearType。

    www.byte.com/documents/s=9553/byt1113241694002/0411_shemanarev.html

    オンラむン登録が必芁です。
  4. FontFocusホワむトペヌパヌ、artofcode.com / fontfocus
  5. ゞェフアトりッド、フォントレンダリングピクセルグリッドの尊重。

    www.codinghorror.com/blog/archives/000885.html
  6. Charles Poynton、ガンマに関するよくある質問。

    www.poynton.com/GammaFAQ.html
  7. Dave Shea、サブピクセルサファリ。

    mezzoblue.com/archives/2007/06/12/a_subpixel_s
  8. David Brown, Avalon Text. A PowerPoint presentation.

    download.microsoft.com/download/1/8/f/18f8cee2-0b64-41f2-893d-a6f2295b40c8/TW04007_WINHEC2004.ppt
  9. Brian Friesen, ZoomIn Program.

    www.csc.calpoly.edu/~bfriesen/software/zoomin.shtml
  10. David Turner and the others, FreeType font Library.

    freetype.org
  11. Jim Mathies, XP Style DPI Scaling.

    www.mathies.com/weblog/?p=908
  12. Long Zheng, Windows Vista DPI scaling: my Vista is bigger than your Vista

    www.istartedsomething.com/20061211/vista-dpi-scaling


PSWebアヌカむブの蚘事の最初の郚分写真付き。Webアヌカむブ内の蚘事の2番目の郚分写真付き。



PPS画面タむポグラフィのトピックに興味のある人のためのいく぀かの興味深いリンク

曞䜓

Windows 8の予算モニタヌ䞊の 単玔なフォントではありたせん

Windows OSの高DPI倀

プログラマを保護するために



All Articles