关于 DirectX 你需要知道的一些事
时间:2023-06-21 19:18:50
在 Windows 中安装好游戏时就会提示是否升级到 DirectX 最新版本记忆犹新。你有没想过 Windows 为什么要提示进行 DirectX 升级呢?下面我们就来逐步揭晓答案。
什么是 DirectX
计算机其实是通过软件在与硬件进行交互,对于普通用户来说,你可能不太关心软件对硬件的操作和管理过程。软件的所有操作层面下,开发人员需要花费大量时间进行编程,以期让硬件资源的高效利用变成可能。
对于像 Xbox One 或 PlayStation 4 这样的游戏机来说,通常采用相同的处理器、显卡和内存等硬件,所以其操作系统都是相同的。例如 Xbox One 的游戏开发商已经明确知道将来会运行的硬件平台,所以可以有针对性的为硬件开发游戏,以利用好每个硬件特性和资源,提供最佳性能。
然而,对于普通 PC 游戏开发而言,事情就不那么简单了。不同 PC 生产厂商和用户自行组装的兼容机会有不同的 CPU、显卡、主板和声卡等硬件,这样硬件平台就会有无数种不同的排列组合。那么,开发人员要如何确保能得到最好的性能呢?
这就是 DirectX 的用武之地了!DirectX 是一种应用程序编程接口(API),微软在 Windows 系统引入它之后,就可以让软件开发商(例如游戏厂商)更容易地与不同硬件组件进行交互。
DirectX 大致分为如下三个部分:
Direct3D:用于显卡渲染 3D 对象
DirectDraw:用于显卡渲染 2D 对象
DirectSound:用于声卡更好地处理音频
简单点来说,DirectX 就是让游戏厂商在 Windows 中与不同硬件打交道的一个传话员和桥梁,不必再单独为不同硬件编写代码。
DirectX 与 OpenGL
与微软的 DirectX 类似,还有另一套被称为 OpenGL 的行业标准 API。其实无论 DirectX 还是 OpenGL,都是在做相类似的基本工作:让开发人员更容易与不同硬件进行交互。
虽然工作方式类似,但两项技术在实现上还是有一些根本区别。DirectX 让开发人员能够更多的控制硬件,让他们自行选择如何使用系统中的各种资源。而 OpenGL 的开发人员则必需遵循特定参数并相应地进行资源分配。
至于 DirectX 与 OpenGL 孰优孰劣,这么多年来一直是个争论不休的话题。对于普通消费用户来说其实不必关心这么多,只需要知道 DirectX 是为 Windows PC 提供,而 OpenGL 大多针对 Linux 游戏进行优化,例如 SteamOS。
DirectX 12 有什么特别之处
Windows 10 是微软最新版本的操作系统,我们在之前的 Windwos 10隐藏特性Top 10 中就曾介绍过最新的 DirectX 12 也是其独有的最新版本。就目前的各种性能测试数据来看,Windows 10 中 DirectX 12 的性能远优于 Windows 8 支持的 DirectX 11,这应该也是微软劝用户升级的一种策略吧。
DirectX 12 的最大优点之一就在于多显示核心支持,现代 CPU 大多都是处理器与显示核心集成的统一芯片,既然 CPU 已经有了图形处理单元,为什么要浪费掉呢?DirectX 12 可以智能平衡计算机主显卡与 CPU 内置图形处理单元的负载,让显卡处理较大负荷而核显处理轻负载状态,以达到更好的图形和游戏渲染处理速度。
需要注意的是目前 DirectX 12 还没被各大开发商广泛应用,而且不支持一些老旧硬件:
Nvidia 显卡需要 GTX400 及较新的基于 Fermi 架构的产品
AMD 显卡需要 HD7000、R5240 或较新的 基于GCN 架构的产品
对于 Intel 板载显卡需要 Intel Haswell 或更高 CPU
对于 AMD PC 板载显卡需要 AMD Kaveri、Mullins、Beema 或更高 CPU
如何查看和更新DirectX
要查看当前 Windows 中的 DirectX 版本步骤非常简单:
1使用 Windows + R 快捷键打开「运行」
2执行 dxdiag 命令并回车
3在弹出的「DirectX 诊断工具」中即可看到当前 Windows 所使用的 DirectX 版本号。
Windows 10 用户会是 DirectX 12 或 DirectX 11,Windows 7 和 Windows 8 应该为 DirectX 11,如果还有人在用 Windows XP,可能会看到 DirectX 9。如果你认为版本过老,可以从微软官网下载安装 DirectX 或通过 Windows Update 自动更新。
此外还请大家到「DirectX 诊断工具」的「显示」选项卡查看 DirectDraw 加速、Direct3D 加速和 AGP 纹理加速这 3 项目功能是否已启用。如果没启用的话说明当前硬件不支持,只能通过升级硬件来解决了。
关于 DirectX 你需要知道的一些事的下载地址: