(转)完美画质 3D游戏反锯齿技术浅析 .

完美的画面已经离我们不再遥远——反锯齿技术浅析

不管现今的游戏画面有多完美,人物和环境有多真实,但游戏画面的构成的主要方式仍然没有得到改善:一帧画面由成千上万像素构成。这意味着物体多边形的轮廓最终是锯齿状的图形。所以画面质量不可能达到理想的标准,除非完全消除“锯齿”。 别担心,精美的画面品质是要牺牲速度的代价来换取的,并且各大显卡厂商都有自己独到的反锯齿技术,他们新的图形加速卡都纷纷支持全屏抗锯齿。完美的画面已经离我们再遥远。

超级采样(Supersampling) 

无论是什么样的抗锯齿技术都是在超级采样技术的基础上发展而来的。在超级采样技术中,画面里的每一个像素点都被拆分成了几个子像素点,然后对它们进行单独处理后分别放入缓冲区。在整个帧的像素都放入缓冲区后接下来就执行反操作,依照模板的式样对拆分的像素采用过滤或“聚合”处理重新生成新的像素。在超级采样期间,画面以较高的分辨率建立,然后依照适当的模板样式进行过滤。(如图1、2)如果我们在800X600的分辨率下打开GF2的4X反锯齿功能后,显卡所表现出的性能将与在1600X1200模式下所表现出的性能相等。由于超级采样消耗了巨大的系统资源,在使用超级采样的反锯齿功能时系统性能的下降非常明显。

多重采样(multisampling)

NVIDIA在GeForce3上采用的多重采样往往被人们误解为超级采样技术,实际上NVIDIA的多重采样技术是超级采样技术的一种变形。 NVIDIA在GeForce3/GeForce4Ti/GeForce4 MX中所采用的多重采样与其在GeForce2中采用的超级采样的主要区别在于:芯片在对同一幅图像进行处理时所处理的子像素的数量不同。如果我们想得到平滑的画面,仅仅对其多边形边缘进行处理就够了。NVIDIA在执行多重采样时有一个特点:在对一个像素点进行着色处理时,不仅仅只对其本身的子像素进行采样,也可以同时对其周边数个像素的子像素进行采样,邻接子像素的图像属性也被包括了进来,影响最终该像素的颜色属性。这样参与计算的子像素样本数目也由原来的2个变为5个。(如图3)

GF3在打开这种全屏抗锯齿技术时,在多边形的边缘上感觉比使用超级采样技术时平滑得多,但性能的下降却不是很明显。(如图4、5)建议有GeForce3以上显卡的朋友打开它。

视觉平滑(smoothvision)

ATI则有自己的反锯齿技术——视觉平滑。该技术利用一个抖动取样表,灵活控制取样的位置变化。这样对一个每组16个样本的取样实际上通过抖动取样表的控制只抽取了其中8个样本(如图6) 应该说视觉平滑smoothvision与超级采样supersampling相比并没有多少优势,在RADEON 8500上所表现出来的实际效果确实教人不敢恭维。开启反锯齿功能后还是会引起性能的下降。因此RADEON 8500在打开抗锯齿功能后自动降低了纹理的细节等级,从而降低了对显存带宽的吞吐量。但是纹理的质量变得非常糟糕。(如图7、8没有打开全屏反锯齿,如图9、10 使用smoothvision 6x)

各位有RADEON 8500的朋友不要着急,我们还可以通过其它的技术来弥补这个缺陷:只需要打开各向异性过滤,就可以用过滤提高纹理的质量。RADEON 8500开启各向异性过滤后性能的损失非常小,而画面质量却提升不少。

16倍全屏幕抗锯齿(FAA-16X)

Martox在Parhelia-512中使用的抗锯齿技术明显优于其它公司。这个革命性的方法对系统的性能影响最低,而且所能达到的消除锯齿的效果也是最好。对于支持FAA-16X的应用程序,Parhelia-512职能的只针对三角形边缘的像素进行柔化,我们在游戏中看到的锯齿都是产生在图形的边缘部分,物体内部根本就不会看到,然后再用上16倍取样,同时还能保留物体内部像素的清晰尖锐,这样就达到了整个画面的柔化效果。由于一般边缘的像素只占有整个画面的很少一部分,所以针对边缘的16倍柔化抗锯齿也不会减少太多的性能。(如图11有Parhelia-512的朋友们,不打开FAA-16X可就亏了!)

高分辨率代替反锯齿

其实要消除锯齿,不一定仅仅用显卡中的反锯齿特效,我们还有一个非常简单的办法——提高分辨率。当分辨率达到一个较高的水平,锯齿也就变得不那么明显了。例如,当分辨率在水平方向上扩大A倍,在垂直方向上扩大B倍,显示器上的物理像素的尺寸实际上变小了,像素的面积事实上缩小了AXB倍。锯齿的幅度也缩小了相同的倍数。

但是想要达到超级取样或4X多重取样的效果,你必须将分辨率在水平方向和垂直方向同时扩大一倍(例如800X600变为1600X1200,1024X768变2048X1536)。当你将显示器的分辨率调到最大值时,你必须忍受60Hz或更低的刷新率。而反锯齿特效所带来的性能下降相对于提高分辨率来说要小一些,尤其是使用Parhelia-512的FAA-16X看起来更划算。总而言之,不是打开全屏反锯齿,就就是提高分辨率。
我们以Homeworld: Cataclysm的某个场景为例比较一下。

最初没有打开全屏反锯齿,舰队看起来模糊的可怜,很难区分舰队单元的机种,而且飞船的轮廓几乎辨认不出来。(如图12、13、14)

打开全屏反锯齿的效果较好,虽然整个画面都变得模糊起来,但仍旧辨认得出飞船的外形。(如图15、16、17)

在提高了分辨率后整个图像清晰分明,感觉比打开反锯齿特效时画面更清楚,但其仔细观察边缘还是有一些细小的锯齿。(如图18、19、20)

反锯齿和提高分辨率都为我们提供了高质量的画面。选择那一个就看你的个人的喜好了。

速度VS.画质

全屏反锯齿没有得到广泛的应用的主要原因是该技术会带来明显的性能下降。采样倍数越高,性能的下降就越明显。比如,2X超级采样使显卡的性能下降了将近一倍,4X的情况则是4倍,6X时则是惊人的6倍。
这就要求你更了解自己显卡的性能,选择适合自己显卡性能的抗锯齿倍数。如果你有像RADEON 8500这样的显卡再加上强劲的CPU和内存,即使是在“heavy”SMOOTHVISION模式下1024X768/32bit运行游戏,速度也还是可以让人接受的。对那些相对较早的显卡NVIDIA GeForce2 MX, PowerVR/STM Kyro/Kyro II, SiS 315等等来说,由于本身性能就不是很高,显卡在普通模式下运行都比较吃力,再加上仅仅支持超级采样,因此在打开全屏反锯齿功能后,性能下降的相当厉害。这种情况下,只能是降低分辨率来运行游戏了,想想看800X600分辨率下你得到的却是1600X1200下的性能和不如1024X768的画质,那么我们还不如不开反锯齿功能。游戏画面质量同FPS总是矛盾的,对于相对有限的计算机性能来说鱼和熊掌不兼得。在激烈的CS对战中又有谁会静下心来看对面2m内敌人手中的Ak边角是不是有锯齿呢?

转载于:https://www.cnblogs.com/lancidie/archive/2012/01/20/2327953.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

业余时间学数据分析,如何快速上手

广泛被应用的数据分析谷歌的数据分析可以预测一个地区即将爆发的流感,从而进行针对性的预防;淘宝可以根据你浏览和消费的数据进行分析,为你精准推荐商品;口碑极好的网易云音乐,通过其相似性算法,为不同的人…

64位Visual Studio 2022,微软在下一盘大棋!

有没有跟我一样奇怪过,都2021年了,用的还是VS2019?原来微软是憋大招去了,4月18号Amanda的一篇博文宣布了一则重磅消息——Visual Studio 2022 首个预览版将于今年夏季发布 ,并且终于成为万众期待的 64 位版&#xff01…

【重磅】MIT发布2018年“全球十大突破性技术”

“有些技术已经应用多年,有些则是意外之喜。无论如何,以下是我们认为将在未来的几年对我们的工作和生活产生巨大影响的技术突破。”北京时间2018年2月21日,《麻省理工科技评论》揭晓了2018年“全球十大突破性技术”,这份全球新兴科…

[Stardust]星尘配置中心

在分布式系统开发中,配置中心必不可少。在中通几年时间里,为了配合大数据计算平台,统一管理数百个微小应用,设计了一套轻量级配置中心。星尘配置中心在其理念基础上改进,针对中小团队而全新设计!源码&#…

大数据可视化设计到底是啥,该怎么用

大数据可视化是个热门话题,在信息安全领域,也由于很多企业希望将大数据转化为信息可视化呈现的各种形式,以便获得更深的洞察力、更好的决策力以及更强的自动化处理能力,数据可视化已经成为网络安全技术的一个重要趋势。文章目录一…

WPF 如何实现颜色值拾取

WPF开发者QQ群: 340500857 前言如何进行颜色值拾取?这里采用的是调用WindowsAPI进行实现。吸取 沙漠尽头的狼 的建议多写一些文字进行描述。效果图如下:第一步 注册WindowsAPI 代码如下:[DllImport("user32.dll")]stati…

仿Google+相册的动画

在使用Google的时候,查看某一相册,会经常看到,如下图所示的动画效果。 鼠标移入、移出时均有动画效果,咋一看估计是使用了css3的transform属性来实现动画效果的。 在网上搜索“Google 相册 效果”的时候发现有人使用CSS3做了这样的…

看见到洞见之引子(二)机器学习算法

《看见到洞见》系列文章汇聚、分享的是绿盟科技创新中心对于数据分析在安全领域应用的技战术思考与经验,力求由浅入深层次递进,实战到方法论双线剖析。此文为系列文章之引子第二篇,深入浅出的对常用的数据分析和机器学习的算法进行介绍。在上…

一图看懂 ASP.NET Core 中的服务生命周期

翻译自 Waqas Anwar 2020年11月8日的文章 《ASP.NET Core Service Lifetimes (Infographic)》 [1]ASP.NET Core 支持依赖关系注入(DI)软件设计模式,该模式允许我们注册服务、控制如何实例化这些服务并将其注入到不同的组件中。一些服务可以在…

看见到洞见之引子(一)机器学习算法

《看见到洞见》系列文章汇聚、分享的是绿盟科技创新中心对于数据分析在安全领域应用的技战术思考与经验,力求由浅入深层次递进,实战到方法论双线剖析。此文为系列文章之引子第一篇,深入浅出的对常用的数据分析和机器学习的算法进行介绍。文章…

支持向量回归代码_RDKit:基于支持向量回归(SVR)预测logP

RDKit一个用于化学信息学的python库。使用支持向量回归(SVR)来预测logP。 分子的输入结构特征是摩根指纹,输出是logP。代码示例:#导入依赖库import numpy as npfrom rdkit import Chemfrom rdkit.Chem.Crippen import MolLogPfrom rdkit import Chem, Da…

移除 ZooKeeper 的 kafka 2.8 ,更快了

这段时间招聘季,后台收到不少关于 Kafka 的问题,确实 Kafka 近两年的行情,可谓是水涨船高了。根本原因是,是 Apache Kafka 作为一款开源的消息引擎系统。凭借高可靠、高吞吐、高可用、可伸缩等优越特性,在数据采集、传…

浅议SSH协议

什么是SSH? SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性…

机器学习 vs 深度学习到底有啥区别,为什么更多人选择机器学习

机器学习和深度学习有什么区别?让我们从本文中寻找答案。目标本文中,我们将深度学习与机器学习作比较。我们将逐一了解他们。我们还会讨论他们在各个方面的不同点。除了深度学习和机器学习的比较,我们还将研究它们未来的趋势。对比介绍深度学…

dreamweaver连接mysql数据库 发生一个不知名错误_用DREAMWEAVER连接数据库测试时总是弹出发生一个不知名的错误 你好! 请问一下这个问题你是怎么解的?...

展开全部2018年05月05日 19:11:13阅读数:1 编辑如图,PHPMySQLDreamweaverCS6连接MySQL就出现不知名错误,查遍全网也没有解决办法。32313133353236313431303231363533e58685e5aeb931333365653139笔者是机械学的专业,电脑是小白&…

ASP.Net 管道模型 VS Asp.Net Core 管道 总结

1 管道模型 1 Asp.Net Web Form管道请求进入Asp.Net工作进程后,由进程创建HttpWorkRequest对象,封装此次请求有关的所有信息,然后进入HttpRuntime类进行进一步处理。HttpRuntime通过请求信息创建HttpContext上下文对象,此对象将贯…

py2exe for python3_使用Py2Exe for Python3创建自己的exe程序

最近使用Python 3.5写了一个GUI小程序,于是想将该写好的程序发布成一个exe文件,供自己单独使用。至于通过安装的方式使用该程序,我没有探索,感兴趣的读者可以自己摸索。1 介绍我使用的开发环境是python3.4(实际上我是在另一个64位…

实际体验SpanT 的惊人表现

前言最近做了一个过滤代码块功能的接口。就是获取一些博客文章做文本处理,然后这些博客文章的代码块太多了,很多重复的代码关键词如果被拿过来处理,那么会对文本的特征表示已经特征选择会有很大的影响。所以需要将这些代码块的部分给过滤掉。…

AI人工智能资料分享来袭,还不快来!

小天从大学开始,便开启资料收集功能。近几年以AlphaGo为契机,人工智能进入新的发展阶段,再加上日常的深入研究,小天收集整理了丰富的AI学习资料,内容涵盖“深度学习资料包”,“数据挖掘资料包”&#xff0c…

聊一聊Jmeter的简单使用

背景 近段时间,团队想补强测试这一块,减少重复性的一些工作,让一些内容可以自动化起来,同时对开发同学写的接口的性能也开始有所要求了。考虑到团队内没有人有测试开发的经验,所以前期的选择还是以工具为主&#xff0c…