几乎每一个玩过电脑游戏的人,都听过 DirectX 的大名。作为 Windows 系统自带的图形 API(应用程序编程接口),大部分 PC 游戏都需要它的支持。
目前 DirectX 的最新版本是 DirectX 12,它发布于 6 年前,已经相当长时间没有大更新过了,昨天微软终于公布了它的升级版—— DirectX 12 Ultimate 。从字面意思上来看,它是 DX 12 的终极版,它将会随着 Win 10 2004 系统更新一同推送。
DirectX 12 Ultimate 都用哪些特性?从 DX 12 开始,微软就已经将主机和 PC 之间的图形接口打通,Win 10 和 Xbox One 都使用了 DX 12 作为图形 API 。使用相同 API 带来的好处也十分明显,游戏公司在开发游戏时,不需要再为 Xbox 和 PC 端的移植而烦恼,所以我们能看到,大量 Xbox 游戏出现在 PC 的应用商店中。
这次微软发布的 DirectX 12 Ultimate 也同样是跨平台的 API,这也让下一代 Xbox 理所当然的获得了 PC 上的某些画面特性,比如老黄普及的光线追踪。
DirectX Raytracing Tier 1.1这次微软将 2018 年发布的 DXR 1.0 更新到了 DXR 1.1 版本,这是一次增量更新,最明显的变化有:
为现有的光线追踪管线状态对象(Pipeline State Object)加入了额外的着色器(Shader)。 支持 GPU 执行时间轴自动判定需要处理的光线数量。 引入新的内联式光线追踪。这些特性为游戏开发者提供了一套规避复杂光线追踪场景的方法,让开发者可以通过调用新函数,获得物体遮挡查询、剔除等功能,让开发者能更快的构建光线追踪的场景,给游戏提供更好的光追效果和性能。
在微软发布 DirectX 12 Ultimate 后,NVIDIA 表示将 RTX 系列处理器将完全支持 DXR 1.1 特效,AMD 也宣布将在 RDNA 2 架构中支持该特性。
VRS(可变速率着色)除了光追外,之前 NVIDIA 推出的 VRS 技术也被微软认可,并将其加入 DirectX 12 Ultimate 中。VRS 全称是可变速率着色技术,它最明显的作用就是降低显示画面中一些不重要区域色彩纹理,从而提升画面的流畅度。
在这一技术被应用之前,GPU 需要为画面上的每一个像素点单独着色。而 VRS 就是对画面区域进行划分,为不同的区域选择不同的着色分辨率,细节要求不高的区域就将多个像素点一起着色,大幅降低了 GPU 着色的次数,大大减轻了显卡的计算压力。
比如上面这张图,画面边缘最不显眼位置的着色分辨率就被降到了最低,虽然这部分画面的质量有所下降,但由于它只是背景,玩家不会有明显的感知。省下来的 GPU 资源,则用于提升帧率,减少感知更明显的卡顿现象。
可以说,有了 VRS 技术后,平均帧率不高的中低端显卡将将会获得不小的体验提升。
Mesh Shader除了为最后为像素着色外,图形渲染在前期还需要完成物体的 3D 模型计算渲染。这个工作之前需要向 CPU 发送一个 Draw Call(绘制调用)。通常情况下, 它会因为 CPU 的性能瓶颈,限制 GPU 的发挥。
Mesh Shader 的可以解决这一问题,它可以让开发人员不用考虑单个顶点或者单个图元,用一组预定的线程更高效的完成渲染流程。
Mesh Shader 可以进一步提几何图形的细化程度,例如对硬件进行编程,并用简单的方式描述树干枝杈的位置,最后生成细节更多的树皮树叶。
有了 Mesh Shader 后, 游戏场景中灌木从,植被等物体将有详细的细节,能进一步提高场景的真实性。
Sampler Feedback(采样器反馈)这一功能其实和 VRS 类似,都是通过减少某些冗余信息,降低 GPU 负载并提高性能。
与视频压缩采用帧与帧之间的画面矢量预测不同,游戏中的渲染大部分都是从「0」开始,也就是不停地重复获取顶点、视角转换、投影、照明、剪裁、栅格化的工作,不管前后两帧画面有多少相同。
事实上,大多数游戏在的场景变动都十分缓慢,大多数「对象」在画面中并没有改变(例如天空,远景)。采样器反馈就是通过降低对这些对象着色的速度(比如每 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。
未来几年,光追或将全面普及。