# 微软发布 DirectX 12 Ultimate ，它带来了哪些改变？

- 作者：李浩然
- 发布时间：2020-03-20 18:59
- 分类：硬件
- 原文：https://www.ifanr.com/1319540

几乎每一个玩过电脑游戏的人，都听过 DirectX 的大名。作为 Windows 系统自带的图形 API （应用程序编程接口），大部分 PC 游戏都需要它的支持。

目前 DirectX 的最新版本是 DirectX 12，它发布于 6 年前，已经相当长时间没有大更新过了，昨天微软终于公布了它的升级版—— DirectX 12 Ultimate 。从字面意思上来看，它是 DX 12 的终极版，它将会随着 Win 10 2004 系统更新一同推送。

![](https://s3.ifanr.com/wp-content/uploads/2020/03/DirectX-12-Ultimate-cover.jpg)

### DirectX 12 Ultimate 都用哪些特性？

从 DX 12 开始，微软就已经将主机和 PC 之间的图形接口打通，Win 10 和 Xbox One 都使用了 DX 12 作为图形 API 。使用相同 API 带来的好处也十分明显，游戏公司在开发游戏时，不需要再为 Xbox 和 PC 端的移植而烦恼，所以我们能看到，大量 Xbox 游戏出现在 PC 的应用商店中。

![](https://s3.ifanr.com/wp-content/uploads/2020/03/DX12ultimate.png)

这次微软发布的 DirectX 12 Ultimate 也同样是跨平台的 API，这也让下一代 Xbox 理所当然的获得了 PC 上的某些画面特性，比如老黄普及的光线追踪。

### DirectX Raytracing Tier 1.1

这次微软将 2018 年发布的 DXR 1.0 更新到了 DXR 1.1 版本，这是一次增量更新，最明显的变化有：

- 为现有的光线追踪管线状态对象（ Pipeline State Object ）加入了额外的着色器（ Shader ）。
- 支持 GPU 执行时间轴自动判定需要处理的光线数量。
- 引入新的内联式光线追踪。

![](https://s3.ifanr.com/wp-content/uploads/2020/03/DX12ultimate-1.png)

这些特性为游戏开发者提供了一套规避复杂光线追踪场景的方法，让开发者可以通过调用新函数，获得物体遮挡查询、剔除等功能，让开发者能更快的构建光线追踪的场景，给游戏提供更好的光追效果和性能。

在微软发布 DirectX 12 Ultimate 后，NVIDIA 表示将 RTX 系列处理器将完全支持 DXR 1.1 特效，AMD 也宣布将在 RDNA 2 架构中支持该特性。

### VRS（可变速率着色）

除了光追外，之前 NVIDIA 推出的 VRS 技术也被微软认可，并将其加入 DirectX 12 Ultimate 中。VRS 全称是可变速率着色技术，它最明显的作用就是降低显示画面中一些不重要区域色彩纹理，从而提升画面的流畅度。

![](https://s3.ifanr.com/wp-content/uploads/2020/03/641.jpg)

在这一技术被应用之前，GPU 需要为画面上的每一个像素点单独着色。而 VRS 就是对画面区域进行划分，为不同的区域选择不同的着色分辨率，细节要求不高的区域就将多个像素点一起着色，大幅降低了 GPU 着色的次数，大大减轻了显卡的计算压力。

![](https://s3.ifanr.com/wp-content/uploads/2020/03/geforce-rtx-variable-rate-shading-850px.png)

比如上面这张图，画面边缘最不显眼位置的着色分辨率就被降到了最低，虽然这部分画面的质量有所下降，但由于它只是背景，玩家不会有明显的感知。省下来的 GPU 资源，则用于提升帧率，减少感知更明显的卡顿现象。

可以说，有了 VRS 技术后，平均帧率不高的中低端显卡将将会获得不小的体验提升。

### Mesh Shader

除了为最后为像素着色外，图形渲染在前期还需要完成物体的 3D 模型计算渲染。这个工作之前需要向 CPU 发送一个 Draw Call（绘制调用）。通常情况下， 它会因为 CPU 的性能瓶颈，限制 GPU 的发挥。

![](https://s3.ifanr.com/wp-content/uploads/2020/03/DX12ultimate-3.png)

Mesh Shader 的可以解决这一问题，它可以让开发人员不用考虑单个顶点或者单个图元，用一组预定的线程更高效的完成渲染流程。

![](https://s3.ifanr.com/wp-content/uploads/2020/03/Snipaste_2020-03-20_16-33-19.jpg)

Mesh Shader 可以进一步提几何图形的细化程度，例如对硬件进行编程，并用简单的方式描述树干枝杈的位置，最后生成细节更多的树皮树叶。

有了 Mesh Shader 后， 游戏场景中灌木从，植被等物体将有详细的细节，能进一步提高场景的真实性。

### Sampler Feedback（采样器反馈）

这一功能其实和 VRS 类似，都是通过减少某些冗余信息，降低 GPU 负载并提高性能。

与视频压缩采用帧与帧之间的画面矢量预测不同，游戏中的渲染大部分都是从「 0 」开始，也就是不停地重复获取顶点、视角转换、投影、照明、剪裁、栅格化的工作，不管前后两帧画面有多少相同。

![](https://s3.ifanr.com/wp-content/uploads/2020/03/DX12ultimate-4-1.png)

事实上，大多数游戏在的场景变动都十分缓慢，大多数「对象」在画面中并没有改变（例如天空，远景）。采样器反馈就是通过降低对这些对象着色的速度（比如每 3 帧一次），来降低 GPU 的工作压力。

这一功能可减少重复对远景和缓慢变化的阴影着色对性能影响，进一步提升画面的帧率。

### 总结：开发者福利，NV 大获全胜

这次的 DirectX 12 Ultimate 是一次增量更新，加入了之前 NVIDIA 推出的新技术，包括光追和 VRS 。有别于 DX 10 和 DX 11 的技术跃进，DirectX 12 Ultimate 更多是为开发者提供更底层的优化空间。

反映在游戏上，我们可以会看到：更有经验和实力的开发者会用 DX 12 Ultimate 的新特性做出非常惊艳的游戏画面，同时性能优化也非常出色。但如果是游戏开发者没有调用这些工具，它将不会对画面和画面效能产生太大提高。

不过 DirectX 12 Ultimate 横跨主机与 PC，一些首发于主机的游戏在开放到 PC 平台后或许也能获得新特性的优化。

最后说一个好消息：NVIDIA 表示 RTX 系列将完全支持 DirectX 12 Ultimate 的所有特性，AMD 即将推出的 Navi 架构显卡也支持 DirectX 12 Ultimate，AMD 已经发布了第一个运行光追的 DEMO。

未来几年，光追或将全面普及。
