0

我正在研究亚像素光栅化器。输出将呈现在不透明的位图上。我已经到了正确地以黑底白字的方式呈现文本(因为我基本上可以忽略位图的内容)。

问题是混合。由于低通滤波技术(我使用的是 5-tap fir - 1/9、2/9、3/9 等),以及额外的 alpha 水平,每个实际渲染的像素也会影响它的邻居强度水平要渲染的像素。然后必须将此结果以字母混合到目标图像上,这就是问题发生的地方......

必须将像素交互的结果加在一起以实现正确的亮度 - 并将字母混合到目的地 - 但是如果我一次光栅化一个像素,我会“松散”先前像素的信息,因此,进一步的添加可能会导致到溢出。

这应该怎么做?我能想象的唯一可行的解​​决方案是,使用每种颜色的 alpha 通道渲染到单独的图像,然后使用一些复杂的混合算法,最后将其 alphablend 到目的地.. 不知何故。

但是,除了 lcd 子像素渲染的基本概念和监视器像素的漂亮特写图像之外,我找不到任何有关如何实际执行此操作的资源。如果有人能一路帮助我,我将不胜感激。

4

1 回答 1

0

今晚我醒了,再也睡不着了。我不能让所有这些脑力浪费掉,并且偶然发现了完全相同的问题。

我提出了两种不同的解决方案,均未经验证。

  • 您必须使用 3 通道 alpha 蒙版,每个子像素一个,将每种颜色与其自己的 alpha 混合。
  • 如果您只渲染灰色/BW 字体(如果您在浅色背景颜色上绘制深色文本,则为 1-color_value),您可以将每个颜色通道用作 alpha 蒙版,再次单独应用每种颜色。在这种情况下,颜色值本身应视为 1。

希望这会有所帮助,我用它填补了大约 2 小时的失眠症。

~ 一月

于 2015-02-19T16:17:21.990 回答