ImpressWatch中文站
天极网
技术快车道: i-TTL闪光灯技术Foveon X3影像感应器3CCD摄像系统微操苍天EXPEED数码影像处理器网络游戏防沉迷系统MUDCCD除尘涂层
其他热门术语推荐:
相关技术
  • NVIDIA SLI(2007-10-11 21:12)
  • NVIDIA TurboCache(2007-10-11 21:14)
  • NVIDIA PureVideo(2007-10-11 21:16)
  • MXM(2007-10-11 21:19)
  • PCI Express(2007-10-11 21:21)
  • NVIDIA PowerMizer(2007-10-11 21:23)
  • Extreme HD(2007-10-11 21:25)
  • 显卡接口类型(2007-10-19 18:39)
  • 显示芯片制作工艺(2007-10-19 18:44)
  • RAMDAC(2007-10-19 19:00)
  • 散热方式(显卡)(2007-10-19 19:05)
  • 开发代号(2007-10-24 17:31)
  • DirectX 5.0(2007-10-24 17:33)
  • DirectX 6.0(2007-10-24 17:39)
  • DirectX 7.0(2007-10-24 17:43)
  • DirectX 8.0(2007-10-24 17:45)
  • DirectX 9.0(2007-10-24 17:46)
  • DirectX 9.0c(2007-10-24 17:47)
  • DirectX 10
  •   DirectX 10

      几何渲染单元

      在DirectX 10的图形流水线体系中,最大的结构性变化就是在几何处理阶段增加了几何渲染单元(Geometry Shader)。几何渲染单元被附加在顶点渲染单元之后,但它并不像顶点渲染单元那样输出一个个顶点,而是以图元作为处理对象。图元在层次上比顶点高一级,它由一个或多个顶点构成。由单个顶点组成的图元被称为“点”,由两个顶点组成的图元被称为“线”,由三个顶点组成的图元被称为“三角形”。几何渲染单元支持点、线、三角形、带邻接点的线、带邻接点的三角形等多种图元类型,它一次最多可处理六个顶点。借助丰富的图元类型支持,几何渲染单元可以让GPU提供更精细的模型细节。

      几何渲染单元赋予GPU自行创造新几何物体、为场景添加内容的神奇能力。灵活的处理能力使GPU更加通用化,以往很多必须倚靠CPU才能完成的工作,现在完全可交由GPU处理。如此一来,CPU就有更多时间处理人工智能、寻址等工作。更令人惊喜的是,几何渲染单元还让物理运算的加入变得更简单,DirectX 10可创建具备物理特性的盒子、模拟刚性物体,物理运算有望在它的带领下逐渐走向普及。可以预见,借助几何渲染单元这一武器,显卡性能将产生质的飞跃,我们也将体验到速度更流畅、画面更精美、情节更细致的游戏。

      改进的API和驱动功效

      我们知道,每一个游戏角色、武器和景物在3D程序中都是一个Object(对象),而每一帧游戏画面就可能出现数百个Object。在显卡工作时,每一个Object都要从应用程序传输到API接口,然后通过显卡驱动程序到达显卡。在现有的DirectX体系中,任何一个Object进行操作或者渲染,都会导致系统资源的额外消耗,游戏的Object越多,所耗费的传递时间就越长,造成的额外消耗也就越多。据统计,现有的DirectX 9图形芯片在工作时,只有60%的性能用于运算3D程序,其余40%的运算能力被白白浪费了!

      为了改变这一现状,DirectX 10在渲染程序中采用了动态索引功能,Object被驱动程序自动加载,数据可以分类并连续输入,这样一来,单次传输的数据量就增加了,从而大大降低了额外耗费的时间。通过引入新的API及驱动程序,DirectX 10将图形芯片的执行效能提升至80%。在不增加显卡硬件成本的前提下,显卡性能得到了大幅提升。

      并行引擎支持技术

      为了提升多块显卡协作的工作效率,微软在DirectX 10中提出了“Parallel Engine Support(并行引擎支持)”的概念,它可以预先把两个GPU需要的数据分别传输到两块对应的GPU当中,帧渲染将完全由驱动控制和调配,两块显卡的工作强度可以获得很好的平衡。而在目前主从卡的运作模式中,主卡要对从卡框架、渲染数量进行判定,而引入并行引擎支持技术后,主从卡的概念将消失,两块甚至多块显卡的协作威力将充分体现。

      统一渲染架构

      DirectX 10最大的革新就是统一渲染架构(Unified Shader Architecture)。目前各类图形硬件和API均采用分离渲染架构,即顶点渲染和像素渲染各自独立进行,前者的任务是构建出含三维坐标信息的多边形顶点,后者则是将这些顶点从三维转换为二维,这样便可以通过视觉欺骗在屏幕上显示出“三维”的场景。与此对应,GPU中也有专门的顶点渲染单元和像素渲染单元来分别执行这两项工作(由于工作量不同,这两种渲染单元的数量不相等,顶点渲染单元通常只有像素渲染单元的1/3~1/2)。在过去几年中,这种分离式设计对计算机图形领域的发展做出了一定的贡献。

      不过,微软认为这种分离渲染架构不够灵活,不同的GPU,其像素渲染单元和顶点渲染单元的比例不一样,软件开发人员在编写代码时必须考虑这个比例,这就大大限制了开发人员自由发挥的空间。另外,不同的图形游戏或软件对像素渲染和顶点渲染的需求不一样,导致GPU的运算资源得不到充分利用。为此,微软在DirectX 10中提出了统一渲染架构的思想:在相同物理类型的渲染单元上执行不同类型的渲染程序。换句话说,只用一种渲染单元,让它既能完成顶点渲染,也能完成像素渲染,甚至还能实现几何渲染。这样一来,渲染单元可以得到最大程度的利用,减少了资源闲置的情形。目前,Xbox 360的显示芯片Xenos就采用了统一渲染架构,该芯片一共有48个渲染单元,它们可全部用于顶点渲染或像素渲染,没有固定分配比例。此外,ATI也打算在新一代的R600芯片中采用统一渲染架构。

      当然,统一渲染架构也并非完美无瑕。相对顶点渲染来说,像素渲染将面临大规模使用纹理所带来的材质延迟,这是统一渲染架构急待解决的问题。据悉,NVIDIA下一代的G80有可能继续坚持分离式设计。到底是统一架构好还是分离设计好?相信只有等G80和R600同台竞技后,答案才会揭晓。不过有一点可以肯定,在微软的大力推动下,统一渲染架构是大势所趋。

      Vista

      除统一渲染架构外,DirectX 10的另一大特色就是与Windows Vista紧密结合,Vista系统将调用GPU资源来渲染Aero Glass 3D界面,这样图形API就与操作系统核心高度整合在一起。举个例子,当我们点击应用程序时,CPU将立刻收到驱动程序的指令,而软件界面渲染指令则通过DirectX 10直接传送给GPU,这样,Vista就能与CPU和GPU同时沟通,让3D界面渲染工作变得更高效。

      相比之下,在DirectX 9环境中,Vista(软件)界面的渲染工作就要“迟钝”一些了:用户点击运行某个软件,Vista将相应的指令发送给CPU,要求CPU进行后续处理;CPU接到运行指令的同时向GPU发出请求,要求GPU在屏幕上渲染出界面。GPU(支持DirectX 9)识别Vista界面渲染指令后完成相应的工作(注意:DirectX 8显卡无法完成渲染工作,必须让CPU通过软件模拟来实现,此时系统速度非常缓慢)。换句话说,在“DirectX 9显卡+Vista”的平台中,CPU还是核心,GPU必须在CPU的控制下工作,而Vista系统也必须通过CPU来调用GPU的资源。

      DirectX9还有一个不足之处,那就是它只能进行单任务渲染,即无法同时完成两个场景的渲染工作(如无法在运行游戏的同时为软件渲染3D界面),应用范围受到极大的限制。而DirectX 10则允许GPU同时渲染多个不相关的3D场景,工作效率大为提高。因此,尽管DirectX 9显卡大都能驱动Vista华丽的Aero Glass视觉模式,但很多方面受到了限制,只有DirectX 10显卡才是Vista的理想“伴侣”。

      SM 4.0

      从DirectX 8开始,Shader Model(渲染单元模式)在DirectX体系中的地位就日趋重要,其版本和渲染单元的规格也成为了决定显卡性能高低的关键因素(编注:关于Shader Model的具体介绍,请大家参阅本报今年第7期D15版)。随着DirectX 10时代的到来,Shader Model也升级到了4.0版本。与眼下如日中天的Shader Model 3.0(以下简称SM 3.0)相比,Shader Model 4.0(以下简称SM 4.0)有哪些可喜的变化?

      首先,SM4.0中的指令长度被提升到大于64K(即64×1024)的水平,这是SM 3.0规格(渲染指令长度允许大于512)的128倍。显然,SM 4.0在为渲染出电影级别的游戏画面做准备。由于渲染指令长度大幅提升,SM 4.0中相应的寄存器规格也有所增强,如Constant寄存器采用16×4096阵列、tmp寄存器则有4096个、input寄存器采用16/32规格等,上述指标都比以前的DirectX有明显的改进。其次,SM 4.0在纹理数量方面也有提高。DirectX 10允许程序员在渲染物体时使用128个纹理,而DirectX 9只提供4/16规格,更多的纹理意味着物体表面精度更接近真实,游戏开发者拥有更广泛的选择。

      从上述情况不难看出,DirectX 10在性能方面的提升是巨大的,它将进一步解放CPU的资源。当然,我们也必须看到,DirectX 10对硬件(尤其是显卡)的要求也更为苛刻,GPU在设计上也将更加复杂。

    欢迎投稿|关于我们|网站律师|RSS订阅|友情合作|加入我们|网站地图  设定Impress Watch中文站为首页