MSAA的理解(个人向)

1. 大致流程

这里直接给出流程

  1. 首先,深度/模板缓冲颜色缓冲都是4x于原本的缓冲区。

  2. 除了深度/模板缓冲颜色缓冲,还有个Coverage Mask 的纹理,它的大小应该是等于原缓冲区,它的R G B A通道分别对应4个子像素采样点的覆盖情况

  3. 光栅化阶段,对于当前三角形片元,针对每一个子像素采样点(如上图,是4个)

    1. 进行覆盖判断Coverage Mask):当前子像素采样点,是否在这个三角形片元
    2. 裁剪scissor reject)完再执行是必须的,要得到coverage mask,不仅仅看4个sample中是否被三角形覆盖到(光栅化),还要看是否在scissor内部。
  4. 如果Coverage Mask 的值是(0,0,0,0),则不进行后续操作——流程终止。

  5. 执行像素着色器,进行光照计算。只要覆盖了,无论覆盖多少个采样点,都使用当前片元的颜色进行fragment shading

  6. 进行遮挡判断深度测试)。

  7. 深度怎么来的?光栅化的时候应该做了:对三角形片元的三个顶点的深度,进行线性插值,得到像素中心处的深度(举个例子:红色梯形的三个覆盖采样点 ( 0 , 2 , 3 ) (0,2,3) (0,2,3),其深度都是一致的,都是当前片元,根据像素中心绿点,插值得到的深度);然后和4个子像素采样点的深度进行比较(GL_Less)(上一个三角形片元的深度)

  8. 深度测试通过,而且Coverage Mask 也通过的,则将fragment shading得到的颜色,copy到对应的color buffer 4x的位置,例如:只覆盖了采样点1,那么就只给采样点1复制颜色

  9. 一般来说,绘制一个物体之后,不会立马进行resolving,而是继续绘制场景

  10. 时机成熟后(例如:场景都画完了),进行Resolving操作,其中,像素的颜色可以简单的使用如下方法求出(均值方法):
    C f i n a l = ∑ i = 1 4 C s a m p l e _ i 4 C_{final}=\frac{\sum_{i=1}^{4}{C_{sample\_i}}}{4} Cfinal=4i=14Csample_i
    Depth\Stencil 则可以使用 MinMaxSample0 三种模式。

    像超采样一样,过采样的信号必须重新采样到指定的分辨率,这样我们才可以显示它。这个过程叫解析(resolving)。在它最早的版本里,解析过程是在显卡的固定硬件里完成的。一般使用的采样方法就是一像素宽的box过滤器

在这里插入图片描述

2. SSAA和MSAA

  • SSAA所抵抗的抗锯是两个方面:
    • 一个方面是:光栅化阶段会产生锯齿(比如三角图元的边界)
    • 另一个方面是pixel shader stageshader的本质是:通过shader输入参数,利用一个公式计算出结果,这个公式其实是个连续函数,而我们的shader执行次数确是有限的,所以本质上跟几何锯齿的产生原因一样,都是用离散有限的数据,表示一个连续的事物,如果要抗shader锯齿,那也自然而然是提升shader执行的次数频率,SSAA正是这样做的)。
  • MSAA只是做了几何阶段的抗锯齿(多生成了片元),而忽略shader方面的锯齿(这个就是为什么只算一次fragmen的原因,因为他不做shader方面的抗锯齿,所以MSAA的渲染质量其实是比SSAA要低的,其实shader产生的锯齿大多数情况下都没有几何锯齿那样明显,所以MSAA用这个细微的损失换来了性能上的提升)

3. 参考资料

深入剖析MSAA
MSAA的几个疑问
现代图形API的MSAA

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JMXIN422

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值