Почему DirectX/DirectWrite/Direct2D не может быть столь же резким, как GDI?
Я уже знаю, что подпиксельное позиционирование вызывает Отправка текста DirectWrite для размытия по сравнению с GDI.
Однако мой вопрос несколько более фундаментален: Почему нельзя заставить DirectWrite (и связанные с ним методы) визуализировать текст так резко, как GDI?
Другими словами:
Что препятствует тому, чтобы DirectWrite мог привязать текст к ближайшему пикселю, как может GDI?
Это, например, проблема с оборудованием? Проблема с архитектурой драйвера? Это просто не реализовано? Или что-то еще?
Меньший выбор:
![]()
Более крупные образцы:
Direct2D, aliased:
![]()
Direct2D, по умолчанию:
![]()
Direct2D ( "классический GDI" ):
![]()
Direct2D ( "естественный GDI" ):
![]()
Фактический GDI:
![]()
Ответы
Ответ 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 или аналогично, чтобы проверить, что вы фактически получаете то, что, по вашему мнению, получаете.