Подтвердить что ты не робот

Почему DirectX/DirectWrite/Direct2D не может быть столь же резким, как GDI?

Я уже знаю, что подпиксельное позиционирование вызывает Отправка текста DirectWrite для размытия по сравнению с GDI.

Однако мой вопрос несколько более фундаментален: Почему нельзя заставить DirectWrite (и связанные с ним методы) визуализировать текст так резко, как GDI?

Другими словами:
Что препятствует тому, чтобы DirectWrite мог привязать текст к ближайшему пикселю, как может GDI?

Это, например, проблема с оборудованием? Проблема с архитектурой драйвера? Это просто не реализовано? Или что-то еще?


Меньший выбор:

Более крупные образцы:

Direct2D, aliased:

Direct2D, по умолчанию:

Direct2D ( "классический GDI" ):

Direct2D ( "естественный GDI" ):

Фактический GDI:

4b9b3361

Ответ 1

Вы не сравнитесь с подобным. Образцы Direct2D отображаются в оттенках серого, тогда как в образцах GDI и Linux используется субпиксельное сглаживание (aka ClearType в Windows).

На этой странице описано, что вам нужно сделать, чтобы включить cleartype: http://msdn.microsoft.com/en-us/library/windows/desktop/dd368170%28v=vs.85%29.aspx

N.B. При тестировании рендеринга, как это, всегда стоит использовать Windows Magnifier или аналогично, чтобы проверить, что вы фактически получаете то, что, по вашему мнению, получаете.