POPPUR爱换

标题: 请教一个FSAA的问题 [打印本页]

作者: rickerlian    时间: 2011-3-30 02:07
标题: 请教一个FSAA的问题
最近在看FSAA方面的资料,看到MSAA及CSAA的原理,不是很理解。
我首先从SSAA说起吧,SSAA我理解为是这样的,例如4x SSAA,在rasterization阶段,采样频率x y方向分别提高1倍,所以,原来1像素所表示的内容现在变为用4个像素表示,最后4个像素混合为1个像素输出,这个过程应该可以概括为先提高采样频率,然后reconstruct,在downsample。
如果我对SSAA的理解没有错的话,好了,MSAA的问题来了,MSAA采样时加入的Coverage采样点,这是专门用来检测三角形的边缘的?
还是说这个Coverage只是检测相同颜色的?
遇到不同颜色边缘时MSAA就按SSAA来处理?否则按没有AA来处理。
这里的颜色是指还没有贴图的多边形的颜色吗?
我能否可以这样理解MSAA:如果采样区域颜色统一,采样频率不变;如果采样区域杂色,提高采样频率。而Coverage采样点就是用来判断采样区域的颜色,如果采样区域颜色统一,它不参与最后的混合输出,所以,节省了TMU及pixel shader资源,如果杂色,coverage采样点就用来参与AA处理。

另外CSAA好像只是降低了Color/Z/Stencil的采样频率,为什么要这样做,有什么好处和坏处?

我刚接触这些东西,还是有很多问题的,请教了,谢谢各位前辈指点。

作者: Edison    时间: 2011-3-30 03:08
没错,Coverage 就是三角形是否跨过取样点的标记位,可以看成一个 mask,这个 mask 在 g80 以前是严格对应 sub-sample 数量,而 G80 开始,这个 mask 容纳的标记位可以是 n 倍于像素的  sub-sample 。

我的理解是将 coverage 栅格密度独立出来后,可以更精确计算 sub-sample 的权重,获得更精确的像素色彩。

作者: rickerlian    时间: 2011-3-30 12:33
明白了,csaa增加coverage采样点但参与aa运算的采样点数量不变,因为coverage采样点数量多,所以能更精确反映aa采样点的权重。
谢谢管理员指点。
作者: rickerlian    时间: 2011-3-30 12:56
还有一个问题,硬件通过判断coverage点的那些属性来确定一个采样区域的三角形覆盖情况的,是coverage点的z深度和颜色吗,但是,如果采样区域内被两个相同z深度和颜色三角形覆盖满,msaa是不是就不生效了,这时,这两个三角形贴上不一样的贴图,那么在这两个三角形连接的地方还是能看见锯齿,是这样吗?谢谢指点。
作者: Edison    时间: 2011-3-30 16:49
CSAA 对三角形相交的情况投降。

不过这样的情况现在应该不多了吧。
作者: rickerlian    时间: 2011-3-30 16:53
明白,谢谢指点{:5_202:}




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4