2009年10月22日,微软公司正式发布Windows 7,DirectX11集成在Windows 7 中同步登场,但其实DirectX 11只是DirectX 10的大幅度加强版,而不是9.0C和10.0/10.1的彻底革新。
DirectX 11带来了Tessellation(拆嵌式细分曲面技术)、Multi-Threading(多线程)、DirectCompute(通用计算)、Shader Model 5.0(渲染引擎5.0)以及Texture Compression(纹理压缩)五个重要特性,为用户带来更好的视觉享受。
Win7直接提供了DirectX 11,而Vista则可通过升级DirectX驱动包来支持11.0。
DX12最重要的变化就是更底层API,这一点很像AMD Mantle,在硬件抽象层上走得比以往更深入,能够同时减轻CPU、GPU的过载(overload)。
具体包括:应用可追踪GPU流水线、控制资源状态转换(比如从渲染目标到纹理)、控制资源重命名,更少的API和驱动跟踪,可预判属性,等等。
另外,DX12大大提高了多线程效率,可以充分发挥多线程硬件的潜力。DX11在这方面受CPU性能的严重制约,主要是因为不能有效利用多核心。
微软宣称,微软对多核心CPU的利用几乎完美线性增长的,也就是说四核心能接近单核心的四倍。
此外还有渲染流水线、渲染特性、资源管理、命令列表与绑定、描述符跳跃等等方面的改进,因为主要是关于开发的,也比较深晦,这里就先不说太多了。
DirectX11和DX12主要在游戏帧数、功耗、跨平台游戏支持性等方面存在区别。游戏帧数方面,DX11随着画面的复杂度和细节提升会有明显的帧数下降,而DX12帧数会保持一个比较稳定帧数;在功耗方面,渲染同一场景时DX12会有比DX11更低的功耗表现。具体介绍如下:
1、游戏帧数方面,DirectX12相比DirectX11拥有10%到20%的性能提升,DirectX12大大提高了多线程效率,可以充分发挥多线程硬件的潜力;
2、在功耗方面,在相同硬件的条件下,DirectX12相比DirectX11功耗会有明显的降低;
3、跨平台游戏方面,DX12支持跨平台游戏,Unity引擎和虚幻引擎支持DX12的API,可以实现在不同平台上玩同一款游戏,降低了开发者移植开发游戏的工作量。
4、需要注意的是,要发挥出DirectX12的性能,首先系统必须是Windows10,另外显卡与游戏还要同时支持DirectX12和Windows10系统,这样才能体验更高效的directx12性能。