奇妙なWindowsフォントレンダリングの問題(ビデオデモを使用)


9

ビデオデモをご覧ください:vimeo.com/155636855

私はこの問題に長い間取り組んできました。今、私はいくつかの外部の助けが大好きです。

*これはVMテクノロジとは関係ありません。投稿の最後にある追加のメモを参照してください*

添付された画像には、ワードパッドファイルの横並びの画像が含まれています。テキストには、小文字と大文字のすべてのアルファベットを表すテキストが含まれています。左側のイメージは、Windows 10ホスト(「ホスト」OS)で実行されているWindows 10仮想マシン(「ゲスト」OS)から取得したものです。右側の画像はWindowsホストから取得したものです。

ここに画像の説明を入力してください

画像を拡大して、各文字の端の周りの違いをよく見てください:左は右よりもはるかに滑らかです-すぐに結論を導きたくなった場合、クリアタイプは問題ではありません(以下のポイントを参照) )、少なくとも "オン"と "オフ"の観点から(つまり、ClearTypeに関連するレジストリ設定が関係している可能性がありますが、ClearTypeに関連するWindows UIには何もありません。これは、両方のマシンがClearTypeとClearTypeは、ホストマシンとゲストマシンの両方でオンになっています)。

事実:


両方のOSが同じMyriadフォントTrueType(TTF)フォントファイルを使用している

どちらのOSも同じ画面解像度に設定されています。

これはWindowsビデオドライバーの問題だと思っていましたが、最新のnVidiaドライバーがあり、ホストとゲストの両方でDirectX 12を搭載した比較的ハイエンドのGeForce GTX 560カードを実行しています。

両方のワードパッドファイルで同じフォント、フォントサイズ、フォントスタイル、およびズーム(100%)が使用されています。

両方のWindows 10 OSは、Windows Updateを使用して完全に更新されます。

ClearTypeは、Windowsホストと仮想マシンの両方でアクティブ(オン)です。ClearTypeのさまざまな組み合わせ(ホストでオフにしてゲストでオフにして、その他すべての組み合わせ)を試しましたが、ゲストと比較してホストに表示されるラフなアーティファクトに変更はありません。

ゲストとホストのDPIの違いについては知りません。Windowsに含まれているArialフォントなどの他のフォントは、ホスト上でのみ同様の粗い問題を示します。問題を説明するためにMyriad Proを選択しました。

両方のフォントの色は100%黒(#000)です。

この問題は、TrueTypeフォントをレンダリングできるすべてのアプリケーションで発生します。例としてワードパッドを使用しましたが、Microsoft PowerPointとTechSmithのCamtasiaでも同様に発生します。

この問題はTrueTypeフォントとは関係ありません。OTFフォントでも同様です。

そして、価値があるのは、リモートデスクトップセッション(RDP)を介して、またはTeamViewerのようなものを使用して、別のコンピューターからホストを表示するかどうかは関係ありません。また、RDPまたはTeamViewerを使用してもゲストの動作は変わりません。


明らかに、ホストのフォントレンダリングサブシステムに問題があります。興味深いことに、ホストはWindows 7 Enterpriseで、約1週間前(2016年2月上旬)にWindows 10 Enterpriseをインストールしてアップグレードしました。同じホスト上の仮想マシンで実行されているWindows 10にはフォントレンダリングの問題がないことをすでに確認しているため、Windows 7からWindows 10へのアップグレードによってフォントレンダリングの問題が解決することを期待していました。残念ながら、Windows 10への更新ではフォントレンダリングは修正されませんでした(Windows 10の新規インストールは行いませんでした-以前のOSファイルと設定を保持する更新を行いました)。

上記で書いたすべての理由により、ホストOSのフォントレンダリングに関連するレジストリに破損、欠損、または不正な値があると思いますが、それは何でしょうか?

* 2016年2月12日追加* 真新しいハードドライブを取り、上記の「ホスト」が実行されているのと同じハードウェアにクリーンなWindows 10インスタンスをインストールしました。新しいWindows 10インスタンスには、Windows 10の仮想マシン(VM)インスタンスと同様に、滑らかなフォントがあります。これは、マシンのハードウェアが問題を起こして右側にイメージを生成しておらず、VM(または仮想化)テクノロジー)は格差の理由ではありません。物理マシンにWindows 10が搭載されたハードドライブAがあり、起動して右側のイメージを表示できます。ブート可能な同じマシン上にWindows 10を搭載した2番目のハードドライブBがあり、左側にイメージを表示します。

次に、その新しいハードドライブを消去し、MicrosoftソースセットアップDVDからWindows 7 Ultimateをインストールしました。また、左(正しい、滑らかなフォント)で画像をレンダリングします。したがって、問題は、Windows 7にハードウェアの問題があり、Windows 10がそれを修正していないことではありません。Windows7を再インストールしても、ハードウェアのフォントの問題がWindows 7に表示されないことは明らかです。

つまり、仮想化は別として、既存のホストマシンと「通常の」Windows 7/10マシンとの間のフォントレンダリングサブシステムに何らかの破損が見られるようです(既存のホストマシンはWindows 7 Ultimateからアップグレードされたことに注意してください)。 Windows 10 Enterpriseへのアップグレードでは、アップグレードを行う前にWindows 7 Ultimateに問題が存在していました。実際、アップグレードによってこの問題が修正されることを望んでいました(残念ながら、そうではありませんでした)。

私は自由な時間に、主要なレジストリエントリの相違点を調べたり比較したりしますが、根本的な原因を突き止めるのに役立つ可能性のある専門家からの連絡を待ち望んでいます。


どのVMソフトウェア?
Yorik 2016

1
ゲストはVMWare 12ワークステーション仮想マシンですが、HyperVでも実行しています。
ジャジモフ2016

Wordは内部で約300dpiでレンダリングし、表示用にダウンサンプリングすることを知っています。画像のホストバージョンは、低いDPI設定でレンダリングされたように見えます。なぜだかわかりません。Windows 10でのフォントレンダリングについてはよくわかりませんが、サブピクセルレンダリングには向きがあり、モバイルの回転可能なデバイスでは役に立たないため、グレースケールAAを優先してサブピクセルレンダリングを廃止したように見えます。推測する必要がある場合、問題はゲストVM仮想ビデオハードウェアがOSに提示する方法にあると言えます。
Yorik 2016

これはVMの問題ではありませんが(追加のメモを参照)、それは妥当な推測でした。DPIについて話すとき、あなたは何かに夢中になっているかもしれませんが、あなたのアイデア/理論は残念ながら私のセットアップには当てはまりません。また、これは「Windows 10の新しい方法」の問題でもありません。両方のマシンがWindows 10マシンであることに注意してください。私の新しいコメントは、Windows 10が同じ物理マシン上でも異なる動作をすることを証明しています...私がこれに取り組んでいると言ったとき、私はそれを意味しました!:)
Jazimov 2016

HDMI経由で接続していますか?ビデオカードの設定でオーバードロー調整を確認して無効にしますか?IIRC Radeonカードは、デフォルトでこれをHDMIで有効にしており、ネイティブから拡張できます
Yorik

回答:


2

ClearTypeフォントのレンダリングが大きなフォントサイズでそれほどうまく機能しないことに気づきませんでしたが、私のWin10では、コンピューターと同じです。

あなたが説明する動作は、私の意見では、バグではありません...それは機能です:-)

次の画像を見てください。

画像1ClearTypeレンダリングがオンになっています(画像をクリックすると見やすくなります)

ClearTypeレンダリングON

ClearTypeがONの場合、Windowsフォントレンダリングエンジンは、LCD R / G / Bサブピクセルを活用してフォントレンダリングを最適化しようとします。左側の拡大画像を確認すると、各フォントに青みがかった/赤みがかったスムージングがあることがわかります。これは、LCDサブピクセル構造によるものです(サブピクセルレンダリングの詳細はこちら)。
ただし、ご指摘のとおり、これは大きなフォントサイズではうまく機能しません。
しかし、小さいフォントサイズでも非常にうまく機能します。

画像2ClearTypeレンダリングがオフ(画像をクリックすると、見やすくなります) ここに画像の説明を入力してください

ClearTypeレンダリングをオフにすると、WindowsフォントレンダリングエンジンはLCDサブピクセル構造の利用を停止し、フォントは単純な灰色のスムージング(青みがかった/赤みがかったスムージングではなく)になります。
これは大きなフォントサイズでうまく機能しますが、小さなフォントサイズでは非常にうまく機能しません。ファイル名のレンダリングやメニューのレンダリングなどで確認できるからです...

現在、ゲストPCでのフォントレンダリングの方が良いように見えるのは、Windowsが物理的なLCD画面を検出した場合にのみClearTypeサブピクセルフォントレンダリングが有効になるためです。仮想PCが物理LCDを検出しない場合は、「標準」(グレースケール)フォントスムージングを使用する可能性があります。

Cleartype /サブピクセルスムージングではなく、Windowsに「標準/グレースケール」フォントスムージングを使用するように強制することができますが、私のコンピューターでは違いはありませんでした。グレースケールスムージングを強制すると、コントロールパネル。(Cleartypeレンダリングを微調整しようとするレジストリハックの詳細はこちら


素晴らしいフィードバック、そしておそらく正しい答え。受け入れる前に、ホスト上のWindows 10の新しいインスタンスがLCDを検出せず、サブピクセルアンチエイリアスを使用しなかった理由に当惑しています(デフォルトのビデオドライバーMicrosoftが新しいWindows 10インスタンス用に選択したものとドライバーが異なる場合を除く)私は後でWindows 10にアップグレードしたWindows 7インスタンスにインストールしました)... VMを実験して、サブピクセルレンダリングとグレースケールレンダリングを強制できるかどうかを確認します。また、ホストを実験し、投稿しますすぐにまた。
ジャジモフ2016

@Jazimovモニターの検出はビデオカードを介してWindowsによって行われるため、ビデオカードドライバーは、Windowsによるモニターの検出方法に確実に影響を与える可能性があります。
最大

では、LCDディスプレイを使用するときにシステムを実行する「正しい」方法は何でしょうか。ClearTypeがオフの場合、小さいフォントのレンダリングの改善は失われます。オンになっていると、大きなフォントのレンダリングの改善が失われます...
ジャジモフ2016

@Jazimovおそらく解決策はありません... cleartypeは常に小さいフォントで作業するため、ebableを有効にしていますが、それは私だけです。2時間前の投稿を読む前に、ビッグフォントでのクリアタイプレンダリングの問題に気づきませんでした(私はソフトウェア開発者で、毎日PCで少なくとも11/12時間を費やしています...)
最大

私はまだ私が思いついたものを見るためにいくつかの微調整をします。多くの人は、許容できる小さいテキストを取得するためにClearTypeをオンにしておく必要があると考えていますが、ClearTypeチューナーの最初のページを使用してオフにした場合でも、調整プロセスを実行してディスプレイを調整できます。それが最善の解決策である可能性があります。ClearTypeOFF、校正済みの表示。
ジャジモフ2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.