Почему визуализация текста в DirectX / DirectWrite / Direct2D не может быть такой же четкой, как в GDI? - PullRequest
19 голосов
/ 23 декабря 2011

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

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

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

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


Меньший образец:

Большие образцы:

Direct2D, псевдоним:

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

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

Direct2D («натуральный GDI»):

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

1 Ответ

17 голосов
/ 29 декабря 2011

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

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

NB. При тестировании такого рендеринга всегда стоит использовать лупу Windows или аналогичную, чтобы убедиться, что вы действительно получаете то, что, по вашему мнению, получаете.

...