9

Смотрите видео демонстрацию по адресу: vimeo.com/155636855

Я слишком долго боролся с этой проблемой - теперь я хотел бы получить помощь извне.

* Это не имеет ничего общего с технологией VM - см. Добавленную заметку в конце поста *

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

Увеличьте изображение и внимательно посмотрите на различия по краям каждой буквы: левая намного более гладкая, чем правая - и в случае, если вы захотите быстро сделать вывод, CLEARTYPE НЕ ПРОБЛЕМА (см. Пункты ниже). ), по крайней мере, не с точки зрения "включено" или "выключено" (другими словами, может быть задействован параметр реестра, связанный с ClearType, но ничто в пользовательском интерфейсе Windows, связанном с ClearType, не является причиной этого, поскольку обе машины калиброваны для ClearType и ClearType включен как на хосте, так и на гостевой машине).

Факты:


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

Обе ОС имеют одинаковое разрешение экрана.

Я думал, что это проблема с видеодрайвером для 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.02.2016 * Я взял совершенно новый жесткий диск и установил чистый экземпляр Windows 10 на то же оборудование, на котором работает "хост", на который я ссылаюсь выше. Новый экземпляр Windows 10 имеет гладкие шрифты, как экземпляр виртуальной машины (ВМ) Windows 10. Это говорит мне о том, что аппаратное обеспечение машины не вызывает проблемы для создания изображения справа и что виртуальная машина (или технология виртуализации) не является причиной несоответствия. Теперь у меня есть жесткий диск A с Windows 10 на физической машине, на которой я могу загрузиться и увидеть образ справа; У меня есть второй жесткий диск B с Windows 10 на той же машине, на которой я могу загрузиться, чтобы показать изображение слева.

Затем я стер этот новый жесткий диск и установил Windows 7 Ultimate с установочного DVD-диска Microsoft. Он также отображает изображение слева (правильные, плавные шрифты). Таким образом, проблема не в том, что Windows 7 имеет проблему на моем оборудовании, а в том, что Windows 10 не исправляет ее - теперь мне ясно, что Windows 7 не показывает проблему шрифтов на моем оборудовании, если я переустанавливаю Windows 7.

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

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

1 ответ1

2

Я никогда не замечал, что рендеринг шрифтов ClearType работает так плохо на большом размере шрифта ... но на моем Win10 он такой же, как на вашем компьютере.

Поведение, которое вы описываете, на мой взгляд, это не ошибка ... это особенность :-)

Посмотрите на следующие изображения:

Изображение 1: рендеринг ClearType включен (нажмите на изображение, чтобы увидеть его лучше)

ClearType рендеринг включен

Когда ClearType включен, движок рендеринга шрифтов Windows пытается оптимизировать рендеринг шрифтов, используя субпиксель LCD R/G/B. Если вы посмотрите увеличенное изображение слева, вы увидите, что каждый шрифт имеет синевато-красноватое сглаживание, это связано с субпиксельной структурой ЖК-дисплея (подробнее о рендеринге субпикселей здесь).
Но, как вы заметили, это плохо работает с большим размером шрифта.
Но он все еще работает очень хорошо на небольшом размере шрифта.

Изображение 2: рендеринг ClearType выключен (нажмите на изображение, чтобы увидеть его лучше)

Если вы отключите рендеринг ClearType, то движок рендеринга шрифтов Windows перестанет использовать преимущества субпиксельной структуры LCD, и теперь шрифт будет иметь простое сглаживание серого (вместо синевато-красноватого сглаживания).
Это работает лучше при большом размере шрифта ... но очень плохо работает при маленьком размере шрифта, как вы можете проверить, посмотрев на рендеринг имени файла, рендеринг меню и так далее ...

Теперь тот факт, что на вашем гостевом ПК рендеринг шрифтов выглядит лучше, возможно, связан с тем, что субпиксельная рендеринг шрифтов ClearType включается только тогда, когда Windows обнаруживает физический ЖК-экран. Если виртуальный компьютер не обнаруживает физический ЖК-дисплей, он, вероятно, будет использовать "стандартное" (с оттенками серого) сглаживание шрифтов.

Теперь вы можете попытаться заставить Windows использовать сглаживание шрифта «стандартная / оттенки серого» вместо сглаживания Cleartype / subpixel, но на моем компьютере это не имело никакого значения: принудительное сглаживание в оттенках серого дает тот же результат, что и отключение Cleartype из панель управления. (Больше информации здесь о взломах реестра, чтобы попытаться настроить рендеринг Cleartype)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .