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