抗锯齿技术简介

来源:互联网 发布:java逐行读取文件内容 编辑:程序博客网 时间:2024/04/29 20:30
虽然3D图形渲染技术的飞速进步给我们带来了一次次的视觉震撼,电影级的画面早已经不是遥远的梦想,但电脑在计算3D画面时所出现的锯齿效果仍是不可避免的,这种效果在物体边缘最为明显。画面上那些跳牙咧嘴的锯齿每每令我们如蟹在喉,不吐不快。为了消除这些碍眼的锯齿,抗锯齿技术应运而生,并在图形处理技术不断发展的推动下日趋成熟和完善。


1. FSAA抗锯齿技术


最早的抗锯齿技术来自于3DFX,名为FSAA (FuliSceneAnti-aliasing,全屏抗锯齿)。我们都知道,画面的分辨率越高,锯齿感就越不明显,FSAA也正是运用了这个原理。这项技术主要是将需要渲染的图像台辨率提升了一倍,来达到消除锯齿的效果。不过因为过于消耗显卡资源,加之当时受制于显卡的性能,无论是收购了3DFX的NVIDIA还是后来的 AMD,都没有继续沿用FSAA,而是在此基础之上推出了SSAA(SuperSampling Anti-Aliasing, 超级采样抗锯齿)、MSAA ( MultiSampling Anti-Aliasing,多重采样抗锯齿)、CSAA (CoverageSam piing Anti-Aliasing,覆盖采样抗锯齿)、CFAA (Custom Filter Anti-Aliasing,可编程过滤抗锯齿)技术。FSAA几经衍生仍然逃脱不了被新技术掩盖的事实,在MSAA过了辉煌的时候,我们迎来了新的抗锯齿技术,这就是MLAA技术!


2.MLAA抗锯齿技术


MLAA (morphological antialiasing,形态抗锯齿)是一种针对延迟渲染的后处理抗锯齿技术,最早是由Intel推出,目前NVIDIA、AMD的GPU及新游戏 也都支持此算法。


这种抗锯齿技术和常见的抗据齿技术不同,是在每一帧画面渲染结束后再进行处理,而且只是将图案的轮廓线模糊(注意:不是几何模型的轮廓线模糊),所以对显卡的需求理论上比普通抗锯齿要小,这样可以在多物体渲染时不会对系统造成太大的负担。而且由于MLAA是纯粹的后期处理,因此兼容性相当出色,可以被使用在各种渲染万法中和任何真他抗锯齿模式叠加,比如MLAA+ MSAA的处理等。


3.SRAA抗锯齿技术


SRAA的英文是Subpixel Reconstruction Antialiasing for Deferred Shading,中文意思为子像素重构抗锯齿技术。与MLAA一样,SRAA也是后处理渲染,但SRAA在抗锯齿的选择上与 MLAA有所不同。相对MLAA,SRAA技术进行了重要改进:对着色点的采样使用接近屏幕分辨率的级别,对于几何体的采样则提高精度,然后使用重构过滤器来提供一个近似估计的超分辨率图像,这个超分辨率图像被过滤处理后,成为与原始屏幕分辨率相罔的图像,从而避免了特定种类的过度模糊的问题。由于几何样本相较全着色计算而言所耗资源要小许多,所以SRAA能够用少得多的着色操作, 来实现逼近SSAA的画面质量,可以在保持算法性能的条件下生成与16xSSAA相媲美的画面。


4.SMAA抗锯齿技术


SMAA技术的全称为 Enhanced Subpixel Morphological Antialiasing,增强型子像素形态学反锯齿,与FXAA一样同为后期处理抗锯齿技术,可以提供基于过滤算法的通用图像抗锯齿解决万案。


SMAA技术来源于MLAA,墓本处理流程建立在Jimenez优化改造后的MLAA算法之上。SMAA改进的边缘、模式检SMAA画质、性能对比测,可以对MLAA无法实现的抗锯齿处理部分进行抗锯齿处理,因此效果更为优秀—SMAAS2x模式带来的抗锯齿画质,已经和SSAA 16x不相上下,而速度则和之前抗锯齿速度最快的MLAA相当。


当然,SMAA也并非完全没再缺点。由于SMAA锯齿检测特征数量比MLAA多16倍,因此为了降低性能损耗,SMAA自然要对对比度上的纹理进行降级采样和双线性过滤来取代三线性乃至各向异性过滤,这导致SMAA处理地部分场景时阴影和纹理会出现模糊不清的情况,清晰度不如MLAA和SSAA 16x。当然,瑕不掩瑜,能同时拥有SSAA 16x抗锯齿效果和MLAA的抗锯齿速度,SMAA牺牲这点画质所造成的问题并不算大。


可以说,随着玩家要求不断提高,抗锯齿技术也在快速发展中。虽然新一代抗锯齿技术所实现的效果与完美画质还有一定的差距,但我们相信随着开发人员的努力,终有一天游戏将是一个完全没有锯齿的虚拟世界!
本文由我的电脑http://www.wwwics.com整理,欢迎免费下载
0 0
原创粉丝点击