作为一个游戏玩家,只要打开现在的游戏的图像选项,大概都会看到一个“渲染选项”,询问你是选择DirectX11(DX11)还是DirectX12(DX12)。那么,两者有什么区别呢?游戏玩家该怎么选呢?
1、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。
2、DirectX 11 和 DirectX 12 之间区别何在?
那么,DirectX 11 和 DirectX 12 之间有哪些区别呢?
简单来说,DirectX 11 是高层应用程序接口,而 DirectX 12 是低层应用程序接口。游戏和硬件之间交互处理有不同的层级。低层应用程序接口更接近硬件,而高层应用程序接口则离硬件更远、更通用。