Незвичайний випуск шрифтової рендеринга Windows (із демонстрацією відео)


9

Дивіться демонстрацію відео за адресою: vimeo.com/155636855

Я занадто довго стикався з цим питанням - тепер я хотів би отримати допомогу ззовні.

* Це не має нічого спільного з технологією VM - див. Додану примітку в кінці повідомлення *

Вкладене зображення містить бічне зображення файла WordPad з текстом, що представляє всі літери алфавіту, нижнього та верхнього регістру. Зображення зліва було знято з віртуальної машини Windows 10 ("гостьова" ОС), що працює на хості Windows 10 (ОС "хост"); зображення праворуч було взято з хоста Windows:

введіть тут опис зображення

Збільшити зображення і уважно ознайомитись з відмінностями по краях кожної літери: зліва значно гладша, ніж права - і у випадку, коли ви спокушаєтеся перейти до швидкого висновку, КЛЕТЕРТИП НЕ ВИДАЄТЬСЯ (див. Пункти нижче ), принаймні, не з точки зору "включено" проти "вимкнено" (іншими словами, може бути задіяно налаштування реєстру, пов'язане з ClearType, але нічого в інтерфейсі Windows, пов'язаному з ClearType, не викликає цього, оскільки обидві машини відкалібровані для ClearType і ClearType увімкнено як на хост-так і на гостьових машинах).

Факти:


Обидві ОС використовують один і той же файл шрифту Myriad TrueType (TTF)

Обидві ОС встановлені в однаковій роздільній здатності екрана.

Я подумав, що це проблема Windows-драйверів для Windows, але у мене є останній драйвер nVidia, і я запускаю порівняно висококласну карту GeForce GTX 560 з DirectX 12 як для хоста, так і для гостей.

Обидва файли WordPad використовують один і той же шрифт, розмір шрифту, стиль шрифту та масштабування (100%).

Обидві ОС Windows 10 повністю оновлюються за допомогою оновлення Windows.

ClearType активний (увімкнено) як на хості Windows, так і на віртуальній машині. Я спробував різні комбінації ClearType (вимкнення його на хості та відключення гостя та всі інші комбінації), і артефакт грубого краю, що відображається на хості, не змінюється порівняно з гостем.

Мені невідомі будь-які відмінності DPI між гостем та господарем. Інші шрифти, такі як шрифт Arial, включений у Windows, показують подібні грубі проблеми лише на хості - я просто вибрав Myriad Pro для ілюстрації проблеми.

Колір обох шрифтів - 100% ЧЕРНИЙ (# 000).

Ця проблема з’являється у ВСІХ програмах, які можуть відображати шрифти TrueType. Я використовував WordPad лише як приклад, але це трапляється і в Microsoft PowerPoint та Camtasia TechSmith.

Ця проблема не пов’язана з шрифтами TrueType; це трапляється і для шрифтів OTF.

І для чого це не важливо, я переглядаю хост з іншого комп'ютера через сеанс віддаленого робочого столу (RDP) або використовую щось на зразок TeamViewer; також поведінка гостя не змінюється, коли я використовую RDP або TeamViewer.


Зрозуміло, що щось не так з підсистемою візуалізації шрифту на хості. Цікаво, що хостом був апарат Windows 7 Ultimate приблизно тиждень тому (на початку лютого 2016 року), коли я оновив його, встановивши Windows 10 Enterprise. Я сподівався, що таке оновлення з Windows 7 до Windows 10 вирішить проблему візуалізації шрифту, особливо тому, що я вже бачив, що Windows 10, що працює у віртуальній машині на тому самому хості, не мала проблеми з рендерінгом шрифту. На жаль, оновлення до Windows 10 не виправило рендеринг шрифту (я не зробив свіжу установку Windows 10 - я зробив оновлення, яке зберігає попередні файли та настройки ОС).

Через все, що я писав вище, я підозрюю, що в реєстрі є якесь пошкоджене, відсутнє або неправильне значення, пов’язане з візуалізацією шрифту для хост-ОС - але що це може бути?

* Додано 12.12.2016 * Я взяв абсолютно новий жорсткий диск і встановив чистий екземпляр Windows 10 на той же апарат, на якому працює "хост", про який я згадую вище. Новий екземпляр Windows 10 має гладкі шрифти, як і екземпляр віртуальної машини (VM) Windows 10. Це підказує мені, що апаратне забезпечення машини не викликає проблеми з генеруванням зображення праворуч і що VM (або віртуалізація) технологія) не є причиною розбіжності. Зараз у мене на фізичній машині є жорсткий диск A з Windows 10, на який я можу завантажитися і побачити зображення праворуч; У мене є другий жорсткий диск B з Windows 10 на тій же машині, в який я можу завантажитися, щоб показати зображення ліворуч.

Потім я витер цей новий жорсткий диск і встановив Windows 7 Ultimate з джерела Microsoft Setup DVD. Він також надає зображення вліво (правильні, гладкі шрифти). Тому проблема полягає не в тому, що Windows 7 має проблему з моїм обладнанням, і що Windows 10 не виправляє її - мені вже зараз зрозуміло, що Windows 7 не відображає проблеми з шрифтом на моєму апаратному забезпеченні, якщо я перевстановлюю Windows 7.

Отже, віртуалізація вбік - виявляється, що я спостерігаю певну пошкодження в підсистемі візуалізації шрифту між моєю існуючою хост-машиною та "звичайною" машиною Windows 7/10 (пам'ятайте, що моя існуюча хост-машина була оновлена ​​з Windows 7 Ultimate до Windows 10 Enterprise, і проблема існувала в Windows 7 Ultimate до того, як я здійснив оновлення; насправді я сподівався, що оновлення виправить цю проблему - на жаль, це не відбулося).

Я спробую переглянути / порівняти ключові записи реєстру для розбіжностей у вільний час, але я все ще хочу почути від будь-яких експертів, які могли б допомогти мені зробити нульову причину в першопричині.


яке програмне забезпечення VM?
Йорк

1
Гість - віртуальна машина VMWare 12 Workstation, але я також працював під HyperV.
Язимов

Я знаю, що Word візуалізує приблизно 300dpi всередині, а потім знижує вибірки для відображення. Хост-версія на вашому зображенні виглядає так, що вона була відображена при нижчих налаштуваннях DPI. Не знаю чому. Я не знаю тонкості про візуалізацію шрифту в Windows 10, але мені здається, що вони відібрали субпіксельну візуалізацію на користь сірого масштабу AA, оскільки субпіксельна візуалізація має орієнтацію і не корисна для мобільних пристроїв, що обертаються. Якби мені довелося здогадатися, я б сказав, що проблема полягає в тому, як віртуальне відео-обладнання для гостя VM представляє ОС.
Йорік

Це не проблема VM (див. Мої додаткові примітки), але це було розумною здогадкою. Ви можете бути на чомусь, коли ви говорите про DPI, але ваші ідеї / теорії, на жаль, не стосуються моїх налаштувань. Крім того, це не проблема "нового способу ведення справ для Windows 10". Зауважте, що обидві машини - це машини Windows 10 - і мій новий коментар доводить, що Windows 10 поводиться по-різному навіть на одній фізичній машині ... Коли я сказав, що я з цим боюся, я мав на увазі це! :)
Язимов

Ви підключені через HDMI? Перевірте налаштування відеокарти на коригування перевитрати та відключення? Картки IIRC Radeon за замовчуванням для цього ввімкнено через HDMI, і він масштабується від рідного
Yorik,

Відповіді:


2

Я ніколи не помічав, що візуалізація шрифтів ClearType працює так сильно на великих розмірах шрифту ... але на моєму Win10 це те саме, що і на вашому комп’ютері.

Поведінка, яку ви описуєте, на мою думку, це не помилка ... це особливість :-)

Погляньте на наступні зображення:

Зображення 1 : Відображення ClearType увімкнено (натисніть на зображення, щоб побачити його краще)

Увімкнено режим ClearType

Коли ClearType увімкнено, механізм візуалізації шрифтів Windows намагається оптимізувати візуалізацію шрифту, використовуючи перевагу підпікселя РК / Г / В РК. Якщо ви перевірите збільшене зображення зліва, ви можете побачити, що кожен шрифт має згладжування синюватого / червонуватого кольору, це пов’язано зі структурою підпікселів РК ( більше інформації про відображення субпікселів тут ).
Але, як ви зазначали, це працює погано на великих розмірах шрифту.
Але це все ще дуже добре працює на невеликих розмірах шрифту.

Зображення 2 : Відображення ClearType ВИМКНЕНО (натисніть на зображення, щоб побачити його краще) введіть тут опис зображення

Якщо вимкнути візуалізацію ClearType, тоді механізм візуалізації шрифтів Windows перестане користуватися структурою підпікселів РК-дисплея, і тепер шрифт матиме просте сіре згладжування (замість того, щоб синювальне / червонувате згладжування).
Це краще працює на великих розмірах шрифту ... але дуже погано працює на невеликих розмірах шрифтів, як це можна перевірити, переглянувши рендеринг імен файлів, візуалізацію меню тощо.

Тепер те, що на вашому гостьовому ПК відображення шрифту здається кращим, ймовірно, пов’язане з тим, що візуалізація шрифту субпікселя ClearType увімкнена лише тоді, коли Windows виявить фізичний РК-екран. Якщо віртуальний ПК не виявить фізичний РК-дисплей, він, ймовірно, використовуватиме «стандартне» (шматки сірого) шрифту.

Тепер ви можете спробувати змусити Windows використати згладжування шрифту "стандартний / відтінки сірого", замість того, щоб згладити Cleartype / субпіксель, але на моєму комп’ютері це не мало ніякої різниці: змусити згладжування сірого масштабу дати той же результат, що і відключення Cleartype від панель управління. ( Більше інформації тут про хаки реєстру, щоб спробувати налаштувати Cleartype-рендерінг )


Відмінні відгуки - і, можливо, правильна відповідь. Перш ніж приймати, я, безумовно, здивований тим, чому новий екземпляр Windows 10 на моєму хості не виявив РК-дисплей, а потім використовувати підпіксельну антиаліазію (якщо тільки драйвер відео за замовчуванням Microsoft не вибирає для нового екземпляра Windows 10 робить щось інше, ніж драйвер Я встановив для свого екземпляра Windows 7, що пізніше оновив до Windows 10) ... Я буду експериментувати з VM, щоб побачити, чи можу я примусити субпіксель проти надання сірого масштабу - і я також експериментуватиму з хостом і опублікую незабаром знову.
Язимов

Виявлення монітора @Jazimov здійснює Windows за допомогою відеокарти, тому драйвер відеокарти, безумовно, може вплинути на те, як монітор виявляє Windows.
Макс

Отже, який "правильний" спосіб запустити систему при використанні РК-дисплеїв? Якщо ClearType вимкнено, ви втрачаєте поліпшення відображення дрібних шрифтів; якщо він увімкнений, ви втрачаєте поліпшення візуалізації великого шрифту ... Що робити?
Язимов

@Jazimov, мабуть, немає рішення ... Я тримаю чіткий стиль, тому що я зазвичай працюю з невеликими шрифтами, але це тільки я. Я ніколи не помічав чіткого типу рендерінгу у великих шрифтах, перш ніж читати ваше повідомлення 2 години тому (я розробник програмного забезпечення, і щодня витрачаю щонайменше 11/12 годин на ПК ...)
Макс

Я все-таки зроблю певні налаштування, щоб побачити, що я придумав. Багато людей думають, що вам потрібно ввімкнути ClearType, щоб отримати прийнятний менший текст, але навіть якщо ви знімете його з першої сторінки тюнера ClearType, ви все одно можете пройти процедуру настройки для калібрування вашого дисплея. Це може бути найкращим рішенням: ClearType OFF, відображення калібровано.
Язимов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.