7

我有我正在创建的纹理并希望对它们进行抗锯齿处理。鉴于此,我可以访问每个像素的颜色,我怎么能抗锯齿整个纹理?

谢谢

4

4 回答 4

9

我很抱歉,但真正的抗锯齿并不包括从邻居那里获得平均颜色,如上所述。这无疑会柔化边缘,但它不是抗锯齿而是模糊。真正的抗锯齿不能在位图上正确完成,因为它必须在绘制时计算以判断哪些像素和/或边缘必须“软化”,哪些不能。例如:假设您绘制了一条必须恰好为 1 像素厚(例如“高”)并且必须准确放置在整数屏幕行坐标上的水平线。显然,您会希望它不柔化,并且适当的抗锯齿算法会做到这一点,将您的线条绘制成一排完美的实心像素,周围是完美的背景色像素,根本没有色调混合。但是,如果你在画出同一条线后(即 位图)并应用平均方法,您会在线条上方和下方变得模糊,从而产生 3 像素粗的水平线,这不是目标。当然,一切都可以通过正确的编码来实现,但要采用非常不同且复杂得多的方法。

于 2016-10-22T23:19:01.893 回答
5

“抗锯齿”可以指广泛的不同技术。这些通常都不是你会提前对纹理做的事情。

也许你的意思是mip映射? http://en.wikipedia.org/wiki/Mipmap

于 2010-06-10T02:36:13.590 回答
5

抗锯齿的基本方法是:对于一个像素P,对其周围的像素进行采样。P 的新颜色是其原始颜色与样本颜色的平均值。

您可以采样更多或更少的像素,更改要采样的像素周围区域的大小,或者随机选择要采样的像素。

不过,正如其他人所说:抗锯齿并不是对已经是像素位图的图像进行的真正操作。这是一种在 2D/3D 渲染引擎中实现的技术。

于 2010-06-10T02:44:11.483 回答
1

用这种模糊的术语询问抗锯齿并不是很有意义。这一切都取决于纹理的性质以及它们将如何使用。

通常,如果您无法控制显示环境,并且您的纹理可能会被缩放、旋转或与您无法控制的其他元素合成,您应该使用透明度来指示图像的结束位置和位置仅部分填充一个像素。

避免锐利边缘和相对于可能完成的缩放量较小的特征通常也很好。

于 2010-06-10T02:42:50.113 回答