超采样抗锯齿如何工作?


0

通过在线阅读,我了解了Supersampling Anti-Aliasing如何工作的基本思想,它以比用户显示的分辨率更高的分辨率渲染场景,使用额外的像素来计算平均值,然后对其进行下采样。

我不太了解这在实践中如何工作。例如,如果在天空的蓝色像素旁边有墙的红色像素,则当场景渲染为x2 SSAA时,一个红色像素现在不是四个红色像素,而是与蓝天像素相同吗?在计算平均值时有帮助吗?

四个新的红色像素是否被原始图像覆盖,这样您将得到红色和蓝色像素的混合,并能够计算平均值以帮助平滑墙壁和天空之间的过渡?

任何帮助,将不胜感激。


当然,如果仅按比例缩放,结果将是相同的,但是会加载更高的纹理,即:实际上高分辨率的红色像素是4种不同的红色,因此将获得不同的结果。
larkey

Answers:


2

这很有帮助。在您的原始示例中:

...红色红色红色蓝色蓝色蓝色...

红色和蓝色之间的边界看起来像是楼梯

在过采样的图像中

...红色红色红色红色蓝色蓝色蓝色...

当我们降低采样率

...红色] [红色红色] [红色蓝色] [蓝色蓝色] [蓝色...

现在,我们将红色和蓝色的像素平均在一起,从而模糊了红色和蓝色区域之间的边界。

如果您想象两个区域(红色和蓝色)之间的对角线边界,则过采样将在阶梯边缘插入中间像素,因为许多2x2框必然在其中包含红色和蓝色像素。

在此处输入图片说明


嗨,@大卫,谢谢您的回答。我一定是个白痴,因为我还不太了解这一点。当像素放大到其大小的四倍时(使用2倍SMAA),新2x2正方形中的其他3个像素是否都与原始像素具有相同的颜色?
RJSmith92

@ RJSmith92像素未放大。仅发生缩小。考虑一条对角线,覆盖2x2框,必须是某些框在该线的两边都包含像素的情况。
David Schwartz

谢谢@David,这更有意义。在网上查看所有说明时,都会以较高的分辨率渲染图像,但我不确定这与您描述的过程有什么联系?
RJSmith92

1
对。图像以更高的分辨率渲染,然后缩小比例。没有升级。
David Schwartz

好的,因此当以更高的分辨率(使用x2)渲染图像时,一个像素将由四个像素表示。计算出这四个像素的平均颜色,然后在缩小后用于一个像素?
RJSmith92 2015年

2

好的,我会尝试解释一下,因为在处理照片之前,我已经应用了类似的方法,将一些“平滑”算法应用于照片或低分辨率照片,而没有得到非常广泛的深度平滑。

它会像这样。

这是您将以通常的分辨率查看的像素。迫切需要消除锯齿或平滑锯齿。
混叠

一方面,我们将图像放大到4倍,然后应用了相同的抗锯齿算法 高和低

重要的是要注意,作为一台愚蠢的计算机,我不能只将黑色弯曲为白色(改变白色度),还必须将白色弯曲为黑色(平衡等式:-)。我正在盲目地将数学矩阵应用于我被告知要应用的地方。尽管视频卡算法非常复杂,并且实际上并没有它那么盲目。

游戏中的平衡示例,您不希望栅栏消失在天空中,也不希望天空成为栅栏,因此必须对天空像素和栅栏像素进行更均等的调整。这也是视频卡和游戏引擎破坏这种平衡以获得最佳画面的方式的一个示例,而这种细节仍然难以克服。

在某个时候,所有这些都必须回到显示分辨率,即较低的分辨率,并且在有很多项目需要调整之后,多余的像素现在可以完美地融合为更少的像素。
(嗯,这不是该混合的理想颜色,但我没有做数学运算) 回到低分辨率 ,正如您所看到的,它在显示分辨率中再次看起来很糟糕。

在低分辨率方面,当我们将所有这些像素彼此相对(黑色和白色)弯曲时,我们具有如此大的影响/改变区域,并且由于我们仅在低分辨率下工作,因此具有很大的平滑度。

在高分辨率方面,我们获得了一个完美的平衡像素集,这些像素将4X像素混合在一起,从而使平滑区域更小。因此“高分辨率”方面会找到可以使所有效果平滑的像素,但不会留下很大的模糊混乱。

因为(再次)我们必须弯曲更多的像素,以保持将一个像素彼此融合的平衡,如果我们首先放大,则可以以较小的比例创建此弯曲融合,仍然保持一个像素彼此弯曲的平衡。 ,最终结果是受影响的像素更少,遮盖物相同。

当您将两种方法并排使用游戏进行比较时,似乎需要做很多额外的工作而获得的差异并不大。当我处理将以较低分辨率使用的照片时,同样的事情对我和机器来说都需要付出很多额外的努力,而效果却几乎更好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.