DirectX 12为什么重要 directx是什么

directx是什么(DirectX 12为什么重要)
如果对于大部分玩家们来说 Windows 10 系统有什么盼头,那就莫过于 DirectX 12 了 。根据微软的宣传,DirectX 12 能够显著提升游戏体验,这正是玩家们最为需要的 。但是大家总这么说,到底 DirectX 12 能带来些什么?
前言

DirectX 12为什么重要 directx是什么

文章插图
我们首先得从为什么需要 DirectX 说起 。
如果是在主机上开发游戏,开发者只需要一套硬件对应一个品牌(Xbox、PlayStation、任天堂),也就是说他们只需要考虑一款处理器和一款显示芯片,内存需求、输入选项和其他硬件标准都是预先决定好的 。
但到了 PC 游戏开发上,问题就开始复杂了 。游戏开发者需要面对无数种硬件配置,要让游戏在茫茫多的显卡、主板和各种硬件平台上完美运行可以说困难重重 。这就是为什么在上一个十年里,开发者们会纷纷涌向主机平台 。
主机有着性价比高、盗版率低的特点,而且开发者在编程时还能够直接访问硬件 —— 后者是关键,因为这让开发者能够榨取硬件的每一寸性能,并且可以最大程度利用主机内置的部件特性 。而这,就是 DirectX 对于 PC 游戏来说如此重要的原因 。
DirectX 是什么?
DirectX 12为什么重要 directx是什么

文章插图
简单来说,DirectX 是一种由微软开发,用以和 PC 硬件“交流沟通”的软件 。再说具体一些,它是一套应用程序接口 —— 也就是 API —— 的集合 。DirectX 的工作和 2D 及 3D 的矢量图形渲染有关,负责 Windows 平台的视频渲染和音频播放 。
目前与 DirectX 形成竞争的是 OpenGL,这是于 1992 年推出的另一个图形 API 套件 。OpenGL 采用开源原则,并且得到 Khronos Group 团队的持续开发 。因为 OpenGL 是跨平台 API,它并不像 DirectX 那样能得到 Windows 的原生支持 。
DirectX 最初出现在 Windows 95 时代 。那个时候,大多数 PC 玩家还守在老旧的 DOS 平台上 。DOS 给予开发者直接访问 PC 硬件的权限,这是很大的诱惑 。Windows 95 并不提供这样的能力,直到 DirectX 横空出世 。
其实最开始 DirectX 并没有得到关注,因为开发者们更依赖 OpenGL,而且他们认为 DOS 环境更有效率 。不过随着时间的推移,DirectX 逐渐强大起来 。当开发者意识到这一点后,它的地位变得不可动摇 。
要说 DirectX 真正开始战胜 OpenGL,那还是在 2002 年,也就是著名的 DirectX 9 出现的时候 。Windows XP 的成功大大加速了 DirectX 的增长,时至今日这个平台已经高度稳定并且仍在全球范围内被使用 。Windows 10 逐渐将成为主流,它即将带来最新的 DirectX 12 。
DirectX 12 将带来什么?
DirectX 12为什么重要 directx是什么

文章插图
在这个最新的版本发布之前,DirectX 最大的缺陷在于它始终不像主机那样,提供对硬件的底层访问 。为了解决这个问题,AMD 自立山门推出了 Mantle API 套件,让开发者可以在 AMD 的产品上优化软件 。
从本质上说,图形芯片已经变得和主处理器一样强大了,足以承担图形渲染之外的运算任务 。AMD 的 Mantle 让开发者能够充分利用那些支持它的 Radeon 显卡的性能 。从人们的反馈来看,Mantle 口碑很好,表现得也十分出色 。然而就在微软推出了新版本 DirectX 解决底层的问题后,Mantle 的短命也就成了注定 。
来自 Nvidia 的 Henry Moreton 是这么概括 DirectX 12 的:“DX12 重在极大提升视觉效果的丰富程度,但却能显著减少 CPU 与 API 有关的负担 。过去,驱动程序和系统软件会为开发者管理内存、状态和同步 。然而,对应用程序需求的理解不完全导致了效率偏低 。DX12 让应用程序能够直接管理资源和状态,并执行必要的同步 。结果是,高级应用程序的开发者将能够有效率地控制 GPU,充分利用上自己对游戏开发知识的精通 。”
通过将更多工作分配给图形芯片,主处理器的负担就会少很多,游戏也就不会被系统后台中的各种任务所拖慢 。越多的核心性能越好,意味着双核处理器会和四核处理器有明显的差距 。
这一点对图形芯片来说也是一样的,双显卡当然性能要更强,我们通过 Nvidia 的 SLI 和 AMD 的交火理解了这一点 。配合 DirectX 12,游戏或还将有更好的表现,因为负载现在可以被同时分配到不百思特网同的核心上了,而非像以前那样一次只能有一个核心负责 。
这个改变非常重要,因为 DirectX 11 并没能完全利用上多核心的优势,一次只有一个核心在工作,其他的全都在待机 。DirectX 12 发布后,单 CPU 核心和单 GPU 核心的时代终于完全落幕 。

推荐阅读