Bel*_*gor 6 c++ pixel antialiasing line-drawing bresenham
我目前正在尝试将抗锯齿合并到我的线条绘制算法(DDA 和 Bresenham)中,教授指示我任何抗锯齿技术都是允许的,所以我做了一些研究,似乎未加权区域采样是一个很好的选择要去的路线。
我通读了它的工作原理的基础知识,我想说我已经理解了大约 70-80%,但我不明白决定应该在多“远”处寻找抗锯齿的潜在像素的基本概念或者只是着色以提供抗锯齿效果。
使用未加权区域采样,我们“想象”一个围绕我们希望绘制的线的 1 像素宽度的矩形,并且落在该想象的矩形内的任何像素都将使用与其覆盖的区域成比例的颜色进行着色。
所以我的具体问题是:
如果我当前位于像素 (x1, y1) 上并且我决定要点亮 (x1+1, y) 处的像素,我如何“发现”该新像素周围应该抗锯齿的像素?
接续问题1,我如何知道一个像素是在我们想象的矩形范围之内还是之外?
[编辑]
我读过某处用户暗示您可以合并 Bresenham 中使用的中点算法来执行此未加权采样,但我无法理解如何进行。