winform 填充圆形 锯齿_Aniti-Aliasing抗锯齿知识总结

c91c46a95365adbd0124323b5500bd66.png

在开始本文前先发招聘,目前团队组建才刚刚开始,技术团队的定位希望是进行比较长线的技术沉淀和积累,这里如果有Houdini经验和SD流程经验的同学可以多多私聊我,其他职位也虚位以待。

FrankZhou:游戏研发人才招聘-鹅厂/猪厂/猫厂/宇宙厂​zhuanlan.zhihu.com
88dfe9e764b0ef60d8feb9e9f59f0a9b.png

抗锯齿(英语:anti-aliasing,简称AA),也译为边缘柔化、消除混叠、抗图像折叠有损等。它是一种消除显示器输出的画面中图物边缘出现凹凸锯齿的技术,那些凹凸的锯齿通常因为高分辨率的信号以低分辨率表示或无法准确运算出3D图形坐标定位时所导致的图形混叠(aliasing)而产生的,反锯齿技术能有效地解决这些问题。它通常被用在在数字信号处理、数字摄影、电脑绘图与数码音效及电子游戏等方面,柔化被混叠的数字信号。

产生原因

高分辨率下的来源信号或连续的模拟信号能够存储较多的数据,但在通过采样(sampling)时将较多的数据以较少的数据点代替,部分的数据被忽略造成取样结果有损,使机器把取样后的数字信号转换为人类可辨别的模拟信号时造成彼此交叠且有损,在声音中,便会出现刺耳、不和谐的音调或是噪音。我们现在的游戏都是采用光栅化的技术,也就是阴极射线管显示器(CRT),它通过电子束的水平运动(行扫描)与垂直运动(场扫描),它的运算是基于像素进行的,因此我们看到的锯齿就是放大后的像素。

在3D绘图时,每个图形由像素组成,每段瞬间画面由帧组成,因为屏幕上的像素有限,如果要表现出多边形的位置时,因技术所限,使用绝对坐标定位法是无法做到的,只能使用在近似位置采样来进行相对定位。由于没有足够的采样来表现出3D世界中的所有物品的图形,所以在最后图像显示上,这些现象便会造成在物品与物品中过渡的边缘就会产生波浪状、圆形、锯齿和闪烁等有损现象,严重影响了画面的质量。

AA的方案大集合

SSAA-超级采样抗锯齿

人眼很难分辨超过300DPI(DPI是“dot per inch”的缩写。顾名思义,就是指在每英寸长度内的点数。)以上的彩色点。也就是说,一台对角线为15英寸的显示器,如果分辨率为3600×2700的话,那就没有做全抗锯齿的必要了,因为人眼无法分辨那么细的点了。

超级采样抗锯齿(SuperSampling Anti-Aliasing)就是把当前分辨率成倍提高(如当前分辨率为1024×768,开启2倍的SSAA后,画面放大到2048×1536),然后再把画缩放到当前的显示器上。这样的做法实际上就是在显示尺寸不变的情况提高分辨率,让单个像素变得极小,这样就能够大幅减轻画面的锯齿感了。不过是由于对整个显示画面的放大,因此它消耗的显示资源也是非常大的。

MSAA-多重采样抗锯齿

多重采样抗锯齿(MultiSampling Anti-Aliasing)的原理与超级采样抗锯齿相同,不过MSAA是寻找出物体边缘部分的像素,然后对它们进行缩放处理。由于只是物体的外层像素进行缩放处理,忽略掉了不会千万锯齿的内部像素,所以显卡不会像处理SSAA那样需要庞大的计算量,因此MSAA比起SSAA来更有效。

CSAA-覆盖采样抗锯齿

覆盖采样抗锯齿(CoverageSampling Anti-Aliasing)是nVidia G80系列出现时一并出现的抗锯齿技术。它的原理是将边缘多边形里需要采样的子像素坐标覆盖掉,抒原像素坐标强制安置在硬件和驱动程序预告算好的坐标中。这就好比采样标准统一的MSAA,能够最高效率地执行边缘采样,交通提升非常明显,同时资源占用也比较低。

CFAA-可编程过滤抗锯齿

可编程过滤抗锯齿(Custom Filter Anti-Aliasing)技术起源于AMD-ATI的R600家庭。简单地说CFAA就是扩大取样面积的MSAA,比方说之前的MSAA是严格选取物体边缘像素进行缩放的,而CFAA则可以通过驱动和谐灵活地选择对影响锯齿效果较大的像素进行缩放,以较少的性能牺牲换取平滑效果。显卡资源占用也比较小。

FXAA-快速近似抗锯齿

相比于MSAA,FXAA的目标是速度更快、显存占用更低,还有着不会造成镜面模糊和亚像素模糊(表面渲染不足一个像素时的闪烁现象)的优势,而代价就是精度和质量上的损失。

按照FXAA技术开发者Timothy Lottes的说法,GeForce GTX 480利用FXAA Preset 2(第二种预设)处理一帧1920×1200分辨率画面时所需时间不到1毫秒。它的有点很突出运行于游戏渲染管线的后处理阶段,不依赖于任何GPU计算的API,对于显卡没有什么特殊要求,再PC上也完全兼容NVIDIA和AMD的不同的显卡

TXAA-快速近似抗锯齿

它是一种全新的电影风格抗锯齿技术,旨在减少时间性锯齿 (运动中的蠕动和闪烁)。 该技术集时间性过滤器、硬件抗锯齿以及定制的 CG 电影式抗锯齿解算法于一身。 要过滤屏幕上任意特定的像素,TXAA 需要使用像素内部和外部的采样以及之前帧中的采样,以便提供超级高画质的过滤。 TXAA 在标准 2xMSAA 和 4xMSAA 的基础上改进了时间性过滤。 例如,在栅栏或植物上以及在运动画面中,TXAA 已经开始接近、有时甚至超过了其它高端专业抗锯齿算法的画质。由于它采用更高画质的过滤,因而与传统 MSAA 较低画质的过滤相比,图像更加柔和。TXAA 2X可提供堪比8X MSAA的视觉保真度,然而所需性能却比2X MSAA相类似。Temporal AA主要是为了修复场景帧率小于运动物体运动速度的锯齿问题,当帧率太低时候,运动的物体就会一卡一卡,为了避免这种造成的锯齿,原理上帧率刷新速度应该大于两倍运动速度才行。TXAA就是为了修复这种情况。比如高速旋转的轮子用这种AA就会有很好的效果。TXAA对于非常简单的物体(比如圆盘)可以在image space,对于特别复杂的几何体,就需要在object space之内进行以上算法的估算。这种AA在实现的时候,可能会依赖motion vector buffer或者前一帧的变换矩阵来找到上一帧像素对应位置,然后做一些blur。

MFAA-多帧采样抗锯齿

NVIDIA的一种新抗锯齿技术,只有再Maxwell架构GPU的显卡才可以使用,是根据MSAA的改进,MFAAx2的抗锯齿效果就有MSAAx4的水平,但是游戏帧数要比MSAAx4高10帧左右。MFAA技术简单来说就是在相邻的2帧里取样来进行抗锯齿处理,效果比直接取样好。

MLAA-形态抗锯齿

它全称Morphological Antialiasing,意为形态抗锯齿是Intel AMD推出的完全基于CPU处理的抗锯齿解决方案。对于游戏厂商使用的MSAA抗锯齿技术不同,Intel最新推出的MLAA将跨越边缘像素的前景和背景色进行混合,用第2种颜色来填充该像素,从而更有效地改进图像边缘的变现效果,这就是MLAA技术。它同样是一种后处理主要是寻找特定的图象像素指尖的不连续性,在有些图像中梯度幅值较大的并不是边缘点来确定预定模式和确定渲染的图形,在预定模式中进行领里边缘色彩混合处理,确定模式中相应的模板,这样再多的物体渲染时也不会对于系统造成太大的负担,显示的频移如果超过Nyquit的极限时,图象色彩如果发生混叠现象,那么图象会失真。

CTAA - 电影时间抗锯齿

CTAA全称Cinematic Temporal Anti-Aliasing,它能让所有Unity用户实时获得下一代离线Cinematic Render Quality结果,特别是在使用后期效果(如布卢姆或景深)(包括在阿尔法测试边缘进行混叠)时,减少和消除高光亮度和明亮像素的混叠。作为时间(基于时间)的过程,从过去和外推的未来帧收集新的像素数据,用于基于速度信息的最终重建,性能大致相当于标准FXAA。主要为VR Ready服务

EQAA - 增强型抗锯齿

EQAA(enhanced quality AA)是AMD的实现,在MSAA中,每个采样都有一个sample color缓冲相对应,这样在AA数目比较大的时候,比如16XMSAA,对memory的需求很大,为了节省内存带宽,就出现了EQAA这些基于覆盖采样(coverage sample)的AA技术。 所谓coverage sample,就是说这些采样不会有对应的sample图像输出,但会进行深度模版测试,最终在resolve 采样输出图象时候,这些coverage sample点会作为权重,计算在内。与coverage sample相对应就是color sample,这些采样有真正输出颜色缓冲。它增加的是coverage.

CSAA- 覆盖型抗锯齿

CSAA是NV的实现,CSAA(coverage sample AA)和EQAA(enhanced quality AA)和其实是同样的采样技术,其实就是能够在使用同样容量的显存基础上带来更好的画质,兼容自适应AA,超级采样抗锯齿(SSAA),形态抗锯齿(MLAA),它的质量增加的是color的数量.

SMAA-亚像素形态抗锯齿

SMAA(Subpixel Morphological Antialiasing) 是目前效果和效率相对最好的AA方法,基于MLAA的寻边算法,相比于传统的MSAA的耗费大,TXAA(tmporal AA),FXAA造成比较糊的效果,SMAA是AA算法首选。

过亮和锯齿的常见问题

  • 角色
    • 模型结构过多
    • 边缘有亮边
      • fresnel处理
      • 法线突变
        • 模型结构本身有锯齿有亮边
        • 测试结构有锯齿和亮边
    • cube锯齿
    • 法线结构有亮边(弱化法线抗噪)
      • 降低低mip的法线强度
      • 使用mip时加一个bias(tex2Dbias),更快的切换到mio
  • 场景
    • mip溢出
      • uv到贴图慎重处理
    • 纹理线条锯齿
      • 过细的纹理结构,在处理多块拼接时候需要填充间隔
    • 高光线条的锯齿
      • 太细腻的高光移动时会抖动
      • 过细并且过强的法线结构会产生高光噪点
    • 贴图没对准,颜色突变带来亮边

[1]: 七大主流抗锯齿浅析 - 借你一秒 - CSDN博客

[2]:抗锯齿技术深度解析 - fishmai的专栏 - CSDN博客

[3]: 锯齿与抗锯齿技术介绍 | TwinklingStar

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值