我想知道是否有任何图形库支持通用图形的 RGB 亚像素渲染(如 ClearType),而不仅仅是文本。这将允许将水平分辨率提高三倍,并将图形放在第三个像素的 x 位置上。
虽然我认为这将非常有用,但我在互联网上找不到太多关于它的信息,除了以下内容:
- 亚像素字体渲染的工作原理(中间有一些线条图像)
- 亚像素渲染和图像大小调整(关于应用亚像素渲染来调整位图大小的一些有趣想法)
例如,是否有任何图书馆实现了这一点,或者是否有努力将这样的东西带到开罗图书馆?
更新:
我特别指的是考虑到当前 LCD 屏幕使用不同颜色的子像素的渲染技术。要制作白点,请将所有子像素设置为 'on' 或 255。白线将是多个子像素相互叠加:
...RGB...
...RGB...
...RGB...
...RGB...
...RGB...
...111...
(其中.
是全黑子像素,R
或G
是B
全亮红色、绿色或蓝色子像素)。因为我们的眼睛无法分辨子像素,所以它们混合在一起形成一条白线。但是,我也可以从以下内容中划出一条白线:
....GBR..
....GBR..
....GBR..
....GBR..
....GBR..
....111..
请注意,它非常清晰,但位于 x = 1 1/3 像素处。这对于绘制略微模糊的白线的传统渲染技术是不可能的。这里例如R
=70% 点亮,r
=30% 点亮。我没有计算出数学,这只是为了让你明白:
...RGBrgb...
...RGBrgb...
...RGBrgb...
...RGBrgb...
...RGBrgb...
...777333...
另一个示例是斜率,您可以 a) 使用全像素,b) 抗锯齿,或 c) 使用子像素渲染:
a) RGB...... b) RGB...... c) RGB......
RGB...... RGBrgb... .GBR.....
...RGB... rgbRGB... ..BRG....
...RGB... ...RGB... ...RGB...
...RGB... ...RGBrgb ....GBR..
......RGB ...rgbRGB .....BRG.
......RGB ......RGB ......RGB
同样,请注意,这只是一个粗略的示例,可以为您提供一般概念,但您会看到 a) 锯齿或锯齿,b) 模糊,c) 与 LCD 上的清晰度一样高。
字体显示的实际实现(Windows 上的 ClearType 和 FreeType 中的子像素渲染)具有更复杂的算法。它们考虑到各个子像素会相互渗透或发光,它们保留了总的颜色强度或能量。他们还考虑到子像素间距不均匀(R和G之间的间距,或者G和B(像素中)的间距可能小于B和R之间的间距),最后一些显示器具有完全不同的像素布局。