zoukankan      html  css  js  c++  java
  • D3D11中的硬件反锯齿 SSAA/MSAA/EQAA/CSAA(3)

    五 、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的例子,标出了不同采样点的位置:

    image

          下面我们以4f8X EQAA为例,看下EQAA是如何操作的,所谓4f,就是说有4个color sample点,8X就是共有8个sample,其中4个为coverage sample点,如下图所示:

    image

          假设现在有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点虽然没有输出颜色缓冲,但可以作为权重,影响最终的颜色结果。

    image

          在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的则没有:

    image

    image

    在D3D11中,AMD的显卡EQAA的设置对应关系如下表所示:

    image

    NV的显卡CSAA的设置对应关系如下,相比之下AMD的EQAA可选组合更多。

    image

  • 相关阅读:
    java设计模式——多例模式
    Java多例模式
    设计模式(四)——多例模式
    IoC是一个很大的概念,可以用不同的方式实现。
    现有的框架实际上使用以下三种基本技术的框架执行服务和部件间的绑定:
    IOC关注服务(或应用程序部件)是如何定义的以及他们应该如何定位他们依赖的其它服务
    IoC最大的好处是什么?
    Java – Top 5 Exception Handling Coding Practices to Avoid
    @Spring MVC请求处理流程
    Spring Bean的生命周期(非常详细)
  • 原文地址:https://www.cnblogs.com/mikewolf2002/p/2785441.html
Copyright © 2011-2022 走看看