Yesky首页| 产品报价| 行情| 手机 | 数码 | 笔记本 | 台式机 | DIY硬件 | 外设 | 网络 | 数字家庭 | 评测 | 软件 | e时代 | 游戏 | 视频 | 壁纸 | 群乐 | 社区 | 博客 | 下载
您现在的位置: 天极网 > 硬件 > 显卡 > 虚拟世界由此开始 追逐3D世界的脚步
全文

虚拟世界由此开始 追逐3D世界的脚步

2005-09-17 21:49 作者: 刘泽申 出处: IT世界 责任编辑:>召

第六页:一切只是开端!3D世界的未来

6.1 DirectX 10、DirectX Next前瞻

  当我们沉迷于DirectX 9、OpenGL 2.0营造的光影世界时DirectX 10已经处于紧锣密鼓的研发状态。这个曾经被称作Windows Graphic Foundation 2.0(以下简称WGF2.0) 的图形API对比DirectX 9有了翻天覆地的变化。在WGP 2.0里面,以往固定的渲染模式被统统扔进了垃圾堆,Vertex Shader和Pixel Shader的概念也被MS彻底抛弃。

  在DirectX 10里面提出了Unified Shader Model(统一渲染体系架构)的概念。所谓Unified Shader从API角度来说就是把Vertex Shader和Pixel Shader从原来的固定单元中抽象出来,然后用统一的方法进行管理。对于程序员来说在编写游戏的时候根本不需要分别对Pixel Shader和Vertex Shader进行编程,因为所有的Unified Shader单元都能够根据需要在顶点处理和象素处理间进行切换。

  DirectX 10还废除了2D的DirectDraw概念,然后把它并入Direct3D中从而形成一个更大的子集。这样无论程序是运行在Windows窗口模式下还是运行在全屏幕3D情况下都能实现所有图形卡功能,程序员也不必更多的考虑针对某些部分设计专用代码。这样带来的另外一个好处就是GPU再也不必过多的依赖CPU进行任务分配了,在CPU占用率100%的情况下GPU照样能够自己执行所需要的操作,从而极大的提升性能。最后WGF 2.0中还首次提供了完整的整数指令集以供开发人员适用,完整的整数指令集意味着完整的编程性能,在WGF2.0环境下GPU的可编程灵活性将会向CPU看齐。

  竟然在API中定义了Unified Shader Model,那对应的GPU也必须提供Unified Shader Model以供程序实际运行使用。事实上无论是ATi还是NVIDIA甚至是S3都在以最快的速度研制Unified Shader Model的GPU产品。相对于API简单的定义来说,要将GPU的象素处理和顶点处理抽离出原有体系,并且整合为一个执行单元的难度是非常大的。因为2个处理单元分别位于GPU处理流程的不同位置。与此同时使用了Unified Shader Model之后,GPU内部必须保证数量众多的ALU才能使得GPU执行效率不至于太低。复杂众多的ALU必将会导致整个GPU晶体管数量的极大提升,可以预计NVIDIA NV50、ATi R600系列的晶体管数量将会超过4亿!

6.2 GPU的Unified Shader体系

  那对于GPU来说Unified Shader Model会带来什么好处?我们今天对于Geforce7800GTX、Radeon X1800习惯了解他有多少条象素流水线、多少个Vertex Shader Processer等。在未来GPU中这些概念都将废除同时代之以ALU。ALU是个完整的图形处理体系,他既能够执行对顶点操作的指令(代替VS),又能够执行对象素操作的指令(代替PS)。GPU内部的那么多ALU甚至能够根据需要随意切换调用,从而极大的提升游戏的表现。

首个US体系的GPU是Xbox360上ATi设计的C1

小知识:什么是ALU

  它的中文意为算术/逻辑单元(英文为Arithmetic/Logic Unit,ALU)负责处理数据的运算工作,包括算术运算起(如:加、减、乘、除等),逻辑运算(如:AND、OR、NOT..等)及关系运算(比较大小等关系),并将运算的结果存回记忆单元。对于GPU来说,ALU就是能够被编程使用进行图形计算的算术执行单元。

C1的内部体系架构(推测)

  举个例子来说,假设新的GPU内部有32个ALU。那在执行顶点操作众多且复杂应用时可以分配12个ALU做顶点处理,剩下的20个ALU做象素处理。一旦遇到象素操作密集的应用时程序员又可以让30个ALU做象素处理(等效于现在的30条象素流水线),让2个ALU做顶点处理。当然,新一代GPU很可能会包含40个甚是更多的ALU。

6.3 GPGPU的惊人潜力

  从以往的DirectX 8到未来的DirectX 10,从IRIS GL到OpenGL 2.0。所有API的进步几乎都是GPU可编程性的进步。我如果告诉你,有人用GPU进行音频处理和算术计算,你会不会觉得我疯掉了?事实上这正是GPU惊人的可编程能力的真实写照。而GPU强悍的处理能力配合不俗的编程能力,GPGPU逐渐成为了热门话题。

  GPGPU全称是General Purpose GPU即通用计算图形处理单元的意思。GPGPU着重于利用GPU的可编程性能让GPU去实现处理3D图形以外的计算应用。在已经公布的众多论文中Geforce6800 GPU已经能够实现音频处理、有限元分析、流体模拟等众多应用。

GPUGem2一书中关于GPGPU的处理流程

  对GPGPU进行深入研究是从2003年开始的,在那年的SIGGRAPH 2003大会上许多业界泰斗级人物发表了关于使用GPU进行各种运算的设想和实验模型。而2003年的SIGGRAPH会议上更是特地安排时间进行GPGPU的研讨交流。GPU恐怖的浮点运算能力和数据流吞吐量使得人们希望用GPU来加速预算,举例来说,一颗主频为3GHz的 Pentium 4处理器的理论计算速度为12GFLOPs/sec,而GeForce 7800GTX的计算能力则达到惊人的165GFLOPs/sec(此数据由NVIDIA提供)。

  在众多GPGPU项目研究中最接近成功的是英国剑桥大学的BionicFx课题组。早在2004年9月份,剑桥大学的BionicFx课题组便宣布在NVIDIA的GeforceFX 5900产品中实现了专业的实时音频处理功能,并且准备进行商业化的运作,对其产品进行销售,给音乐创作者带来实惠。

  现在,该解决方案命名为“音视频互换技术”(Audio Video EXchange,AVEX)。从BionicFX课题组透露的流程图中我们可以看到BionicFx的工作原理就是把待处理的音频数据转换成图形数据,然后再交由GPU处理,最终把计算完成的图形数据还原为音频。可惜1年过去了,BionicFx课题组依然没能拿出最终可用的AVEX产品。

BionicFx流程图

  其实把GPU当作普通处理器进行使用依然有着不小的难度。其中最要命的恐怕就是GPU是设计来处理图形的,因此他的编程语言架构和编程环境都难于使用。实现GPU运行非图形程序时,往往需要依靠极端复杂的算法和较为曲折的流程。在今年微软举办的GDC 2005(游戏开发者大会)会议上,Mark Harris便清晰的指出了GPGPU所遇到困难和前进。无论如何,GPU作为一个强悍的处理器,必将会被用于处理更多浮点密集运算的应用,而不仅限于图形。

结语:

  尽管花了很长的篇幅,但我们依然无法将十一年间3D世界的每次变革记入本文。十一年前3D世界粗糙且错漏百出,十一年后3D世界已经色彩斑斓,以假乱真。我们无法想象在这突变后面所包含的智慧和创意,我们也无从知道究竟有多少人在致力于模糊真实和虚幻之间的界限。为此,我们只能带着好奇心,去幻想未来十一年后3D世界的模样……


  阅读关于 显卡 GPU 的全部文章
共6页。 首页 上一页 2 3 4 5 6
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml