六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 816|回复: 0

D3D11中的硬件反锯齿 SSAA/MSAA/EQAA/CSAA(3)

[复制链接]

升级  91.33%

154

主题

154

主题

154

主题

举人

Rank: 3Rank: 3

积分
474
 楼主| 发表于 2012-12-30 11:52:51 | 显示全部楼层 |阅读模式
D3D11中的硬件反锯齿 SSAA/MSAA/EQAA/CSAA(3)

<div class="postbody"><div id="cnblogs_post_body">五 、EQAA/CSAA
         EQAA(enhanced quality AA)和CSAA(coverage sample AA)其实是同样的采样技术,EQAA是AMD的实现,CSAA是NV的实现,下面我以EQAA为例看看这两种AA的原理:
        在MSAA中,每个采样都有一个sample color缓冲相对应,这样在AA数目比较大的时候,比如16XMSAA,对memory的需求很大,为了节省内存带宽,就出现了EQAA/CSAA这些基于覆盖采样(coverage sample)的AA技术。
        所谓coverage sample,就是说这些采样不会有对应的sample图像输出,但会进行深度模版测试,最终在resolve 采样输出图象时候,这些coverage sample点会作为权重,计算在内。与coverage sample相对应就是color sample,这些采样有真正输出颜色缓冲。
  下图中EQAA的例子,标出了不同采样点的位置:
  
   
        下面我们以4f8X EQAA为例,看下EQAA是如何操作的,所谓4f,就是说有4个color sample点,8X就是共有8个sample,其中4个为coverage sample点,如下图所示:
  
        假设现在有2个fragement(就是2个mesh,覆盖到了这个像素),她们的颜色分别为(136, 0, 21), (0,111, 192),四个color sample点得到4个采样颜色输出,最终resolve后的颜色为((136,0,21)*5 + (0, 111, 192)*3)/8 = (85,47,111),可见coverage sample点虽然没有输出颜色缓冲,但可以作为权重,影响最终的颜色结果。
  
        在2个fragment的情况下4f8X EQAA实现了8XMSAA的效果,其实因为有四个color sample,在4个fragement情况下,也可以实现8XMSAA的效果(但不是一定实现,和fragment的分布有关),甚至5个fragment或者更多fragment,根据fragment的分布也有可能实现8XMSAA的效果,下面是4个fragment和5个fragment的图,可以看出由于fragment分布原因,4个fragment的图实现了8XMSAA的效果,但5个fragment的则没有:
  
  
  在D3D11中,AMD的显卡EQAA的设置对应关系如下表所示:
  
  NV的显卡CSAA的设置对应关系如下,相比之下AMD的EQAA可选组合更多。
  
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表