FSAA的的简单介绍

游戏画面中物体边缘怎么老是看上去像是长了很多毛刺一样?FSAA到底是干什么用的?通过什么原理来实现FSAA?上述问题对于硬件初学者来说的确是有些抽象难懂,不过看完以下的介绍,相信大家都会对FSAA有一个全新的认识。

锯齿的产生
    3D渲染分为顶点渲染和像素渲染两个部分。顶点渲染是构建3D图形基本骨架的过程,相当于为画面勾边,而像素渲染则是为画面着色的过程。着色过程中,像素是构成图形的最小单位,一副画面内每个像素都有它事先规划出来的具体坐标,当然我们把它们视为一个个小方块会更为形象。无论顶点渲染勾勒出来的是一辆汽车还是一栋房子,它都是由无数个小方块组成。既然是方块,那么肯定都是有棱角的,所以3D画面中的物体边缘难免会看上去像长了很多毛刺一样,这就是锯齿现象。
    全屏抗锯齿的原理和不同模式
    FSAA是Full Screen Anti-Aliasing的缩写,即全屏抗锯齿,是一种能够消除画面中图形边缘的锯齿,使画面看起来更为平滑的画面特效技术。它大致可分为以下几种模式。
    SSAA——超级采样抗锯齿
    人眼很难分辨超过300DPI(DPI:像素点每英寸)以上的彩色点。也就是说,一台对角线为15英寸的显示器,如果分辨率为3600×2700的话,那就没有做全屏抗锯齿的必要了,因为人的眼睛没办法分辨这么细的点。
    超级采样抗锯齿(SuperSampling Anti-Aliasing)就是把当前分辨率成倍提高(如当前分辨率为1024×768,开启2倍SSAA后,画面就放大到了2048×1536),然后把画面缩放到当前尺寸的显示器里。这样的做法实际上就是在显示尺寸不变的情况下提高分辨率,让单个像素变得极小,这样就能够大幅减轻画面的锯齿感了。不过由于是对整个显示画面的放大,因此它消耗的显示资源也非常大。
    MSAA——多重采样抗锯齿
    多重取样抗锯齿(MultiSampling Anti-Aliasing)的原理与超级采样抗锯齿相同。不过MSAA是寻找出物体边缘部分的像素,然后对它们进行缩放处理。由于只是对物体的外层像素进行缩放处理,忽略掉了不会造成锯齿的内部像素,所以显卡不会像处理SSAA那样需要庞大的计算量,因此MSAA比起SSAA来更有效率。

【Multisample: In OpenGL, when this feature issupported (it is an OpenGL 1.3 feature.), an additional buffer is added to the framebuffer that includes the color, depth, and stencil values. All primitives are sampled multiples per pixel, and the results are stored in this buffer. These samples are resolved to a single value each time the pixel is updated, so from the programmer's standpoint, it appears automatic and happens "behind the scenes". Natually, this extra memory and processing that must take place are not without their performance penalities, and some implementatins may not support multisampling for multiple rendering contexts.】
    CSAA——覆盖采样抗锯齿
    覆盖采样抗锯齿(CoverageSampling Anti-Aliasing)是NVIDIA G80系列出现时一并出现的抗锯齿技术。它的原理就是将边缘多边形里需要采样的子像素坐标覆盖掉,把原像素坐标强制安置在硬件和驱动程序预先算好的坐标中。这就好比采样标准统一的MSAA,能够最高效率地执行边缘采样,效能提升非常显著,同时资源占用也比较低。
    CFAA——Custom Filter Anti-Aliasing可编程过滤抗锯齿
    这种技术起源于AMD-ATi的R600家族。简单说CFAA就是扩大取样面积的MSAA,比方说之前的MSAA是严格选取物体边缘像素进行缩放的,而CFAA则可以通过驱动程序灵活地选择对影响锯齿效果较大的像素进行缩放,以较少的性能牺牲换取平滑效果。
    全屏抗锯齿的应用
    FSAA实际上是在显示器分辨率未达到一定高度时的辅助显示优化手段,伴随显示器分辨率不断提升,它的作用将越来越小。不过虽然目前显示器分辨已经有了显著提高,可要达到完全的平滑的效果仍然不够。
    SSAA模式理论上应该是效果最好的全屏抗锯齿模式,可是由于它对显示资源占用过高,所以并不实用。而和它效果接近的MSAA也同样遇到了同样的问题。目前最主流的CSAA和CFAA应该是最实用,最有效率的全屏抗锯齿模式。它们不仅有良好的平滑效果,同时对显示资源的占用率也不高。类似GeForce 9600GSO/GT、Radeon HD3850等显卡都能在分辨率较低的DirectX 10游戏中开启这种效果。

简单,但是实际的抗锯齿介绍相关推荐

  1. 各种抗锯齿效果的记录

    抗锯齿介绍 SSAA :超级采样抗锯齿 描述 最早期的全屏抗锯齿,方法简单直接, 超级采样抗锯齿就是把当前分辨率成倍提高(如当前分辨率为1024×768,开启2倍的SSAA后,画面放大到2048×15 ...

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

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

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

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

  4. 【NO.3】图形渲染,光照,抗锯齿简介,透明渲染排序简介

    <real-time提炼总结 第四章><Real-Time Rendering 3rd  第五章><unity shader 入门精要  第六章 > 图形渲染与视觉 ...

  5. 一种简单的抗锯齿算法

    在LCD等显示器上逐点绘制几何图像的时候, 往往对几何体的边缘采样不足, 这就会导致出现锯齿状不平滑的边缘. 为了尽量减弱这种现象,需要在斜线或物体边缘进行更密集的采样,然后根据一定的权重比例将色彩/ ...

  6. 抗锯齿相关技术介绍:MSAA、FXAA、SMAA、TXAA、MSAA

    在图像处理中,锯齿一直是一个大问题,因此图像中的抗锯齿(Anti_aliaing,简称AA),也被称为边缘柔化.消除混叠.抗图像折叠有损等.AA主要是处理图像有锯齿的边缘,使其图像更清晰清晰.下面有一 ...

  7. 何恺明团队新作:图像分割精细度空前,边缘自带抗锯齿,算力仅需Mask R-CNN的2.6%...

    鱼羊 乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI 又是何恺明超越何恺明. 其团队最新论文一出,图像分割又往前一大步: 消耗的资源变得更少,算力仅需Mask R-CNN的2.6%. 不 ...

  8. OpenGL基础43:抗锯齿

    一.走样与反走样 走样(Aliasing)就是锯齿化,反走样(Anti-aliasing)就是抗锯齿 只要玩过游戏,那么都应该对抗锯齿不陌生,不少游戏也都有关于抗锯齿的设置 如上图,放大的部分能很明显 ...

  9. 【ShaderToy】基础篇之再谈抗锯齿(antialiasing,AA)

    写在前面 在之前的基础篇中,我们讲到了在绘制点线时如何处理边缘的锯齿,也就是使用smoothstep函数.而模糊参数是一些定值,或者是跟屏幕分辨率相关的数值,例如分辨率宽度的5%等等.但这种方法其实是 ...

最新文章

  1. 【IntelliJ IDEA】快捷键
  2. LeetCode Increasing Triplet Subsequence(动态规划)
  3. 如何联机调试和发布程序(99$)
  4. Boost::context模块fiber的分段的测试程序
  5. 生产者消费者_【线程通信】生产者消费者模型
  6. OpenNI体感应用开发实战 (Kinect相机)
  7. Python爬虫代码示例
  8. 网页设计公众号相关资源网站
  9. 使用css实现产品分类,DIV+CSS实现京东商城分类适合所有版本
  10. Redis文档--详解redis
  11. QQ表情的发送与接收
  12. php后门 佛像,亲人离世之后,供奉的一些佛像以及神灵物品如何处理
  13. redis之十五(游标迭代器(过滤器)——Scan)
  14. html怎么制作扇形,css3绘制画圆、扇形
  15. 图像处理+机器学习相关资源整合
  16. 计算机锁屏打不开,电脑点锁屏锁不了怎么办
  17. 哪款分体式蓝牙耳机最好用?分体式蓝牙耳机推荐!
  18. PyCharm的安装与使用
  19. 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码
  20. github基础教程

热门文章

  1. GBase产品学习-GBase 8s中查看数据库
  2. Opencv2.4学习::边缘检测(4)Roberts算子
  3. HTTP 响应行及响应状态码
  4. js 伪造referer_详解php伪造Referer请求反盗链资源
  5. 硬盘安装FC6 linux
  6. 给FLASH加链接的方法
  7. 怎么给网页中的Flash上加超连接
  8. 云原生爱好者周刊:像运行容器一样运行虚拟机
  9. 大胆预测一下《数据结构》期末机考题
  10. 中专计算机毕业生登记表自我鉴定,中专毕业生登记表自我鉴定范文(精选5篇)...