directx是什么(DirectX 12为什么重要)
如果对于大部分玩家们来说 Windows 10 系统有什么盼头,那就莫过于 DirectX 12 了。根据微软的宣传,DirectX 12 能够显著提升游戏体验,这正是玩家们最为需要的。但是大家总这么说,到底 DirectX 12 能带来些什么?
前言
我们首先得从为什么需要 DirectX 说起。
如果是在主机上开发游戏,开发者只需要一套硬件对应一个品牌(Xbox、PlayStation、任天堂),也就是说他们只需要考虑一款处理器和一款显示芯片,内存需求、输入选项和其他硬件标准都是预先决定好的。
但到了 PC 游戏开发上,问题就开始复杂了。游戏开发者需要面对无数种硬件配置,要让游戏在茫茫多的显卡、主板和各种硬件平台上完美运行可以说困难重重。这就是为什么在上一个十年里,开发者们会纷纷涌向主机平台。
主机有着性价比高、盗版率低的特点,而且开发者在编程时还能够直接访问硬件 —— 后者是关键,因为这让开发者能够榨取硬件的每一寸性能,并且可以最大程度利用主机内置的部件特性。而这,就是 DirectX 对于 PC 游戏来说如此重要的原因。
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 最大的缺陷在于它始终不像主机那样,提供对硬件的底层访问。为了解决这个问题,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 核心的时代终于完全落幕。
你可以做如下想象:计算机从原本的单车道时代进入了超宽八车道时代,让 CPU 能够将渲染和指令计算的工作交给 GPU。对于玩家来说,这意味着更流畅的帧率和更好的画质。
如何享受 DirectX 12?
DirectX 12 还有一个亮点是它是 Windows 10 的原生 API,而 Windows 10 现在已经被应用在了各个不同种类的设备上 —— 台式机、笔记本电脑、平板电脑、手机,甚至 Xbox One。DirectX 12 还在一定程度上向下兼容,让 PC 玩家不需要购买新的显卡也能游玩喜欢的作品。
根据微软的说法,DirectX 12 比起 DirectX 11 来,在 CPU 利用效率上能有 50% 的提升,而且在程序化指令或线程的多序列工作上也有更好的任务分配。
好消息是现在有为数不少的 PC 游戏已经做好准备迎接 DirectX 12 了,比如《奇点灰烬》、《上古卷轴 OL》、《古墓丽影:崛起》、《战争机器:终极版》和《杀手》。除此之外,《杀出重围:人类分裂》、《星际公民》、《极限竞速 6:巅峰》等即将推出的作品也会支持新的 API。
总的来说,如果游戏支持 DirectX 12,那么它就有望能够为玩家带来更好的性能表现。这样一来,开发者就需要为那些已经推出的作品进行更新,以便让它们支持 DirectX 12,但他们会不会积极响应呢?
无论是 Nvidia 还是 AMD 都已经开始了它们对 DirectX 12 的支持,所以未来毫无疑问将会是新 API 的时代。如果你还没有更新 Windows 10,DirectX 12 会是一个很好的推动力。DirectX 12 带来的变化那么大,而且微软又急于推广 Windows 10,因此它肯定是不会支持旧系统了的。