谈到游戏、显卡,DirectX已经是一个不得不提的词汇了,但到底什么是DirectX呢?
DirectX,(Direct eXtension,简称DX)是由微软公司推出的多媒体应用程序接口。由C++语言编写,遵循COM。其API(应用程序接口)包含DirectGraphic、DirectPlay、DirectSound、DirectInput、DirectSetup等部份(Direct3D与DirectDraw已整合成DirectGraphic)、DirectMusic、DirectPlay,被广泛应用于Microsoft Windows、Microsoft Xbox和Microsoft Xbox 360游戏机上。DirectX经历长时间的发展(如下图所示),拥有多个版本,最新的版本号为DirectX 11,建立在Windows 7之上。
DirectX的发展史
DirectX虽然经历了多年的发展,演变甚多,但是最引人关注的还是DirectGraphic(包含旧版本中的Direct3D),因为其与游戏的发展相关。DirectX是伴随着Windows发展的产物,在Windows 3.1推出时,系统的能力还是很弱,声音处理甚至一次只能播放一个声音,更别谈3D性能了。而且DirectX这时还是首次出现,无论硬件还是软件上都未完善,DirectX更多的是一个标志。到了DirectX6.0时候,微软在其上面加入了双线性过滤、三线性过滤等优化3D图像质量的技术,加入环境影射凹凸贴图,使3D游戏的画面更具有真实感,DirectX开始了在游戏上的广泛应用。但到了DirectX 7.0,也就1999年,DirectX才展示了惊人潜在实力。
DirectX 7.0,成功
1999年9月,极具历史性意义的DirectX 7.0发布了,而在同年8月份,首款DirectX 7.0支持DirectX 7.0的显卡——Geforce 256(代号NV10)也发布了。DirectX 7.0与Geforce 256奠定了今天的局面。
首款支持T&L技术的GPU——NV10
DirectX 7.0最大的特色就是支持T&L(Transform & lighting),中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换;3D游戏中除了场景+物体还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是最消耗资源的。虽然OpenGL中已有相关技术,但此前从未在民用级硬件中出现。在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU来计算,这样就可以把CPU从繁忙的劳动中解脱出来。换句话说,拥有T&L显示卡,使用DirectX 7.0,即使没有高速的CPU,同样能流畅的跑3D游戏。(广告词)
七彩虹的Geforce 2MX400显卡
虽然Geforce 256是首款支持T&L技术的产品,不过它只是过渡产品,真正的肩负其普及DirectX 7.0显卡任务则是Geforce 2MX系列显卡。
DirectX 8,竞争者出现
到了2001年的时候,到了2001年的时候,微软发布了DirectX 8.0。微软在DirectX 8.0上首次引入了“像素渲染”的概念,同时具备了像素渲染引擎(Pixel Shader,简称PS)与顶点渲染引擎(Vertex Shader,简称VS),而那时候衡量一款显卡的架构的一个很重要指标就是含有多少条流水线,每条流水线中含有多少PS和VS,PS和VS的多少与效率决定了显卡档次与性能。与T&L相比,PS和VS的出现,能否让程序更好实现动态光影效果,而且让GPU的架构更为灵活,提供了其可编程能力。
3Dmark 01的测试画面
在2002年的时候,微软将DirectX 8.0小幅度升级,成为了DirectX 8.1,PS升级到1.2、1.3、1.4版,可以支持最高每时钟28指令执行,其中PS 1.4版当时仅ATi Radeon 8500显卡支持。不过在DirectX 8.1并没有得到广泛的支持,ATi的Radeon 8500是少数支持的DirectX 8.1技术的产品。
七彩虹推出的Radeon 8500显卡
在2001年、2002年的时候,在DirectX上已经步入了DirectX 8.0时代,NVIDIA的竞争对手——ATi也陆续发布了自己DirectX 8.0显卡。不过这时候最普及的显卡并不是Geforce 3、Radeon 8500这些新品,而是Geforce 2MX系列显卡和Geforce 4MX系列显卡,但Geforce 2MX系列显卡和Geforce 4MX系列显卡并不支持DirectX 8.0,仅支持DirectX 7.0。纵使如此,但是这丝毫没有影响Geforce 2MX系列显卡和Geforce 4MX系列显卡的营销,除了NVIDIA的营销成功,还有一个重要因素是即使Geforce 2MX系列显卡和Geforce 4MX系列显卡支持DirectX 8.0技术,亦不可能在DirectX 8.0模式下流畅运行游戏。而这一局面,至今没有改善,每当新一代DirectX发布,除了旗舰显卡外其它定位的显卡都无法运行支持新一代DirectX的游戏。若要中低端显卡能运行DirectX显卡也能流畅运行时,那意味着新一代的DirectX即将出来。
最后一提的是,在R2XX时代,ATi放出了Tessellation技术的前身——TruForm技术,不过由于开启TruForm技术后,物体、人物会出现胡乱变形的情况,该技术并没有被市场所接受。
DirectX 9.0,变局
2002年12月,微软发布了DirectX 9.0,淘汰了T&L单元,而PS和VS的版本升级到了2.0。DirectX 9.0看似变化不大,但是影响却是深远的。
首先,PS 2.0具有更完备的可编程架构,能够即时计算纹理效果、实现动态纹理贴图,还减少了显存的使用,理论上提供了贴图的的精确度;在PS 1.4仅能支持28条指令,同时操作6个材质,而PS 2.0能够实现支持160个硬件指令,同时操作16个材质数量。其次VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。
而在2003年、2004年,微软先后把DirectX 9.0升级为DirectX 9.0b、DirectX 9.0c,进一步提高了DirectX的功能与效能。
Half-life 2的游戏截图
时间点定在2003年下半年,基于DirectX 9.0技术的大作——Half-life 2发布了,一个完全确定了当时ATi 3D显卡王者地位的游戏,一个让Radeon 9550成为神话的游戏,一个让NVIDIA流泪满面的游戏,一个让Radeon 9600PRO打败NV3X系列显卡的游戏……
Half-life 2的游戏截图
在Radeon 9700PRO发布的初期,尚未有DirectX 9.0游戏,加上Geforce Ti4600的DirectX 8.0性能也不弱,纵使那是Radeon 9700PRO确立3D王者的地位,但是优势还是不大。而跳票过后出来的Geforce 5800Ultra,靠着驱动程序在有些游戏能甚至还能力压Radeon 9700PRO。但是到了Half-life 2的出现,向NV3X系列显卡扔下了最后一根稻草,在开启DirectX 9.0模式后,即使Radeon 9600PRO也能与Geforce 5900Ulta抗衡了。Half-life 2的出现,证明NV3X的架构运行DirectX 9.0是低下,而这一局面直到NV40发布后才改变。
一代神卡,Radeon 9550,七彩虹在镭风9550CT冰封骑士加入了“夹层式流体”LHPC热管技术
DirectX 10,统一渲染引擎
2006年,现在主流的DirectX 10终于出现了。对于消费者来说,DirectX 10最大的改变就是取消了PS和VS,以Unified Shader(简称US,统一渲染引擎;后来US改成为StreamProcessor,SP,流处理器)代替。US是整合了PS和VS功能的渲染引擎,它的出现打破了以往显卡中像素渲染能力和顶点渲染能力固定的局限性,在实际运行游戏中,显卡会根据实际需求分配US去实现像素渲染和顶点渲染,让显卡的资源更充分运用起来。从此,SP的数量代替了PS、VS成为衡量显卡性能的指标。
此外,DirectX 10还将Shader Model升级为4.0,首度实现了RayTracing光线追踪,细分的虚拟位移贴图(Displacement Mapping with Tessellation)。在2008年2月,DirectX 10升级为DirectX 10.1,但是并没有得到游戏厂商的踊跃支持。
七彩虹的镭风2900XT-GD3 CH版 512M V10
在DirectX 10显卡市场,再没有出现以往一边倒的情况,在DirectX 10早期,NVIDIA凭借着G80获得了巨大优势,但是AMD在Radeon HD4800系列上采用小芯片策略与GDDR5的成功,在DirectX 10后期扳回一城。
七彩虹的镭风4870-GD5 冰封骑士3F 1G N40显卡,支持独有的SmartLIVE技术,Radeon HD4870的小芯片策略,为AMD扳回一城
DirectX 11,未来
采用Cypress核心的七彩虹iGame5870-GD5 CH版 1G J50,七彩虹在iGame上引入了独家的IPU提速芯片,降低纹波噪音利器
而在今年10月,微软终于发布了新一代DirectX——DirectX 11。DirectX 11的新特性就不用多说了,现在都是铺天盖地地关于DirectX 11技术的文章,我们评测室早着也推出了《尤里的复仇ATi HD5870视频图文评测》。而AMD也推出了多款支持DirectX 11的Radeon 5XXX系列显卡,而NVIDIA的DirectX 11游戏显卡Fermi得等到明年才来出来,鹿死谁手,上不好说。
DirectX11硬件尚未定案,而DirectX 11软件上亦尚存问题。微软在DirectX11上引入了Tessellation技术,在《Heaven》Benchmark上Tessellation得到完美展示,但是Tessellation亦出现了TruForm曾经出现的问题。如下图所示,在开启Tessellation后,部分3D模型会出现不正常的变形。
上图为关闭Tessellation。下图为开启Tessellation
DirectX经过了10多年的发展,从DirectX 1走到了DirectX 11,它打败了3DFX的Glide,把Opengl挤到专业市场、Opengl在游戏市场上的份额所剩无几,微软用了10多年的时候,用DirectX统一了PC上的3D API,还将DirectX延伸到其它领域。DirectX是成功的,但是它的成功离不开GPU供应商——ATi(AMD)和NVIDIA的支持,而这些年来ATi(AMD)和NVIDIA角逐显卡市场份额,也推动了DirectX的进步。在将来一段时间来,这一局面将会继续,即使DirectX 11发布了也不会改变,而DirectX 11的发布将会带来什么变局,则还需留待观察。