Windows图形技术的未来

Longhorn的革命性图形技术让微软进一步巩固了该领域的优势,我们将看到WGF 1.0和WGF 2.0成为业界最热衷的图形技术。
  
  在过去十余年间,计算机的操作系统成功实现了由字符界面到图形界面的革命性转变,计算机的易用性、功能和性能获得飞跃性的提升,并为其真正进入家庭立下了汗马功劳。与此同时,图形技术自身也逐渐发展完善,从枯燥的灰度显示到令人惊喜的真彩显示,从简单的2D平面到奇妙的3D空间,每一次进化都让人们兴奋不已。而在这背后,更是催生出一个庞大的图形产业—nVIDIA、ATI这些重量级硬件厂商,无数的游戏软件开发商,以及大量的专业三维应用无不依赖于这套图形系统—由于微软在PC操作系统占据垄断地位,图形技术的决定权事实上由它掌控。遗憾的是,在实现真彩显示和3D功能之后,Windows的图形技术就没有作任何架构上的大改进,标准的停滞不前也导致了图形领域的一举一动变得越来越乏味,竞争者唯一能做的就是互相攀比谁的产品速度更快。我们可以看到,尽管在这些年间计算机的图形性能飞速提高,但唯一的获益者只是少数游戏玩家,而非主流用户群体。至于Windows操作系统本身,也没有从图形硬件的性能提升中获取什么好处—Windows的GUI界面停留在二维阶段,微软所做的就是在平面设计上下些功夫,这些工作在过去曾获得一些共鸣,但随着时间推移,越来越多用户对Windows粗陋的GUI界面抱怨不已。如果看到苹果最新的Mac OS 10.4 Tiger系统,巨大的反差估计会让无数Windows用户抱怨不已。
  微软并不总是后知后觉,它很早就意识到其中的问题并谋求解决之道。在新一代Longhorn操作系统中,微软决定确立一套全新概念的图形系统,这套系统将3D显示纳入操作系统GUI范畴,使得系统本身也可以分享3D技术进步的成果,并让操作系统可提供完美的视觉界面。如果你足够古板,一定会对此嗤之以鼻,认为花哨的界面只会耗费资源而没什么大用。但如果你整天对着电脑,那么一款拥有优美视觉界面和3D特效的系统绝对会让人耳目一新。在本文中,我们不会多费口舌向大家描述Longhorn的外观是如何动人,而是要详细剖析Longhorn如何做到这一切,这关系到操作系统与图形API的整合、全新的显示引擎、驱动程序设计等许多内容—当你了解到所有这些实现细节的时候,也许会对Longhorn的一再跳票开始报以充分的理解。
  
  D3D API历史及分离渲染架构
  
  
  在计算机的图形系统中,API与驱动程序是两个非常重要的概念—前者其实是一组功能完备的3D函数库,它要求得到显卡与3D应用软件的共同支持,由此实现3D软件与显卡的全面兼容。因此,API也被视为图形技术的基础。而驱动程序则处于比API更底层的位置,它的作用是让操作系统可以识别并驱动显卡,让显卡在软件层面上实现对API的支持。这两者在图形系统中相辅相成、紧密协作,如果要对图形系统作根本性的变革,首要解决的问题就是制定新的API,而后才是在驱动程序中加以体现—微软将在Longhorn中体现的新一代图形技术便是如此。
  众所周知,Windows图形技术的基础是Direct3D API,它是DirectX最重要的子集,因此外界经常以DirectX作为Windows的图形API。在Windows系统不断发展的十余年间,DirectX也在做不间断地升级完善—前几个版本的DirectX设计糟糕,完全没有得到图形厂商采用,当时消费领域的图形巨头3Dfx独自创立了一套名为“Glide”的图形API并加以推行,但在3Dfx衰落之后这套API也寿终正寝。后来的nVIDIA更多基于OpenGL设计,这套API一直被应用在专业领域,当它被引入到PC平台之后曾大放异彩,idsoft著名的Quake系列和Doom系列游戏大作都是采用OpenGL API。由于nVIDIA在该领域有丰富的积累,使得nVIDIA体系的显卡产品在OpenGL应用中一直领先于对手。不过,当微软推出DirectX 7.0之后,局面开始发生变化。DirectX 7.0设计完善、功能强大,而OpenGL长期停步不前,加之微软在操作系统领域占据垄断地位,越来越多的软件厂商采用DirectX来开发游戏产品。2001年,微软发布DirectX 8.0,这被认为是DirectX体系真正步入成熟的标志,而它最重要的创新就是引入可编程的顶点渲染和像素渲染技术,自此,无论是nVIDIA、ATI还是其他厂商设计的图形硬件,以及软件开发商设计的游戏软件,都全面转向DirectX体系—掌握API标准的微软,实际上也在图形领域拥有决定权,只要有新版本的DirectX发布,软硬件图形厂商总是在第一时间提供支持,这一点在DirectX 9.0系列发布后体现得尤为明显。这个时候,图形技术的发展方向就完全掌握在微软手里,nVIDIA、ATI这些图形巨头反而成为微软的追随者。
  
  从7.0到目前的9.0c,DirectX并没有出现什么革命性的变化,微软所作的只是不断完善API函数库的功能,使之具有更高的可用度,这也是软件厂商在后来乐意改用DirectX来开发游戏的主要原因。而DirectX所确定的图形技术属于分离式渲染架构,也就是顶点渲染与像素渲染分别进行—与DirectX API的定义对应,nVidia和ATI在设计GPU时必须设计相应的顶点渲染引擎和像素渲染引擎,由于这两个核心组件完全被微软标准化,nVIDIA与ATI也只能在渲染引擎的数量上相互较劲—谁的渲染引擎数量多,谁的GPU设计复杂,谁就可以在绝对性能上占据上风,但同时复杂的芯片意味着更高的晶体管集成度和更高的制造成本。如果稍稍回顾近些年GPU的发展,大家就可以发现nVIDIA与ATI的竞争实在是乏味之极,DirectX在实现完美兼容的同时,也给硬件厂商上了一个紧箍咒,导致nVIDIA、ATI双方都无法在硬件设计上有所创新。在这些年间GPU技术唯一称得上有较大提升的就是可编程思想的引入,这让游戏开发者在编写代码时有较高的灵活性,但芯片的基本架构其实没有什么不同。
  早在数年前讨论Longhorn的相关技术特性时,微软就下决心为它设计一套更富竞争力的图形系统,一个重要的改变就是让操作系统与图形API结合得更加紧密,使得操作系统本身可以利用到图形硬件资源,让Longhorn拥有3D和半透明特效的优美视觉界面。同时,微软也认为传统的分离渲染架构已经不能适应未来发展,应该对GPU架构作根本性的变革。为此,微软决定在Longhorn中引入一套名为“统一渲染架构”的新体系,而这不仅要求创建一套全新API和开发全新的驱动程序,也意味着GPU硬件必须在结构上作巨大的变更(在本刊2005年第7期技术精粹栏目关于Xbox 360游戏机的文章中,我们就向大家详细介绍了“统一渲染架构”与传统架构的不同,读者可以参考该文,此处不再重复)。为了实现这项宏伟目标,微软雄心勃勃地为Longhorn重塑了一套前所未见的图形系统,这套系统主要包含两代WGF API、Avalon显示引擎以及Longhorn专有的DWM桌面管理器,在4月份召开的2005年度WinHEC开发大会上,微软的几位技术高管都发表了相关的技术论文,我们也得以知晓Longhorn图形系统设计的详细细节,并及时将它介绍给读者。
  

  
  WGF 1.0新一代图形API
  
  Longhorn搭载的新一代图形API没有继续沿用Direct3D的传统名称,而是被改名为“Windows Graphics Foundation(Windows图形基础,简称WGF,下同)”。微软官方透露,WGF 1.0 API是在DirectX 9.0c的基础上加以改进并发展而来,它最重要的技术特性就是增加了一项名为“Virtualization”的虚拟化技术,其余的绝大多数技术特性都与DirectX 9.0c相同。那么,什么是“虚拟化”技术?它又将主要用于何处呢?
  其实,WGF的虚拟化技术非常容易理解,它的含义与Intel、AMD在微处理器领域积极倡导的“虚拟化”概念异曲同工—两者都是为了实现两个并行运作环境,不同之处在于微处理器领域的“虚拟化”是让CPU可同时执行两套操作系统,且不会相互干扰,而Longhorn图形系统的虚拟化则是让GPU可同时运行两个3D任务,两者共同使用显卡资源。按照常规思路来理解,让显卡同时执行两套3D应用实在谈不上是什么好主意,毕竟几乎没有人会一心二用、同时开启两个3D游戏,所以在现有的Windows图形系统中,显卡资源都只能为单个3D任务独自占据。在Longhorn系统中情况并非如此,Longhorn采用3D界面技术,为营造出完美的3D视觉效果,Longhorn系统在运行时就需要调用GPU资源,如果用户同时开启多个程序,或者在Longhorn中运行3D游戏,图形系统就必须具备虚拟化多任务的能力。在具体实现上,Longhorn的虚拟化技术是通过分享时间片的分时方式实现,操作命令流以一种高度有序的方式加以调度,确保调用硬件资源时不会出现冲突。上述工作交由为Longhorn量身订做的LDDM驱动程序负责(LDDM驱动的内容参考插文),其中,基础版LDDM驱动程序可根据应用需求来划分时间片,但时间片一旦被执行就无法中止;而高级版LDDM驱动模式就比较具有弹性,它允许3D应用预先确定所要调用的使用时间片,由此达到更出色利用系统资源和GPU硬件资源的目的。为了容纳预定的任务,图形系统需要一个专门“内存管理器”,它既可以被整合于LDDM驱动也可以被直接整合于GPU硬件当中。
  与此同时,Longhorn对显卡的显存资源也提出空前的要求。Longhorn的3D视觉窗口数据通常存储于显存内,而Longhorn中的每一个窗口都采用3D模式,光是操作系统在正常运行状态下就需要占据大量的显存资源,再考虑到新一代大型3D游戏对显存的恐怖需求,可想而知,显卡系统将因此遭受难以想象的空前压力。而遗憾的是,高速显存的成本向来十分高昂,短时间内指望显卡能拥有超过GB级别的显存并不现实,此时,调用主内存资源就成为最佳解决方案。到此为止,AGP显卡终于寿终正寝,即便该显卡采用类似GeForce 6800的超强GPU核心,但也难以保证Longhorn系统可以拥有出色的运行速度。根本原因就在于AGP 8X接口只能提供2.1GBps带宽,且无法实现全双工运作,Longhorn的图形系统就不可能高效调用到内存资源,即便GPU再强悍,遇到这种情况也会束手无策。理所当然,PCI Express ×16显卡就成为Longhorn的最佳选择,而该接口的巨大带宽也终于可以被真正派上用场。
  虚拟化技术还可支持3D界面的交叉共享。当系统运行多种不同的程序时,所需生成的3D界面在视觉上肯定不相同,如果每一套界面都完全从零开始由显卡负责渲染生成,那么随着运行程序的增多,Longhorn的运行速度将出现直线下滑,这显然是用户难以接受的。微软拿出的解决方案就是共享底层界面—尽管最终的3D视觉界面存在差异,但它们都是建立在相同的基础之上,虚拟化技术让Longhorn只需为各种程序建立一套基础界面,当运行不同的程序时再加以扩展,以达到降低资源占用的目的。这种设计与浏览器的标签浏览功能在思想上如出一辙—现有的IE浏览器在开启每个网页时都必须启动一个IE进程,用户打开多少网页,系统就运行多少个IE进程,资源占用相当厉害。而Firefox、Opera及IE 7.0提供的标签浏览功能可以在只开启一个进程时打开多个网页,资源占用率明显降低。但尽管如此,Longhorn系统对显存的需求还是如饥似渴,即使512MB显存的显卡也很难满足需要,当显存不够用时,调用系统内存资源便是唯一的选择。显然,用户如果想让自己的电脑流畅运行Longhorn,除了要求CPU、GPU足够强劲外,准备几个GB的大容量内存看来势在必行。
  除了可支持虚拟化技术外,WGF 1.0与DirectX 9.0c在其他技术特性方面并没有多少区别,WGF 1.0仍然隶属于分离式渲染架构体系,未能支持“统一渲染架构”,这更多是为兼容硬件的角度考虑。不过,WGF 1.0的“传统运行模式”并没有直接沿用以往的Direct3D—其中,Direct3D的“快速模式(immediate mode)”得到继续支持,但“保留模式(Retained mode)”被WGF 1.0完全放弃。微软表态说,Direct3D的保留模式在实用中极少被用到,在游戏中更为少见,将它砍掉不是什么大损失。由于功能变动,微软必须重新设计DirectX 9.0c的设备驱动接口,才能将它与WGF 1.0加以整合。显而易见,我们可以将DirectX 9.0c看作是WGF 1.0的一个子集,如果用户打算在Longhorn上跑跑一些传统的3D游戏,DirectX 9.0c就派上用场;而当用户开启Longhorn的“Avalon”3D界面模式时,WGF 1.0的虚拟化技术便得以大展身手。软件设计师在编写新的应用程序时,就必须充分利用WGF API的先进技术特性,即便是编写办公软件也是如此,这一点显然与现有Windows系统存在巨大的区别—在现有Windows图形架构下,只有设计3D游戏和专业3D软件才需要调用图形API,而编写其他的软件完全与图形API无关。换言之,图形API在未来的Longhorn环境中将会无处不在。
  在兼容Direct3D的同时,WGF 1.0还将OpenGL 1.4 API加以整合,这样Longhorn便能够支持OpenGL硬件加速。此外,显卡厂商提供的“可安装客户端驱动(Installable Client Drivers,简称ICDs)”也将得到的支持,只不过微软必须对LDDM驱动作适应性的改动,以使Longhorn可支持更高版本的OpenGL API—包括最新的OpenGL 2.0版在内。否则显卡厂商为Windows XP编写的ICDs就无法工作在Longhorn环境中,这将让人感到遗憾。
  
  Avalon显示引擎
  
  
  现有的Windows系统均采用GDI(图形设备接口)来生成操作系统的用户界面及桌面应用程序,而GDI只能够使用单个缓冲,加之无法利用显卡的3D运算力,操作系统和应用程序都无法产生3D视觉效果。而Longhorn以创新的Avalon架构代替GDI作为界面生成器,正如前所述,Avalon主要以现有的Direct3D为基础—更严谨的说法是Avalon采用了全新的WGF 1.0 API,由此获得3D界面和诸多酷炫效果的生成能力。不过,Avalon自身并不直接面向终端用户,它只是Longhorn图形系统的中间件,负责为浏览程序、表单程序、图像、视频、音频、办公文档等提供一个单独的运行时态(Runtime),同时为开发者提供一个统一的图形开发接口。借助Avalon,开发人员就可以顺利编写出各种界面超炫的应用程序。
  

  对许多钟爱外在美的用户来说,Longhorn提供的“视觉冰激凌”一定会让人深感震撼,使用这样的唯美系统更容易拥有好心情,不过还有大量的用户抱有其它想法。Longhorn过于庞大,近乎滥用的3D技术对系统硬件造成强大的压力,一旦新鲜感过后,也许会有相当多的用户关闭所有视觉特性,恢复简单的经典界面模式,Longhorn最大的卖点将变得毫无用处—如果你抱同样的看法,那就太小看微软了。事实上,Avalon架构的魅力不仅仅只是生成观感一流的界面,在美学背后它同样注重提高界面操作的简单性。例如,现有Windows系统无法对用户的操作行为进行跟踪,如果你打开一个位于较深路径的文件夹,而后将它关闭,下次想重新打开这个文件夹时就要重新经历繁琐的连续点击操作。而在Longhorn系统中,Avalon引擎提供一个名为“桌面复合系统(desktop compositing system)”的跟踪器,用户的操作行为会以堆栈的形态存储,并在桌面上提供一个快捷入口,这样当你遇到诸如重复打开深路径文件的情形,只要从堆栈中恢复刚才的操作即可—这个过程最多让你花费两次鼠标点击,操作被最大程度简化。再者,Longhorn引入像素渲染来生成GUI界面,窗口顶部的标题栏可实现背景透明,而工具栏则营造出阴影折射特效,即便是在高分辨率的显示屏幕中,应用程序窗口在视觉上也非常直观,用户操作一目了然,相信这样的设计会得到所有用户的赞赏。除此之外,Avalon引擎还提供了大量看起来细微,但有效增强系统可用性的改进,等到大家亲身体验到Longhorn时便会感受到它与现在Windows系统的巨大差别,这种差别不仅仅只停留于表面,更多的是在人性化操作方面的改善。
  
  显示方式的改进也是Avalon的一大亮点。我们知道,现有Windows系统都是采用固定显示方式,不同的屏幕分辨率会产生不同的视觉观感。在800×600分辨率下,你会发现Windows XP的开始菜单面积巨大,宽度几乎占据屏幕的1/2,视觉效果相当糟糕。而如果使用超过1280×1024的高分屏,系统的字体又会变得非常小,相当一部分有幸使用高分屏笔记本电脑的用户都在抱怨说显示字体太小,长时间使用眼睛极容易疲劳,花费大价钱获得的高分辨率配置反而成为负担。Longhorn的Avalon引擎可支持一项名为“虚拟像素(Virtual Pixels)”的显示映射技术,该技术可以根据屏幕的分辨率来调节系统各界面元素的显示,例如按钮的大小、窗口的高度和宽度以及字体的尺寸等等,这样不管用户使用的是何种分辨率的屏幕,Longhorn系统都能呈现出最完美、且完全统一的视觉观感,高分屏的用户不必再为字体过小、眼睛疲劳的问题而烦恼。
  Longhorn可支持“Classic”、“To Go”、“Aero Express”和“Aero Glass”四种不同等级的用户界面,其中Classic为经典界面模式,此时Longhorn的所有图形技术都不生效,系统看起来就像是Windows 2000或Windows XP。To Go界面则比Classic高出一等,系统拥有Longhorn GUI的基本特征,但它不支持3D窗口,也无法享有阴影渲染特效,桌面复合子系统功能也被削减。Aero Express则是在To Go基础上进一步强化,桌面复合功能获得支持,但它同样不支持华丽的阴影渲染和半透明特效。倘若你想体验Longhorn视觉界面的最高水准,Aero Glass模式是唯一的选择。Aero Glass支持3D窗口渲染、半透明特效及折射效果,Longhorn的WGF API、Avalon显示引擎实际上都是为它服务,大家可以从Longhorn beta1的界面初步了解Aero Glass的真面目,当然这还不是Aero Glass的最终形态。
  为了获得最高级别的视觉特效,Longhorn的用户必须准备一部硬件系统超强的电脑,双核处理器、2GB容量的DDR2内存无疑是最佳选择;而在最关键的显卡方面,支持DirectX 9.0c API是最起码的条件,如果用户只跑Aero Express以内的模式,也要求显存容量不能少于64MB—微软官方的建议是128MB以上为好;而如果打算运行顶级的Aero Glass模式,256MB显存和强悍的GPU是非常必要的,而且GPU的速度越快越好,因为随着开启窗口和应用程序的增多,GPU资源的消耗会越来越厉害,如果GPU的处理速度不够快,很有可能会在开启多个程序之后,出现系统的运行速度明显变慢的糟糕情况。对此微软的官方人员作了详细的讨论,他们介绍说Aero Glass界面模式要求显卡拥有高于2GBps的纹理带宽,这相当于每秒60帧的速度同时播放两道HDTV视频流;而每个窗口需要动用150个三角形,假设系统同时开启100个Windows窗口,那么显卡至少要具备每秒可生成1.5M个三角形的能力—虽然这个数字看起来没什么了不起,但我们应考虑到这仅仅只是Longhorn系统本身的消耗,如果加上那些支持3D特效的应用程序和为Longhorn平台量身打造的新一代大型3D游戏,用户给自己的计算机配备一块GeForce 6800等级的高端显卡都毫不为过,nVIDIA和ATI顺理成章将成为Longhorn平台的最大受益者之一。
  
  DWM桌面窗口管理器
  
  
  桌面窗口管理器(Desktop Window Manager,简称DWM)是Longhorn构建三维视觉的关键,它实际上是基于WGF 1.0 API与Avalon显示引擎的一组复合函数,这些函数可以生成形形色色的酷炫视觉特效,如动态变化的半透明窗口,三维卷动的Windows窗口等等。开发者在设计软件界面时,只要直接调用DWM的这些复合函数,便可以在应用程序中轻松实现上述视觉特效。
  在Longhorn之前,包括Windows XP在内的任何一套Windows系统的GUI都采用单缓冲显示模式(single-buffered display),所谓单缓冲显示,指的是系统内只有一个缓冲用于暂存屏幕的显示数据。这就出现了一个问题:当用户在屏幕上移动Windows窗口时会有一种前后台窗口“割裂”的感觉,不过估计习惯已久的Windows用户们会对此感到无动于衷。而Longhorn采用多缓冲设计,后台的桌面数据被存储于后备缓冲(Back Buffer),前台窗口数据则存储于前端缓冲(Front Buffer),当用户在屏幕上随处移动视觉窗口时,也不会出现视觉割裂现象,而会出现一种平滑而富有动感的超炫效果。对此微软骄傲地声称,Longhorn可以将丰富的视觉特效展现在用户面前,而特效的卓越程度则取决于硬件系统本身。完全可以理解,在未亲身体验Longhorn之前,广大用户会觉得这些都是纸上谈兵,但我们对Longhorn的魅力深信不疑,相信经过精雕细琢的Longhorn在这方面绝不会让大家失望。
  前面我们介绍过,WGF 1.0可支持3D界面的交叉共享。对应用程序来说,交叉共享的含义就是它可以访问由另一个应用程序创建的后备缓冲,而后在DWM的辅助下再建立属于自己的后备缓冲或者前端缓冲(如果该应用程序位于前台)。由于构建在已有的基础上不必从零开始生成,有效节约了系统资源,应用程序的启动速度也可明显加快。不过,DWM机制并不总是有效,如果系统运行的是一些需要全屏显示的独占式应用,就不存在同时运行其他程序的问题,此时,Longhorn可以将DWM功能关闭,达到提高系统响应速度并降低能耗的目的—这种情况多见于欣赏DVD、运行3D游戏等娱乐性场合。但如果用户使用的是一部拥有双显示屏幕的计算机,Longhorn也可建立两组完全独立的显示环境,其中一个显示屏用于游戏、视频的全屏显示,DWM功能不再生效;但在另一个屏幕中,DWM管理器仍可运行如常。
  

  
  WGF 2.0革命性图形架构
  
  WGF 1.0只是在DirectX 9.0c基础上增加虚拟化功能和做些小调整,但在本质上仍隶属于顶点渲染、像素渲染分离的传统体系。WGF 2.0才是微软真正的下一代图形API,诚如前面所言,我们可以将它看作是DirectX 10,而它也将成为未来Windows图形技术的基础。既然软硬件厂商都必须共同遵循一套API,WGF 2.0理所当然就成为图形业界发展方向的新一代指挥棒。
  采用统一渲染架构是WGF 2.0最主要的变化。现有的Direct3D基于分离渲染架构,顶点渲染与像素渲染工作分离,对应在硬件上,就是GPU拥有专门的顶点渲染单元和像素渲染单元,尽管引入可编程机制,但这种僵化的结构导致GPU难以出现令人激动的技术进步,nVIDIA与ATI双方都在渲染管线的数量上纠缠不清,GPU技术变得越来越乏味。而对程序员来说,分离渲染的API同样存在问题。在设计程序时,设计者必须考虑到两套渲染管线的协作问题,而由于nVIDIA与ATI的产品在这些方面并不一致,所以就会出现某些游戏在nVIDIA平台跑得快,而有些游戏在ATI平台中性能更出色的情况。自然,设计者要么向nVIDIA倾斜、要么向ATI倾斜,无法让自己的程序总是处于最佳执行状态,这也使得编码工作变得复杂。在WGF 2.0中,这种惯例被彻底打破,尽管3D场景生成仍需要顶点渲染和像素渲染两个步骤,但WGF 2.0让这二者可以共享一个统一的渲染管线,也就是由一套渲染管线同时完成顶点渲染和像素渲染工作。由于渲染任务的指派工作由GPU本身完成,程序员就不必考虑两种渲染工作的不同,而可以将注意力全部集中在代码编制上,工作变得更简单,而同时又可以干得更漂亮。显然,WGF 2.0对游戏开发者而言是一项飞跃性的技术,而隶属于该架构的GPU产品,也变得更具通用性,这有点儿朝向通用型CPU靠拢的意味。
  
  不仅如此,WGF 2.0还让GPU变得更为独立。现有的GPU芯片在渲染3D场景时都必须获得CPU的帮助,而WGF 2.0架构的GPU甚至可以在无CPU辅助的条件下独立工作,这在Longhorn系统中完全派得上用场。例如,假如用户同时打开多个应用程序耗光了CPU资源,同时又要维持Aero Glass级别的3D界面,如果显卡必须在CPU帮助下才能工作,Longhorn的速度会变得慢如蜗牛;如果采用WGF 2.0标准的显卡,这种情况就不会出现,显卡自身可单独完成窗口的渲染和动态效果生成。即便在普通应用中,由显卡独自渲染Longhorn的3D窗口也可有效降低CPU占用率,进而达到降低系统整体功耗的目的。毕竟显卡处理图形运算的效率总是高于CPU,完成同样任务花费的能源更少。为了适应这种变化,WGF 2.0标准的GPU中必须增加一个专门的几何渲染单元(Geometry Shader),该流水线为可编程设计,大家在图7的图示中可以看出它在图形处理中的位置。
  WGF 2.0的另一个重要改进就是对图形运算的参数作出严格的定义。众所周知,nVIDIA与ATI的产品在很多细节设计方面存在重大差异,如ATI支持24位色深模式,而nVIDIA采用16/32位色深。色深越高,所需的运算量就越庞大,显卡的速度当然就会变慢。ATI与nVIDIA的分歧让游戏厂商无所适从,它们经常都为色深的选择大伤脑筋,而这两个生死对头从来都不会有坐下来商谈规格统一的想法。最终,微软在WGF 2.0替它们完成这项工作,虽然WGF 2.0的具体细节还没有完全披露,但总的原则不会改变,图形运算涉及到的分歧参数将被完全统一,游戏开发商和GPU厂商不再无规可循。
  WGF 2.0估计会与Longhorn同期推出,但它的应用至少要到2007年后方能展开。目前唯一可支持WGF 2.0架构的GPU是ATI为Xbox360游戏机开发的R500,但ATI官方表示,至少要在2007年才会推出类似架构的桌面型GPU,这与微软推行WGF 2.0的步骤刚好合拍。至于nVIDIA,它在很早以前就不愿意被微软牵着鼻子走,对统一渲染架构毫不热衷,nVIDIA甚至宣称将继续遵循现有的分离渲染路线,并指出分离渲染具有更出色的硬件效率(当然也没有否认在程序适应性方面的欠缺)。倘若nVIDIA决定固执到底,那么它们除了强力支持OpenGL API和Linux外没有别的选择,但我们认为这种可能性不是太大,毕竟微软在图形领域的影响力日趋强大,绝大多数游戏开发商都已选择Direct3D,且这种趋势很难被遏止,nVIDIA屈从于微软WGF 2.0体系的可能性会更大一些。但如果这个预言没有实现,图形市场必将迎来一场翻天覆地的合纵连横,现在nVIDIA、ATI低层次竞争的稳定状态极有可能被彻底打破。
  
  一个难以预知的未来
  
  
  毫无疑问,微软花费数年光阴打造的Longhorn将成为一个划时代的操作系统,而它在拥有超炫三维视觉效果的同时,也开创了一套面向未来的图形技术。对个人用户来说,Longhorn前所未有的华美视觉界面具有致命的吸引力,为了得到最卓越的效果,用户必须让自己的计算机拥有强悍的硬件系统,估计这又将引发一场升级狂潮,对整个产业界来说,Longhorn几乎可以与“挖钱机”划上等号。
  在这场变革中,微软无疑是最大的赢家。尽管很多人对这家以商业谋略见长的软件企业没有什么好感,但我们不得不承认这次微软干得漂亮。Longhorn也许有模仿苹果Mac OS 10.4 Tiger的地方,但它已由外及里全方位超越后者,至少Longhorn开创的三维视觉界面会成为未来操作系统技术发展的新目标,这一次或许是轮到苹果来模仿微软的产品了。更不为人注意的是,Longhorn的革命性图形技术让微软进一步巩固了该领域的优势,我们将看到WGF 1.0和WGF 2.0成为业界最热衷的图形技术,软硬件企业对此竞相追随,相比臃肿而缺乏活力的OpenGL体系,WGF会受到更广泛的欢迎,这对于开源阵营恐怕又是一个不小的打击。从现有的趋势来看,微软完全掌控图形产业应该没有太大的悬念,虽然肯定有一些企业会向微软发起挑战。

你可能感兴趣的:(图形引擎,图形图像,操作系统,Direct3D,GPU)