Masalah Rendering Font Windows Aneh (Dengan Demo Video)

9

Lihat Demo Video di: vimeo.com/155636855

Saya sudah bergulat dengan masalah ini terlalu lama - sekarang saya akan senang bantuan dari luar.

* Ini tidak ada hubungannya dengan teknologi VM - lihat catatan tambahan di akhir posting *

Gambar terlampir berisi gambar berdampingan dari file WordPad dengan teks yang mewakili semua huruf dalam alfabet, huruf kecil dan huruf besar. Gambar di sebelah kiri diambil dari mesin virtual Windows 10 ("guest" OS) yang berjalan pada host Windows 10 ("host" OS); gambar di sebelah kanan diambil dari host Windows:

masukkan deskripsi gambar di sini

Perbesar gambar dan perhatikan perbedaan di sekitar tepi setiap huruf: Kiri lebih halus dari kanan - dan jika Anda tergoda untuk mengambil kesimpulan cepat, CLEARTYPE BUKAN MASALAH (lihat poin di bawah ini) ), setidaknya bukan dari perspektif "aktif" versus "tidak aktif" (dengan kata lain, pengaturan registri yang terkait dengan ClearType mungkin terlibat, tetapi tidak ada yang terjadi pada UI Windows yang terkait dengan ClearType yang menyebabkan ini karena kedua mesin dikalibrasi untuk ClearType dan ClearType AKTIF pada mesin host dan tamu).

Fakta:


Kedua OS menggunakan file font Myriad font TrueType (TTF) yang sama

Kedua OS diatur ke resolusi layar yang sama.

Saya pikir ini adalah masalah driver video Windows, tetapi saya memiliki driver nVidia terbaru dan saya menjalankan kartu GeForce GTX 560 yang relatif canggih dengan DirectX 12 pada host dan guest.

Kedua file WordPad menggunakan font, ukuran font, gaya font, dan zoom yang sama (100%).

Kedua OS Windows 10 sepenuhnya diperbarui menggunakan Pembaruan Windows.

ClearType aktif (aktif) pada host Windows maupun di mesin virtual. Saya telah mencoba berbagai kombinasi ClearType (mematikannya pada host dan mematikannya pada tamu, dan semua kombinasi lainnya) dan tidak ada perubahan pada artefak kasar yang ditampilkan pada host dibandingkan dengan tamu.

Saya tidak mengetahui adanya perbedaan DPI antara tamu dan tuan rumah. Font lain, seperti font Arial yang disertakan untuk Windows, menunjukkan masalah kasar yang sama hanya pada host - Saya hanya memilih Myriad Pro untuk menggambarkan masalahnya.

Warna kedua font adalah 100% HITAM (# 000).

Masalah ini muncul di SEMUA aplikasi yang dapat merender font TrueType. Saya menggunakan WordPad hanya sebagai contoh, tetapi itu terjadi di Microsoft PowerPoint dan TechTmith's Camtasia juga.

Masalah ini tidak terkait dengan font TrueType; itu juga berlaku untuk font-font OTF.

Dan, untuk apa nilainya, tidak masalah jika saya melihat host dari komputer lain melalui sesi remote-desktop (RDP) atau menggunakan sesuatu seperti TeamViewer; juga, perilaku tamu tidak berubah ketika saya menggunakan RDP atau TeamViewer.


Jelas ada sesuatu yang salah dengan subsistem font-rendering pada host. Menariknya, tuan rumah adalah mesin Windows 7 Ultimate sampai sekitar seminggu yang lalu (awal Februari 2016), ketika saya memutakhirkannya dengan menginstal Windows 10 Enterprise. Saya berharap bahwa melakukan peningkatan dari Windows 7 ke Windows 10 akan memperbaiki masalah rendering font terutama karena saya sudah melihat bahwa Windows 10 berjalan di mesin virtual pada host yang sama tidak memiliki masalah rendering font. Sayangnya, pembaruan ke Windows 10 tidak memperbaiki render font (saya tidak melakukan instalasi Windows 10 baru - saya melakukan pembaruan yang mempertahankan file dan pengaturan OS sebelumnya).

Karena semua yang saya tulis di atas, saya menduga ada beberapa nilai yang rusak, hilang, atau salah dalam registri yang terkait dengan rendering font untuk OS host - tetapi apa itu?

* Ditambahkan 2/12/2016 * Saya mengambil hard drive baru dan menginstal contoh Windows 10 bersih ke perangkat keras yang sama di mana "host" yang saya lihat di atas sedang berjalan. Contoh Windows 10 baru memiliki font yang halus, sama seperti mesin virtual (VM) contoh Windows 10. Ini memberitahu saya bahwa perangkat keras mesin tidak menyebabkan masalah untuk menghasilkan gambar di sebelah kanan dan bahwa VM (atau virtualisasi) teknologi) bukan alasan untuk perbedaan tersebut. Saya sekarang memiliki hard drive A dengan Windows 10 pada mesin fisik saya dapat boot ke dan melihat gambar di sebelah kanan; Saya memiliki hard drive B kedua dengan Windows 10 pada mesin yang sama saya dapat boot ke untuk menunjukkan gambar di sebelah kiri.

Saya kemudian menghapus hard drive baru itu dan menginstal Windows 7 Ultimate dari Microsoft Source Setup DVD. Ini juga membuat gambar di LEFT (font yang benar, mulus). Jadi masalahnya bukan bahwa Windows 7 memiliki masalah pada perangkat keras saya dan bahwa Windows 10 tidak memperbaikinya - jelas bagi saya sekarang bahwa Windows 7 tidak menunjukkan masalah font pada perangkat keras saya jika saya menginstal ulang Windows 7.

Jadi, selain virtualisasi - tampaknya saya menyaksikan semacam korupsi dalam subsistem render font antara mesin host saya yang ada dan mesin Windows 7/10 yang "normal" (ingat, mesin host saya yang ada ditingkatkan dari Windows 7 Ultimate ke Windows 10 Enterprise dan masalahnya memang ada di Windows 7 Ultimate sebelum saya melakukan upgrade, bahkan, saya berharap upgrade akan memperbaiki masalah ini - sayangnya, tidak).

Saya akan mencoba untuk mencari / membandingkan entri kunci registri untuk perbedaan waktu luang saya, tetapi saya masih ingin mendengar dari para ahli yang mungkin membantu saya memperbaiki penyebab root.

Jazimov
sumber
apa perangkat lunak VM?
Yorik
1
Tamu adalah mesin virtual VMWare 12 Workstation tapi saya juga menjalankannya di bawah HyperV.
Jazimov
Saya tahu bahwa Word merender sekitar 300dpi secara internal dan kemudian down-sampel untuk ditampilkan. Versi host di gambar Anda sepertinya dibuat pada pengaturan DPI yang lebih rendah. Tidak yakin kenapa. Saya tidak tahu banyak tentang rendering font di Windows 10, tetapi bagi saya sepertinya mereka menghapus rendering subpixel yang mendukung AA skala abu-abu, karena rendering subpiksel memiliki orientasi dan itu tidak berguna untuk perangkat seluler yang dapat diputar. Jika saya harus menebak, saya akan mengatakan bahwa masalahnya terletak pada bagaimana hardware video virtual Guest VM hadir ke OS.
Yorik
Ini bukan masalah VM (lihat catatan saya yang ditambahkan), tapi itu dugaan yang masuk akal. Anda mungkin tertarik pada sesuatu ketika Anda berbicara tentang DPI, tetapi ide / teori Anda sayangnya tidak berlaku untuk pengaturan saya. Juga, ini bukan masalah "cara baru Windows 10 dalam melakukan sesuatu". Perhatikan bahwa kedua mesin adalah mesin Windows 10 - dan komentar baru saya membuktikan bahwa Windows 10 berperilaku berbeda bahkan pada mesin fisik yang sama ... Ketika saya mengatakan saya telah bergulat dengan ini, saya maksudkan itu! :)
Jazimov
apakah Anda terhubung melalui HDMI? Periksa pengaturan kartu video Anda untuk penyesuaian overdraw dan nonaktifkan? Kartu IIRC Radeon default untuk ini diaktifkan melalui HDMI dan berskala jauh dari aslinya
Yorik

Jawaban:

2

Saya tidak pernah memperhatikan bahwa rendering font ClearType bekerja sangat buruk pada ukuran font yang besar ... tetapi pada Win10 saya sama seperti pada komputer Anda.

Perilaku yang Anda jelaskan, menurut saya, itu bukan bug ... itu fitur :-)

Lihatlah gambar-gambar berikut:

Gambar 1 : rendering ClearType AKTIF (klik pada gambar untuk melihatnya lebih baik)

ClearType rendering ON

Ketika ClearType AKTIF, mesin rendering font Windows mencoba mengoptimalkan rendering font dengan memanfaatkan subpixel LCD R / G / B. Jika Anda memeriksa gambar yang diperbesar di sebelah kiri, Anda dapat melihat bahwa setiap font memiliki perataan kebiruan / kemerahan, ini disebabkan oleh struktur subpiksel LCD ( info lebih lanjut tentang render subpiksel di sini ).
Tapi, seperti yang Anda catat, ini berfungsi buruk pada ukuran font besar.
Tetapi masih berfungsi dengan baik pada ukuran font yang kecil.

Gambar 2 : rendering ClearType MATI (klik pada gambar untuk melihatnya lebih baik) masukkan deskripsi gambar di sini

Jika Anda mematikan render ClearType, maka mesin render font Windows akan berhenti mengambil keuntungan dari struktur subpixel LCD, dan sekarang font tersebut akan memiliki penghalusan abu-abu sederhana (alih-alih bahwa penghalusan kebiruan / kemerahan).
Ini berfungsi lebih baik pada ukuran font besar ... tetapi bekerja sangat buruk pada ukuran font kecil, karena Anda dapat memeriksa dengan melihat rendering nama file, menu renderng dan sebagainya ...

Sekarang, fakta bahwa pada PC tamu Anda rendering font tampak lebih baik, mungkin disebabkan oleh fakta bahwa rendering font ClearType subpixel diaktifkan hanya ketika Windows mendeteksi layar LCD fisik. Jika pc virtual tidak mendeteksi LCD fisik, mungkin akan menggunakan perataan font "standar" (skala abu-abu).

Sekarang Anda bisa mencoba memaksa Windows untuk menggunakan perataan font "standard / grayscale", alih-alih perataan Cleartype / subpixel, tetapi di komputer saya tidak ada bedanya: memaksa perataan grayscale memberikan hasil yang sama dengan menonaktifkan Cleartype dari panel kendali. ( Info lebih lanjut di sini tentang peretasan registri untuk mencoba mengubah rendering Cleartype )

Maks
sumber
Umpan balik yang bagus - dan mungkin jawaban yang tepat. Sebelum menerima, saya diakui bingung mengapa contoh baru Windows 10 pada host saya tidak mendeteksi LCD dan kemudian menggunakan subpixel antialiasing (kecuali driver video default Microsoft memilih untuk contoh Windows 10 baru melakukan sesuatu yang berbeda dari driver Saya menginstal untuk Windows 7 saya contoh yang kemudian saya upgrade ke Windows 10) ... Saya akan bereksperimen dengan VM untuk melihat apakah saya dapat memaksa rendering subpixel versus grayscale - dan saya juga akan bereksperimen dengan host dan saya akan memposting lagi segera.
Jazimov
Deteksi monitor @Jimimov dibuat oleh Windows melalui kartu video, sehingga driver kartu video pasti dapat berdampak pada bagaimana monitor terdeteksi oleh Windows.
Maks
Jadi apa cara "benar" untuk menjalankan sistem saat menggunakan layar LCD? Jika ClearType tidak aktif, Anda kehilangan peningkatan rendering font kecil; jika aktif, Anda kehilangan peningkatan rendering font besar ... Apa yang harus dilakukan?
Jazimov
@Jazimov mungkin tidak ada solusi ... Saya tetap menggunakan cleartype karena saya biasanya bekerja dengan font kecil, tapi hanya saya. Saya tidak pernah memperhatikan masalah render cleartype pada font besar sebelum membaca posting Anda 2 jam yang lalu (saya adalah seorang pengembang perangkat lunak, dan saya menghabiskan setidaknya 11/12 jam di PC setiap hari ...)
Maks.
Saya masih akan melakukan beberapa penyesuaian untuk melihat apa yang saya hasilkan. Banyak orang berpikir Anda harus tetap menggunakan ClearType untuk mendapatkan teks yang lebih kecil yang dapat diterima, tetapi bahkan jika Anda menghapus centangnya menggunakan halaman pertama tuner ClearType, Anda masih bisa melalui proses penyetelan untuk mengkalibrasi tampilan Anda. Itu mungkin solusi terbaik: ClearType OFF, menampilkan dikalibrasi.
Jazimov