抗锯齿介绍

SSAA :超级采样抗锯齿

描述

最早期的全屏抗锯齿,方法简单直接,

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

大致过程为:首先,图像创建到一个分离的缓冲区,缓冲区图像分辨率高于屏幕分辨率,假设是2*1(或2x),那么缓冲区场景的水平尺寸比屏幕分辨率高两倍,若是2*2(或4x)抗锯齿,缓冲区图像的水平和垂直均比显示图像大两倍。像素计算加倍之后,选取2个或4个邻近像素,此过程称为采样。把这些采样混合起来后,生成的最终像素,拥有邻近像素的特征,那么像素与像素之间的过渡色彩,就变得更为近似,整个图像的色彩过渡趋于平滑。再把最终像素输出到帧缓冲,作为一幅图像存储起来,然后发到显示器,显示出一帧画面。每帧都进行抗锯齿处理,游戏过程中的所有画面都变得带有抗锯齿效果了。

优点

方法简单直接

缺点

消耗的显示资源非常大

参考

超级采样抗锯齿_百度百科 (baidu.com)

MSAA :多重采样抗锯齿

描述

一种特殊的超级采样抗锯齿(SSAA)。

来自于OpenGL。具体是MSAA只对Z缓存( Z-Buffer)和模板缓存(Stencil Buffer)中的数据进行超级采样抗锯齿的处理。可以简单理解为只对多边形的边缘进行抗锯齿处理。这样的话,相比SSAA对画面中所有数据进行处理,MSAA对资源的消耗需求大幅减少,不过在画质上可能稍有不如SSAA

优点

效果好,还原度很高

缺点

会额外消耗大量内存和带宽,

  1. 对于延迟渲染来说,GBuffer 本身就已经很大了,如果再使用 MSAA,额外的带宽消耗极大,
  2. 对于硬件来说,MSAA 对硬件的利用率很低,因为很多时候我们想要抗锯齿的部分,都只是在物体边缘或者高光变化的高频部分。其他颜色不怎么变化,比较低频的地方,其实是不需要抗锯齿效果的。使用 MSAA 进行大量物体的渲染时,很多带宽是被浪费的
  3. MSAA 是一种比较经典,但是目前显得略有些过时的抗锯齿方式。

参考

主流抗锯齿方案详解(一)MSAA - 知乎 (zhihu.com)

MSAA(多重采样抗锯齿)_百度百科 (baidu.com)

TXAA :时间性抗锯齿

描述

TXAA 是一种全新的电影风格抗锯齿技术,旨在减少时间性锯齿 (运动中的蠕动和闪烁)。 该技术集时间性过滤器、硬件抗锯齿以及定制的 CG 电影式抗锯齿解算法于一身。 要过滤屏幕上任意特定的像素,TXAA 需要使用像素内部和外部的采样以及之前帧中的采样,以便提供最高画质的过滤。 TXAA 在标准 2xMSAA 和 4xMSAA 的基础上改进了时间性过滤。 例如,在栅栏或植物上以及在运动画面中,TXAA 已经开始接近、有时甚至超过了其它高端专业抗锯齿算法的画质。TXAA 由于采用更高画质的过滤,因而与传统 MSAA 较低画质的过滤相比,图像更加柔和。

TXAA 将 MSAA 的强大能力与类似 CG 电影中复杂的解算过滤器相结合,因而生成的图像远比其它技术更加光滑。根据特定游戏中所实施的不同着色类型,TXAA 对性能的影响也略有不同。与 FXAA 等牺牲画质以换取最高性能的方法相比,TXAA 则是以牺牲性能来换取最高画质。 对于那些寻求最高画质抗锯齿效果和最高效性能的玩家来说,TXAA 是一个更好的选项。它可以让「刺客信条 3 (Assassin's Creed III)」和「使命召唤: 黑色行动 2 (Call of Duty: Black Ops 2)」等游戏的视觉效果无比出色。

优点

基于SSAA进行的优化 效果相对于FXAA 比较好。

缺点

注: 只有 NVIDIA® Kepler™ GPU 才支持 TXAA,而且玩家需要使用 GTX 600 系列或更高型号的显卡才能在游戏图形选项中启用这一特性。 如果你的系统未达到启用 TXAA 所需的要求,那么该选项会处于隐藏状态。 在静态屏幕截图中无法正确观察到 TXAA 的效果,只有在运动场景中才能观察到。

参考

TXAA | 技术 | GeForce (nvidia.cn)

TAA :时间性抗锯齿(THREEJS)

描述

TAA的原理和 SSAA 大致相同,都是每个像素点有多个采样点。但是不同与 SSAA 的方式,TAA (Temporal Anti-Aliasing) 综合历史帧的数据来实现抗锯齿,这样会将每个像素点的多次采样均摊到多个帧中,相对的开销要小得多。

优点

基于SSAA进行的优化 效果相对于FXAA 比较好。

缺点

相对于SSAA的开销要小,但是仍然比较吃内存

参考

主流抗锯齿方案详解(二)TAA - 知乎 (zhihu.com)

注意

threejs的 taaRenderPass 使用的时候 必须要在canvas的父级元素上面添加background-color(建议为黑色)

FXAA :快速近似抗锯齿

描述

传统MSAA(多重采样抗锯齿)效果的一种高性能近似值。它是一种单程像素着色器,和MLAA一样运行于目标游戏渲染管线的后期处理阶段,但不像后者那样使用DirectCompute,而只是单纯的后期处理着色器,不依赖于任何GPU计算API。正因为如此,FXAA技术对显卡没有特殊要求,完全兼容NVIDIA、AMD的不同显卡(MLAA仅支持A卡)和DirectX 9.0、DirectX 10、DirectX 11

优点

快速近似抗锯齿,消耗最低,低配置开这种抗锯齿不卡,

缺点

一种粗糙的模糊化处理, 影响清晰度

参考

主流抗锯齿方案详解(三)FXAA - 知乎 (zhihu.com)

SMAA :子像素增强抗锯齿

描述

SMAA是性耗比最佳的模式,用适量的资源得到比较满意的抗锯齿效果,FXAA和SMAA一样性能损失小,效果都一般,毕竟后处理抗锯齿,清晰度上都有所损失,SMAA较FXAA清晰些。致命的弱点在于锯齿抖动方面,别看它们的效果截图看着都不错,甚至比肩MSAA,但是一旦是实际玩,也就是动态画面,锯齿抖动就非常明显时间和空间两方面交替使用抗锯齿采样格式,4xMFAA 的性能代价仅相当于 2xMSAA,但是抗锯齿效果却与 4xMSAA相当

MSAA 是通过添加次像素点,来实现抗锯齿效果,需要消耗额外的内存

优点

类似FXAA的滤镜类抗锯齿。性能损耗小,效果一般,影响清晰度

缺点

动态画面中,锯齿抖动明显,需要额外消耗内存

参考

抗锯齿是什么意思?FXAA、SMAA、MSAA、TXAA等抗锯齿之间的区别 (tinyb.cn)

CSAA :覆盖采样抗锯齿

描述

是nVidia在G80及其衍生产品首次推向实用化的AA技术,也是目前nVidia GeForce 8/9/G200系列独享的AA技术。CSAA就是在MSAA基础上更进一步的节省显存使用量及带宽,简单说CSAA就是将边缘多边形里需要取样的子像素坐标覆盖掉,把原像素坐标强制安置在硬件和驱动程序预先算好的坐标中。这就好比取样标准统一的MSAA,能够最高效率的执行边缘取样,效能提升非常的显著。比方说16xCSAA取样性能下降幅度仅比4xMSAA略高一点,处理效果却几乎和8xMSAA一样。8xCSAA有着4xMSAA的处理效果,性能消耗却和2xMSAA相同。

优点

在MSAA基础上效能提升明显,性能消耗减半

缺点

Vidia GeForce 8/9/G200系列独享的AA技术

参考

抗锯齿是什么意思?FXAA、SMAA、MSAA、TXAA等抗锯齿之间的区别 (tinyb.cn)

CFAA :可编程过滤抗锯齿

描述

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

优点

待补充

缺点

待补充

参考

抗锯齿是什么意思?FXAA、SMAA、MSAA、TXAA等抗锯齿之间的区别 (tinyb.cn)

MFAA :多帧采样抗锯齿

描述

NVIDIA(英伟达)根据MSAA改进出的一种抗锯齿技术。目前只有使用 Maxwell 架构GPU的显卡才可以使用。在 Maxwell 上,英伟达推出了用于光栅化的可编程采样位置,它们被存储在随机存取存储器 (RAM) 中。如此一来便为更灵活、更创新的全新抗锯齿技术创造了机会,这类抗锯齿技术能够独特地解决现代游戏引擎所带来的难题,例如高画质抗锯齿对性能的更高要求。只要在NVIDIA控制面板里为程序开启MFAA并在游戏中选择MSAA就可以开启。画面表现明显强于同级别的MSAA,这种全新抗锯齿技术在提升边缘画质的同时能够将性能代价降至最低。

优点

待补充

缺点

目前只有使用 Maxwell 架构GPU的显卡才可以使用

参考

抗锯齿是什么意思?FXAA、SMAA、MSAA、TXAA等抗锯齿之间的区别 (tinyb.cn)

总结

FXAA:快速,效果差但还看得过去,吃资源少,开不开一般反响不大

MSAA:比FXAA更好但更吃资源,低配显卡一般开不到这个程度

SSAA:更吃资源,

TXAA:NVIDIA的技术,开了之后如果处于动态,锯齿消除的效果很明显,如果不动,那么可以看到很多锯齿。吃资源的水平比MSAA 4X稍低

各种抗锯齿效果的记录相关推荐

  1. android paint的抗锯齿效果

    前几天在做公司需求的时候用到自定义textview的功能.主要是判断textview在显示完文字之后还有没有足够的空间用来显示一些图片和其他的文字,这里其他的文字是使用cavans.drawtext函 ...

  2. pyqtgraph 在Opengl模式下开启抗锯齿效果

    pyqtgraph 在Opengl模式下开启抗锯齿效果 修改pyqtgraph源码文件pyqtgraph/widgets/GraphicsView.py def useOpenGL(self, b=T ...

  3. 【我的OpenGL学习进阶之旅】收集到的关于如何在OpenGL ES上使用MSAA(Multisample Anti-aliasing)实现抗锯齿效果的资料和源码

    文章目录 一.需求 1.2 OpenGL的MSAA功能不能在OpenGL ES上使用,你崩溃了吗? 1.3 OpenGL ES的抗锯齿在离屏渲染和在屏渲染上的不同需求 二.OpenGL ES上实现的M ...

  4. Antialiasing 抗锯齿效果(render to texture锯齿问题处理)

    很多时候需要把相机得texture渲染到texture上.但是效果往往不理想. 如图对比: 没有处理过得效果                                              ...

  5. unity3d Antialiasing 抗锯齿效果 之渲染效果提升

    废话不多上代码 C# (肯定是绑定在摄像机上面的,你懂的:注意摄像机一定要是Skybox或者SolidColor模式) using System; using System.Collections.G ...

  6. [引擎搭建记录] 时间性抗锯齿(TAA)

    知乎地址:https://zhuanlan.zhihu.com/p/64993622 我的知乎专栏:https://zhuanlan.zhihu.com/c_1099268510815010816 最 ...

  7. OpenGL 半透明效果的实现(混合)、雾效果 和 圆滑(抗锯齿)

    在前面的glColor总是忽略最后一个参数alpha,今天就来学习下这个参数的使用 在早上的光照球体的例子基础上进行演示,早上的例子是在白色的地面上有几个彩色的球体和一个类似于玉镯子的模型,利用半透明 ...

  8. Temporal Anti-Aliasing(时域抗锯齿TAA)

    首先说一下走样:一般分为时域走样(如旋转车轮)和空域走样(锯齿),但在 TAA 技术是采用时域相关叠加混合技术来解决空域走样的问题. 简单看一下空域抗锯齿 (Spatial Anti-Aliasing ...

  9. Unity游戏画面参数解析与应用:垂直同步、动态模糊、抗锯齿

    前言 最近会在B站刷到一些关于 30帧暴涨90帧! 高 中 低端显卡运行3A大作优化指南[干货向] 游戏画质设置教程 等等这样关于画面与性能调整的的视频,看完之后受益良多,UP主们经过实际测试获取到宝 ...

最新文章

  1. 《SAP FIORI 开发入门》课程答疑 第二期
  2. java 为什么重写equals一定要重写hashcode?
  3. CentOS7中安装图形界面
  4. Lombok — Java代码自动生成 开发利器
  5. idea 一直在build_让web开发部署提速 8 倍的一款 IDEA 插件,你有在用?
  6. 表单提交报错405的解决方式
  7. 服务器系统格式,服务器系统编码格式
  8. 宝塔定时任务执行php源码任务_在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现...
  9. 无法连接到WMI提供程序。你没有权限或者该服务器无访问
  10. Matlab 音频信号处理
  11. java dagger2_mvp+dagger2+retrofit2+rxjava 项目框架 最佳实践
  12. 苏炳添博士论文研究自己,奥运学术两兼顾
  13. 注册CSDN七年才发布第一篇博文是什么感觉
  14. CSS3实现旋转图片相册
  15. 【论文排版】参考文献的格式设置
  16. 《分布式虚拟现实系统(DVR)》(Yanlz+Unity+SteamVR+分布式+DVR+人工智能+边缘计算+人机交互+云游戏+框架编程+立钻哥哥+)
  17. Java求一元二次方程的根
  18. GitHub上一些有意思地址/有趣的网站:收藏链接
  19. k8s学习(二十四) 使用prometheus监控kubernetes集群应用
  20. 2020.7.22英谷实训日志

热门文章

  1. 计算机一级考试《MS Office》
  2. 【已解决】VS code源代码控制器显示5k+的修改文件
  3. python将矩阵顺时针旋转90度_在Python中将方形矩阵逆时针旋转90度的程序
  4. MFC扩展DLL添加对话框资源时对话框ID是“未声明标识符”
  5. 墨者学院Tomcat 远程代码执行漏洞利用
  6. c语言霍夫变换圆检测,Hough Transform(霍夫变换)检测Circle(圆)的几种方法
  7. 开局一张图帮你充分理解哈希表(散列表)
  8. 深信服软件测试实习面经
  9. 如何重新认知性能优化及其度量方法
  10. 主成分分析(PCA)原理分析Python实现