Gigapixel:画面隐藏技术的精华!  我要评论 
           画面隐藏技术的资料
更新时间:05年8月2日 作者:月之茧  编辑:alfa
当前第1页: 本文共 1 页

    今年的E3给我们带来了许多很有趣的新东西,PS3、XBOX360、CELL、RSX、C1……伴随着两大平台的相继发布,关于技术和偏好的争论也在如火如荼地进行着。在一片嘈杂的喧嚣声中,一个小小的甚至被人们遗忘的技术引起了我的注意——Gigapixel。其实,这是一个非常重要且不应被忽视的技术,其作用在于改进现有的隐面隐去技术。它可说是NVIDIA对其自身与已消逝的3dfx的技术储备的一次完美综合演绎。Gigapixel究竟有什么特色,它对未来显示技术,尤其是隐面隐去技术的发展又有什么影响呢?随着E3的退热,让我们静下心来看看这个小家伙到底有什么能耐吧。

 

 


采用Gigapixel技术的PS3主机


一、看不见的世界——闭合的Z值

    站在熙熙攘攘的大街上放眼望去,摩肩接踵的人群占据着视线的全部。你有没有注意过那些被遮挡的部分呢?其实,在计算机绘图的过程中存在着一个必须面对的重要问题——像素的闭合Z值问题,也就是像素的视觉遮掩问题。简单地说,在熙熙攘攘的大街上,尽管人群稠密,但映入你眼帘的永远是没有被遮挡的那部分。尽管被人群遮盖的那部分人是活生生存在着的,但他们所产生的图像并不能被你看见。同样的,当部分不可见的事物转换成像素时就会遇到一个问题——闭合Z值。当两个像素的X和Y坐标的取值完全相同但Z值不同,亦即所谓的一前一后分布时,“靠后”的那个像素将会被“前面”的像素遮掩住而变的“闭合”,也就是不可见了。


被遮掩的部分


    这部分不可见像素在一帧图像中往往是大量存在的,有时其数量甚至是可见部分像素的10倍以上。这部分像素对于视觉表现来说显然是完全没有贡献的。渲染这部分像素不仅给核心资源带来了沉重的负担,而且是没有任何实际意义的行为。很遗憾的是,单从函数接口的角度来讲,这种无效的渲染是不可避免的。针对DirectX、OpenGL等对象式的函数库而言,建摸过程和细节信息的确立是独立进行的,对于Programs而言,场景中的第一级基本单元是对象而不是像素或顶点,所有的顶点和像素都是根据对象而不是场景来确定的。而且,在一般的开发者模式下的摄影机位置是变动的,程序员或引擎的编写者根本无法确定最终游戏中的视野范围,从而也就无法确定哪些部分会被遮掩而哪些部分不会。因此,场景中所有的顶点和像素信息都必须存在于Programs中,以备在任何需要时都能随时调用。也就是说,无论可见与否,程序中世界里的所有物体都是完完全全存在的,一个顶点、一个像素都不少的存在着。对于程序本身而言,这种现象是再正常不过的,因为程序员往往并不是游戏的最终制作者,他们只能对引擎本身负责,最终视野效果的判断是很难在引擎编写阶段完成的,因此,这个问题显然是无法从程序端得到解决的。闭合Z值问题不仅给核心的渲染资源带来了沉重的负担,也使得本就接近枯竭的显存带宽资源显得更加雪上加霜。

    尽管无法被看到,但这个看不见的世界确实严重地影响了图形效果的表现和计算机图形学的发展。为了改善这种状况,人们开发了针对闭合Z值的技术——HSR。

二、背后的精灵——HSR

    HSR全称Hidden Surface Removal,意为阴面隐去。最早由3dfx提出并在VSA-100上第一次实现,其作用在于对顶点或像素进行闭合Z值判定,在不影响最终效果的前提下将不可渲染的部分在流水线进行像素操作之前予以剔除,从而达到节省核心资源和显存带宽的目的。早期的HSR仅能通过软件由CPU来运算实现,这对CPU的运算能力要求很高。3dfx的HSR出现后,NVIDIA天才般的软件工程师仅用了4天时间就在NV15上实现了HSR,但由于当时的硬件T&L单元无法在Transform过程中实现对视野内对象的剪裁和转换过程,所以这时的HSR依然需CPU的配合。尽管此时的HSR表现抢眼,甚至使得VSA-100在Quake Ⅲ中的速度提升了500%,但其应用价值却因为CPU运算能力的限制而没有被完全体现出来。随着时间的推移,DirectX 8.0推出,Vertex Shader和Pixel Shader的灵活应用在图像表现中的作用变得日益显著,其中之一就是实现纯硬件的HSR。纯硬件HSR的效率和灵活性显然比CPU+软件模拟的组合要高得多,至此,HSR的作用才被提上了前台。目前NVIDIA的LMA、ATI的HyperZ、XGI的FMC等都具备实现纯硬件HSR的能力。

点击放大
具备HSR功能


点击放大
通过使用HSR得到的效能提升


    HSR的实现分为两种操作方式:顶点标识隐去和像素隐去。传统的HSR通常会采用第一种操作方式,即顶点标识隐去。当模型信息进入Vertex Shader时,Vertex Shader会对模型的顶点部分进行闭合Z值判定,并寻找与被封闭区域内侧最接近的顶点。在确定由这些顶点围成的区域范围以后,在这些顶点上进行特殊标识,以使流水线在进行像素操作的过程中忽略被标识的顶点所围成的区域内的所有多边形,即将这个区域判定为不存在或“空”。顶点标识隐去的好处在于操作难度和运算量相对较小,对一个部分被遮掩的物体而言,仅须寻找靠近边缘的几个到几十个顶点,然后将其所围成的区域“抹黑”即可,判定和剔除过程所需占用的显存带宽较小,对核心的Vertex能力要求也不是很高,对后续流水线操作的周期影响也很小。但其缺点也是显而易见的,那就是隐去操作精度不够,在建摸过程中出现并置的前后两个物体的顶点位置可能完全不同,所以由此生成的多边形形状也会出现完全不同的情况。靠前的一个多边形往往会对后面的多边形产生不完全遮蔽,这时如果Vertex判断不当则很有可能出现错误标识,使得后续流水线忽视了本不该被忽视的一部分多边形,从而导致多边形缺陷致使画面出现破损。为了避免这种情况的发生,一般的Vertex判定都将内侧寻找范围定立得很保守以避免过当隐去,但这又带来了一个新的问题:隐去范围不足,本身顶点/多边形判定的精确度就因为多边形形状的影响而变得不是很高,而为了防止判定溢出的发生,这个被判定范围还将继续缩小,这大大影响了HSR的实际应用效果。



    与顶点标识隐去相比,像素隐去的准确度看来明显要高得多。像素隐去的操作场所在流水线内,当像素信息流入流水线中等待处理时,Shader Unit会对待处理像素进行闭合Z值判定,以决定它手上的这个像素有没有隐藏在先前着色完成的像素后面。当ShaderUnit发现手上这个像素的确是隐藏在先前着色完成的像素后面时就会直接丢弃这个像素的数据,而不会让它有机会进入像素运算的队列中,因此省下了流水线读取Z缓冲数据的时间及运算和执行丢弃的那组效果数据或指令的时间。像素隐去能精确到每个像素,其边缘判定精确程度显然比顶点隐去要高得多。即使发生隐去溢出的情况,其画面破损范围也只是一个像素大小。不过,尽管像素判定的边缘精确程度很高,但其缺点却比顶点标识隐去更明显。首先,逐像素的判定过程消耗了不少周期,同时庞大的运算量给显存带来了负担。其次,这种操作需要多级缓冲来尽量减少周期浪费同时为操作提供距离流水线最近的空间,这对核心的结构设计提出了一定程度的要求。最后,也是最致命的,像素隐去必须面对判定失败的问题,逐像素判定是根据像素进入流水线的先后顺序进行的,当像素进入流水线后,Shader Unit会拿这个像素与其所属的像素区块的Z数值作比较,若这个像素的Z坐标值比其所属的像素区块的Z坐标值低,就直接丢弃这个像素的数据。如果这个像素的Z坐标值比其所属的像素区块的Z坐标值大,就把这个像素的数据往队列送。但此时,作为比对组的像素是已完成Z值载入并且运算完毕的,运算这个像素所占用的周期已被消耗掉了,而且即使这个像素被即将运算的那个新像素遮掩着,它也不会被剔除掉。这就是像素判定失败。


支持像素隐去的HyperZⅢ)



    尽管传统的HSR曾经为图形表现的进步做出过不可磨灭的贡献,但其本身所具备的缺点也渐渐表露出来,并且开始影响加速发展着的计算机图形应用。为了解决这个问题,让HSR继续发挥最大的作用,NVIDIA开发了Gigapixel技术。

三、流水线间的歌声——Gigapixel

    从收购3dfx到现在,NVIDIA实际上一直没有实质性的使用过3dfx的技术储备。尽管先前NV2X和NV4X的取样方式上能看到3dfx的影子,但那始终不是能在所有场合都发挥作用的核心技术。作为一个前“巫毒迷”,在看到Gigapixel的细节后,笔者着实高兴了一阵。因为在Gigapixel中,NVIDIA第一次正式使用了3dfx的核心技术——Giga3D构架。

点击放大
将采用Gigapixel技术的G70


    Gigapixel独特的Giga3D构架实际上是一种更新的HSR解决方案,在处理3D场景时仅处理那些可见的像素。Gigapixel不但可利用Giga3D架构加快游戏的执行速度,更大的优点是节约了大量的显存带宽,并且再也不会出现破碎的3D画面,因为Gigapixel会处理掉不可见的像素。

    Gigapixel最大的作用就是实现HSR,但其实现方式与传统方式之间存在很大区别。相比之下Gigapixel更加先进,且效率要高得多。Gigapixel能做到同时使用Vertex Shader和Pixel Shader单元进行HSR操作,也就是将顶点标识隐去和像素隐去这两种方案有机地结合在一起,并且对两种方案都做了改进。下面,让我们来看看Gigapixel的改进究竟在哪里以及它是如何运作的。
当数据进入核心时,首先会在Vertex Shader中进行“粗剪”,也就是对顶点进行判定,同时“丢掉”被遮掩的多边形,这部分操作与传统的顶点标识隐去并无二致。然后,Gigapixel会通过Vertex Shader 3.0的直接纹理表访问特性来实现对被标识多边形的纹理表屏蔽,使得核心不必再为这些多边形进行纹理填充,这是传统的顶点隐去所不能做到的。传统的顶点隐去能对多边形的顶点进行标识,使后续的流水线不对这些多边形进行像素运算和填充,但对纹理填充部分则无能为力,被标识的多边形在TMU中依然会被操作。Gigapixel的出现改变了这种情况,对被标识顶点彻底屏蔽纹理表映射意味着将这部分多边形完全擦去,包括一部分物理信息和全部纹理信息。同时,由于失去了纹理信息,这些多边形内的所有像素信息也会被一并擦去,Vertex Shader将不会对这部分顶点进行操作和计算,TMU将不用再给这部分多边形进行纹理填充,而Pixel Shader也省去了大量不需处理的复杂运算过程。这使得Gigapixel的顶点隐去部分最终做到了将被遮掩部分的多边形“彻底丢弃”。


区域划分标识


    在Vertex Shader中进行过顶点隐去操作的数据继续流向像素流水线,Gigapixel在进入流水线之前专门为像素隐去操作提供了内嵌的80kB的SRAM做为缓存和操作场所,所有剩余的像素都将在这里预先进行Z值的载入并被分成若干个块区域,然后进行区域Z值判定。如果某区域的像素的最大Z值都比对比组的Z值小,那么这个区域将被整体屏蔽,而如果判定结果不是这样,则表明某个块区域至少为部分可见,则这个区域将被进一步分割,如此往复直至最终每一个像素都经过判定,被判定为处于被遮掩状态的像素将被删除而不再进入流水线中。由于先前经过“彻底”的顶点隐去操作的缘故,此时的剩余像素已大大减少了,所以像素判定部分的负担也随之大大减轻了。另外,由于Gigapixel的像素判定操作发生在流水线进行计算之前,所以避免了传统像素隐去工作所面临的判定失败问题,同时大大节约了对像素的操作周期,最大限度地减少了无用像素被操作的问题。最后,由于提供了独立的交换和操作场所,Gigapixel的像素隐去操作对显存带宽的要求大大降低了,这对于日见枯竭的显存带宽来说无疑是一个解脱。最后,由于大容量的SRAM的存在,GigaPixel在一个周期内可处理Z值数量也比传统的方案多。根据资料,在一般场合下Gigapixel可完成48个以上的Z轴数值或摸板的处理,强大的处理能力能进一步保证HSR的效率。


Gigapixel的区域像素隐去

    作为新技术,Gigapixel的优点是显而易见的,但是,每一项技术通常都会有缺陷,Gigapixel也不例外,它的缺陷同样很明显。顶点作为模型的基本单元,其上附着着各种模型所具备的物理信息,如空间位置、质量、力学特性、法线、光等。顶点的物理特性往往不是独立存在的,它们之间的联系会影响到Vertex Shader对模型进行的操作。在进行顶点标视隐去的过程中,Gigapixel擦去了被遮掩顶点的所有信息,其中包括相当一部分的物理信息,这就有可能影响到模型物理细节的完整度。一部分顶点的缺失可能会使得本来能正常进行的物理特性表现受到影响,并最终影响到最终的画面效果。同时,缺失的顶点可能会影响到其他顶点的位置,甚至可能改变模型的形状,这极有可能会产生新的遮掩效果,导致新的HSR操作过程,甚至会发生系统陷入循环或使整个模型被“吞噬”,也就是所谓的顶点坍缩现象。

    当然,我们也不必太过担心,因为Gigapixel对顶点信息的处理是听命于驱动程序的,当出现明显的严重错误时,通过驱动就可修正,按照NVIDIA对驱动的驾御能力,我们应不用太操心于致命错误的发生。

结语

    作为新技术,Gigapixel的应用其实远远不止HSR那么简单,比如在涉及Z/Stencil的光锥阴影等场合Gigapixel一样能发挥一定的作用,而Gigapixel对像素的独立操作空间设计对于未来流水线和Shader Unit的设计思想也有一定影响。尽管本身还不是十分完善,但Gigapixel依然将HSR的水平提高到了一个崭新的高度,其先进的技术为节约宝贵的核心运算资源和紧张的显存带宽做出了相当大的贡献。凭借着先进的操作方式和更优秀的设计思路,我们完全有理由期待Gigapixel在未来能给我们带来更流畅和精彩的视觉体验。

全文完


本文内容导航
   · 第1页:
文章总页数:1 当前页数:1
出处:大众硬件
是否匿名
社区用户登陆
热门文章
·'珑管'最后的颠峰,优派G76f+测评
·Vista来临!下代操作系统FAQ汇总
·光盘图案随心所欲!威宝光雕实录
·世界第一速度,优派VX924液晶测评
·尊贵之剑-诺基亚8800身份的象征
·追忆:似水流年忆显示卡发展历史
·军用数码产品——迷彩绿的情怀!
·提高潜力!DIY简单改造CPU散热器
·ELSA:AGP版6600GT完全详细测试!
·墨竹白水中国风:华硕W3A M6A测评

更多内容...

焦点新闻
·下载:ATI新版DNA驱动正式下载!
·封杀!微软开始大规模打击盗版XP
·别再添乱!横眉冷对2999元笔记本
·砸了你的硬盘吧!三星闪存代硬盘
·完全超越XP!Longhorn性能大曝光
·12年不灭!飞利普出LED街灯 (图)
·军用笔记本TOUGHBOOK国内开售卖!
·大不同!液晶电视 VS 液晶显示器
·Game Top10!历史上最流行的游戏
·要便宜更要娱乐:华硕A6Va笔记本

更多内容...

=相 关 内 容=
低端单反还是高端准专业?H1回答
Game Top10!历史上最流行的游戏
影驰:玩家最爱玩家版6600LE上市
消息:3Dlabs发表新款专业加速卡
蓝宝:799白金版X700媲美标准版!
送512M内存!微星915P Neo2促销中

=推 荐 评 测=
ELSA:AGP版6600GT完全详细测试!
最具性价比!微星K8T NEO超值体验
评测:蓝宝石X300SE超越X600之迷
蓝宝:完美性价比的X700PRO测试!
绘虹:快看XGI的V8显卡完全评测!
极致奢华!磐正9NPA+SLI单品测试
=推 荐 新 闻=
华硕:静音版6600GT超级酷图欣赏
低端单反还是高端准专业?H1回答
Game Top10!历史上最流行的游戏
ATI :X800GT测试样品卡近日公布
改变'血色'!紫外光水冷液(图)
要便宜更要娱乐:华硕A6Va笔记本
=其 他 推 荐=
DC悍将!奥林巴斯E系统镜头全接触
"芯"灵窗口:笔记本屏幕技术详解
实力小歌手:漫步者笔记本音箱M2
翔升:完全测试6600le性能全爆发
二十年磨砺:步入笔记本低价时代
本本粉丝别错过!NB生活10大伴侣
=倚天数码社=
=倚天社=
=技术论坛=
倚天硬件门户网络电脑杂志——时尚硬件融入生活!
广告业务 | 网站导航 | 关于我们 | 投稿信箱 | 联系合作 | 联系网管 | 隐私保护 | 版权所有 | 京广字第0436号
 
  北京捷羿天翔科技有限公司 Copyright (C) 1997-2004 ITdoor.net All Rights Reserved   |  京ICP证030778