玩游戏,DX11和DX12该怎么选?

作为一个游戏玩家,只要打开现在的游戏的图像选项,大概都会看到一个“渲染选项”,询问你是选择DirectX11(DX11)还是DirectX12(DX12)。那么,两者有什么区别呢?游戏玩家该怎么选呢?

DirectX是什么?

很长时间以来,PC玩家都曾面临一个问题,就是明明硬件配置高于同时代的游戏主机,但是在性能表现上就是不如游戏主机。这像 Xbox或PS这样的游戏主机都有特定的硬件,除了存储介质大小不同,它们都有相同的处理器、显卡和内存等,也就是配置完全一样。开发者只需要使用一套硬件规范进行开发。

这对开发人员从硬件中榨取一切资源,提供最佳性能提供了方便,游戏优化也变得更加简单。

但是电脑不同,电脑的配置千差万别,性能差异、硬件属性、开发接口、资源调用方式也不同,因此PC游戏开发的硬件适配和硬件性能优化非常复杂、困难,需要更加庞大的具有专业硬件知识团队不断进行适配和优化调优。这大大增加了开发团队规模和成本,以及开发周期。

这就是 DirectX 的作用所在。DirectX是微软开发的一种应用程序编程接口 (API),可让软件开发人员更轻松地与 Windows PC 上运行的不同硬件组件进行对话。简单地说,DirectX 是一种语言桥梁,它能让视频游戏制作者与运行 Windows 的 PC 上的各种硬件进行对话,而无需为每种硬件编写单独的代码。

DirectX 大致分为三个部分:Direct3D,负责提供使用显卡渲染 3D 对象的API,而DirectDraw负责提供使用显卡渲染 2D 对象API,DirectSound负责使用声卡提供更好的音频效果API。

当然,类似的API标准还有OPENGL和Vulkan,不过它们更多集中在图形渲染上,甚至某些情况下使用Vulkan的游戏可能图形性能还略好于DX。但这些第三方API,对于声音等的API的广度不如DirectX。加上微软手持对Windows底层硬件代码的掌握,因此在系统整体性能的整合上更具有一定优势,所以自从它推出以来,迅速占领了开发社区。

自从DirectX推出以来,产生巨大影响的有四个版本,即DX7、DX9、DX11、DX12。

而目前3A大作和主流游戏引擎,主要采用的是Win8推出时候集成在Windows中的DX11,和Win10推出时同步集成的DX12。

DirectX 11 和 DirectX 12 之间区别何在?

那么,DirectX 11 和 DirectX 12 之间有哪些区别呢?

简单来说,DirectX 11 是高层应用程序接口,而 DirectX 12 是低层应用程序接口。游戏和硬件之间交互处理有不同的层级。低层应用程序接口更接近硬件,而高层应用程序接口则离硬件更远、更通用。

这是 DirectX 11 和 DirectX 12 之间的重要区别。因此DirectX 12 允许游戏开发人员在更接近硬件的地方进行优化,从而减少 API 和图形驱动程序的开销。

在发布之初,DirectX 12 的性能实际上略低于 DirectX 11,主要原因是其复杂性,不过经过微软多年优化,DirectX 12 的API性能本身现已经优于 DirectX 11。

其中最明显的区别是它们与硬件的交互方式。大多数使用 DirectX 11 开发的游戏只能使用两到四个 CPU 内核。其中一个内核通常会告诉 GPU 做什么。然后,游戏会使用剩余的核心来处理各种 CPU 密集型设置,如游戏的粒子或绘制距离。

然而对于3A游戏来说,这造成了新的多核CPU用户出现“一核有难N核围观”的硬件资源浪费现象,影响了游戏性能。

而DirectX 12 将 CPU 的工作量分散到多个内核上,并允许每个内核同时与 GPU 对话。另外,DirectX 12 还配备了一些面向未来的功能,其中包括异步计算和流水线状态对象(PSO)。异步计算允许多个工作负载并行工作,从而提高了 GPU 的利用率。这基本上释放了显卡 的全部潜能。

DX12虚幻引擎测试,前者采用传统串行渲染,后者采用并行+异步多设备运算,将运算负荷分担到独显和集显上

就像餐厅里的服务员一样。当服务员为您点餐时,他们会先问您想喝什么。收到饮料后,他们会问您想吃什么主菜。您点的菜是分步进行的。服务员不会在您吃完主菜之前问您想吃什么甜点。这样做虽然有效,但效率不高。

有了 DirectX 12 的异步计算,服务员就能像快餐连锁店一样,一次性完成您点的菜。这样可以最大限度地利用 GPU,提高游戏性能。

除图形渲染外,显卡还能处理大量其他任务,如运行机器学习算法。在 DirectX 11 中,显卡一次只能按一定顺序执行其中一项任务。当出现这种情况时,性能就会受到影响,因为 GPU 资源没有得到有效利用。

另外,DX12加入了对光追等最新图形属性的支持。

当然,这些都是理论对比。那么实际性能表现呢?

只要硬件支持,DX12总体性能更好

对实际性能表现来说,游戏分为画质性能和流畅性能。前者由于DX12支持更多的新的显卡的渲染特性,因此画质上面,一般是要由于DX11的。特别是2015年以后的3A大作,体现更为明显。

而在流畅度方面,由于DX12引入了并行处理和一部运算等更适应8核以上CPU或者大小核设计的异步运算架构CPU,因此在吃CPU性能的游戏上的优势更加明显。同时由于DX12能够将运算负载分配在CPU的多核+集显+独显,因此在优化到位情况下,微软声称可以节约最高50%的系统资源,流畅度也更好。

不过,这一切建立在游戏基于DX12开发,且你的硬件平台具有所有的DX12特性支持上。

DX12特性美好,但受到了限制

DirectX 11 和 DirectX 12 发布之间有六年的间隔。在此期间,已有数千款游戏使用 DirectX 11 开发。

DirectX 11作为高层 API 更便于普通开发人员使用。其结果就是游戏稳定、精良、可玩性高。另一方面,DirectX 12 是一种低层 API,与 DirectX 11 不同。虽然它允许开发人员在细粒度上进行微调优化,但也要求开发人员具备丰富的硬件原理知识。

也就是说,根据一般开发人员对 API 的了解程度,使用 DirectX 12 开发的游戏最终可能会性能更差。DirectX 12 带来了一些改进,但这实际上取决于开发人员的执行能力。因此,许多开发者仍然选择使用 DirectX 11 等高级 API。

这也是为何不少3A大作至今虽然支持DX12,但仍然采用DX11这个兼容API接口为主要规范开发和推荐玩家游玩。

玩家该怎么选?

总的来说,如果你的硬件是2015年以后的游戏,而游戏本身也是采用DX12为主开发的,那么基本上应该尽量选择DX12。

但如果你是WIN7用户、较老硬件的玩家,那么大多数情况下,如果游戏提供了DX11和DX12游玩选项,请选择DX11,因为无论是你的系统还是你的硬件都不支持DX12.

总而言之,从 DirectX 11 切换到 DirectX 12 并不像听起来那样非黑即白。这取决于多种因素,如硬件、软件、操作系统,以及游戏是否同时支持这两个版本。在做出决定之前,所有这些因素都需要考虑在内。

文章来自钛师父

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值