微软发布了DirectX 12 Ultimate,这是微软最好的图形技术的结晶。DirectX 12 Ultimate具有所有下一代图形硬件功能,包括DirectX光线追踪,可变速率着色,网格着色器和采样器反馈。当你购买带有DX12 Ultimate徽标的图形硬件或Xbox Series X时,你可以确信它将支持所有下一代图形硬件。
![微软 Win10 DirectX 12 Ultimate 揭秘](http://p2.ttnews.xyz/loading.gif)
DirectX 12 Ultimate中新增的特性主要有四大块,分别是DirectX Raytracing 1.1、可变速率渲染、Mesh渲染器和采样器反馈(Sampler Feedback),下面就和大家分享一下:
DirectX Raytracing 1.1
DirectX Raytracing(DXR)是微软在2018年为DirectX 12引入的新特性,它支持实时光线追踪处理。1.0版本的DXR在软件特性上比较基础,可以说它是围绕着Turing架构的硬件实现而设计的,当时也没有从软件开发角度去考虑如何实现光追。而1.1版本扩展了DirectX 12在光线追踪方面的软件特性,让它的效率更高,同时对开发者也更友好。主要有三点:
允许GPU直接调用光追
跑在GPU上面的着色器在1.1版本中可以直接调用光线追踪,而无需折返CPU来调用。这项功能对于自适应光线追踪场景非常有用,尤其是在基于着色器实现的剔除、排序、分类和细化等场景中。基本上今后的光线追踪工作可以在GPU上面准备并立即生成。
按需加载光线追踪着色器
当玩家在游戏世界中移动、新的物件变为可见的过程中,流式引擎可以根据此时的画面需求来加载新的光线追踪着色器,提高处理过程的效率。
内联光线追踪
内联光线追踪(Inline raytracing)是目前基于动态着色器的光线追踪的一种替代形式,你可以将其理解为一种简化的光线追踪。开发者在内联光线追踪过程中将有更大的控制权,并且可以在任意的着色阶段调用它,包括计算着色和像素着色阶段。它与传统基于动态着色器的光线追踪可以混合使用,对于简单的场景,内联光线追踪将会提供更好的性能表现,而在复杂场景中,基于动态着色器的光线追踪将会提供更好的运行效果。
可变速率着色
可变速率渲染(Variable Rate Shading)是一项由NVIDIA在其Turing GPU上率先引入的加速着色特性,简单来说,VRS的原理是通过改变单次像素着色器操作所处理的像素数量,来改变屏幕不同区域的着色质量。简单来说,它可以改变同个画面中不同部分的渲染精细度,它的用处是提高画面帧数。
![微软 Win10 DirectX 12 Ultimate 揭秘](http://p2.ttnews.xyz/loading.gif)
在不开启VRS的情况,也就是正常情况下,一帧画面的所有像素都是独立着色的;而开启VRS之后,原本独立的像素被分成了一个个像素块,它们会共享着色结果,此时GPU会根据程序员设定的重要性分级为所有像素块分配不同的着色精细度。拿上面的图片为例,车辆和远景部分的像素仍然是独立着色的,但快速变动的道路和路边的像素块就是区块共同着色的,此时由于显卡的计算资源得到了节约,所以游戏的帧数会有所提高。
在NVIDIA以外,Intel已经在Ice Lake处理器中的第11代核显中加入了针对VRS的支持,而AMD方面则暂时没有相关支持,不过他们也已经宣布将会在RDNA 2架构中加入相关支持。
Mesh着色器:下一代几何处理管线的基础
在过去的二十年中,传统的几何图形处理管线已经增加了好几个阶段了,不过它的核心理念仍然基于传统的光栅化预着色方法的,放在今天已经过于复杂,并且拖累处理效率。硬件和软件开发者都希望改变这一现状,于是,DirectX 12引入了Mesh着色器,它为开发者提供了前所未有的可编程能力。
原本的管线中,GPU硬件的并行能力被隐藏,或者说是被自动化了,硬件会帮助打包操作然后并行执行它,这很高效,但也存在问题——灵活性不够。
Mesh着色器就完全改变了这一过程,它不再是针对单一顶点或图元的单一函数,而是工作在整个计算线程组中。在某一阶段中,Mesh着色器的每个线程都是针对一个顶点,而在另外一个阶段,每个线程针对着一个图元。整个线程组的内存是共享的,访问灵活度很高,同时开发人员对硬件的控制权也更大,甚至还能启发新的技术,节约内存使用量和内存带宽。
与Mesh着色器一同出现的还有一个可选的放大着色器(Amplification Shader)阶段,它运行在Mesh着色器之前,计算得到需要多少个Mesh着色器,并启动他们。
采样器反馈
最后一个大特性就是采样器反馈(Sampler Feedback),先说效果:更好的视觉质量、更短的加载时间和更少的卡顿。它的核心思想实际上就是让程序只加载必要的纹理,把资源交给更有需要的地方。
采样器反馈是允许游戏引擎去跟踪纹理采样器的使用方式,让后者向引擎提供反馈,方法是生成“反馈图(Feedback Map)”,它会记录不同纹理区域的不同驻留等级,然后程序可以根据这些反馈信息来做决策——包括该如何使用纹理采样器和要在显存中保留哪些资源等。这比原先的流程更为精确,可以更好地分配计算资源。简单来说它的实际效果就是用更少的显存渲染更大、更详细的纹理。
另外,采样器反馈还允许了一项新技术——纹理空间着色。它可以在不栅格化对象的情况下进行对象着色,其中心目的就是缓存和重用着色结果,减少GPU的计算量。
RDNA 2游戏架构中为DirectX 12 Ultimate提供全面支持。通过这种架构为下一代AMD Radeon显卡和即将面世的XboxSeries X游戏机提供支持。
根据外媒WCCFTECH的报道,AMD发布了首个RDNA 2 架构 GPU 在微软DXR API下的光线追踪演示视频,下一代Radeon RX “Navi 2x”显卡将支持该技术。
在AMD的演示中,官方展示了一个行走在未来场景中的机器人,视频中体现了光线追踪的反射和阴影效果,与当初英伟达发布的Demo效果有类似的感觉。
英伟达表示,GeForce RTX支持的下一代游戏新标准DirectX 12 Ultimate为开发人员提供了大型的、多平台的硬件安装基础,可用于目标和现成的工具以及可从中使用的示例-所有这些都由省时的中间件提供支持。这使游戏开发变得更快、更容易,并使更多的开发人员可以将这些创新技术添加到他们的游戏中。许多开发人员已经精心设计了具有这些技术的下一代体验,目前已经发布30多种DirectX Ray Tracing游戏,而现在随着DirectX 12 Ultimate的发布,其采用率将迅速提高。
閱讀更多 玩史步工 的文章