当前位置: 首页 >  网站大师 >  旋转网格超采样(Rotated Grid Supersampling)

旋转网格超采样(Rotated Grid Supersampling)

导读:旋转网格超采样(Rotated Grid Supersampling).这是对文章 4-Rook Antialiasing (RGSS) @Alan Wolfe 的翻译.原文采用MIT协议发布.上一篇文章讲解了采样点呈5点梅花状的梅花抗锯齿(Quincunx.effect),该抗

旋转网格超采样(Rotated Grid Supersampling)

这是对文章 4-Rook Antialiasing (RGSS) @Alan Wolfe 的翻译

原文采用MIT协议发布

上一篇文章讲解了采样点呈5点梅花状的梅花抗锯齿(Quincunx effect),该抗锯齿技术分享4个采样点给周围的4个像素,使得每个像素只需要渲染2个采样点就能得到总共5个采样点。

之前我提到了ShaderToy不允许在ShaderToy Demo上进行材质渲染,为了展示出梅花抗锯齿的效果,我实际上对每个像素进行了5次采样。

如果你不能够或者不想渲染两次场景,也许4-Rook Antialiasing(译者注:N-Rook Antialiasing是RGSS的别称)正是你所需要的方案。

4-Rook Antialiasing 在每个像素做4次采样,采样点位置和权重如下所示。这种采样方法有时候被称为旋转网格超采样(Rotated Grid Supersampling),这种技术是N-Rook supersampling技术的一种特例,N-Rook supersampling 是一种在位置不在同一直线的采样点的上采样的技术。N-Rook supersampling 可以防止水平或垂直走样现象。

有趣的是,4-Rook AA 的模糊问题看起来比梅花抗锯齿要轻。直觉上,这个结论是对的。因为4-Rook AA每个像素的信息来源于像素内的4次子像素,而梅花抗锯齿每个像素的信息来源于像素内的5个子像素。因此看起来比梅花抗锯齿要来的清晰,但性能上的消耗4-Rook AA比较昂贵:因为4-Rook AA的每个像素需要采样4次子像素,而梅花抗锯齿的5个子像素中的4个子像素位于像素的边界,因为其信息与其他像素共享,因此在平均下每个像素只需要采样2次子像素就能完成渲染。

我认为SSAA与模糊Blur的区别是,Blur不需要额外的信息就能完成运算,而SSAA则需要。梅花抗锯齿有点像是介于上述两种技术之间的技术:它采样了一个全新的子像素,并重用了4个子像素,4-Rook Antialiasing 则是 完全重新采样了它所需的4个子像素。

当然你也可以通过渲染四次画面来实现抗锯齿,每一次渲染给予不同的偏差,最后计算平均值即可。

Output[x][y] = (A[X][Y] + B[X][Y] + C[X][Y] + D[X][Y])/4

下面是我编写的4-rook anti aliasing的Demo:

下面是采用梅花抗锯齿的渲染Demo,注意下图看起来要比上图要模糊一点(注意红色和蓝色矩形的边缘部分),其螺旋方块图案也看起来不怎么样(看起来走样程度更高?),并且背景看起来也比4-rook anti aliasing的版本要暗一点。

Shadertoy: 4-Rook Antialiasing (RGSS)

内容
  • 三维模型轻量化在移动应用场景的如何发挥作用
    三维模型轻量化在移动应用场景的如
    2023-12-01
    在移动应用场景中,三维模型的重量对于应用的性能、流畅度和用户体验都有很大的影响。而三维模型轻量化技术可以通过减少模型数据
  • 旋转网格超采样(Rotated Grid Supersampling)
    旋转网格超采样(Rotated
    2023-12-06
    旋转网格超采样(Rotated Grid Supersampling).这是对文章 4-Rook Antialiasin
  • gitlab ci 集成 eslint/prettier/tsc 做代码审查,并使用 eslint 输出作为显示代码质量
    gitlab ci 集成 esl
    2023-12-09
    前言.想自动化一下公司里代码的部分审查,最初想用 reviewdog 的,但是公司的域名基本都在 VPN 中访问的,gi
  • 什么是软件供应链?
    什么是软件供应链?
    2023-12-05
    1 软件供应链定义.需方和供方基于供应关系,开展并完成软件采购、开发、交付、获取、运维和废止等供应活动而形成的网链结构。
  • 在idea/webstorm等terminal运行命令报错:Command rejected by the operating system没有权限【已解决】
    在idea/webstorm等t
    2023-12-10
    在idea/webstorm等编译器terminal窗口运行命令报错:Command rejected by the o
  • 实时光线追踪(3)Ray Casting
    实时光线追踪(3)Ray Cas
    2023-12-01
    目录.硬件光追(Hardware Ray Tracing).加速结构(Acceleration Structure,AS