为什么DirectX/DirectWrite/Direct2D文本渲染不能像GDI一样锐利?

Meh*_*dad 19 directx winapi gdi text-rendering smoothing

我已经知道,与GDI相比,子像素定位会导致DirectWrite文本呈现模糊.

但是,我的问题更为基础:为什么 DirectWrite(和相关方法)不能像GDI一样呈现文本?

换句话说:
什么阻止 DirectWrite能够将文本捕捉到最近的像素,就像GDI一样?

例如,它是硬件问题吗?驱动程序架构问题?它根本没有实现吗?或者是其他东西?


较小的样本:

较大的样品:

Direct2D,别名:

Direct2D,默认:

Direct2D("经典GDI"):

Direct2D("天然GDI"):

实际 GDI:

arx*_*arx 17

你不是喜欢比较喜欢.您的Direct2D示例都以灰度渲染,而GDI和Linux示例使用子像素抗锯齿(在Windows上也称为ClearType).

此页面描述了启用cleartype所需执行的操作:http://msdn.microsoft.com/en-us/library/windows/desktop/dd368170%28v=vs.85%29.aspx

注意当测试这样的渲染时,总是值得使用Windows放大镜或类似的东西来检查你是否真正得到了你认为你得到的东西.