微软 Win10 DirectX 12 Ultimate 正式发布

0

对于微软来说,他们宣布Windows 10 20H1版中DX12功能将大幅升级,带来新的DXR 1.1光追、网格渲染及采样反馈等新功能,3D显卡要洗牌了。
这次的DX12功能中,DirectX Raytracing Tier 1.1在现有的光线追踪管线状态对象Pipeline State Object中加入了额外的着色器Shader,这可以让开发人员调用包含光线追踪功能的着色器,这套着色器可以出现在光线追踪运算过程中的任何阶段,支持光线追踪的间接执行,并引入内联光线追踪,对光线遍历算法和着色器进行管理。这相当于在DXR 1.0的基础上一套更高阶且更有效的玩法
DirectX Raytracing Tier 1.1还得到了更广泛的游戏支持,目前为止,已经有超过30款即将和已经发布的游戏宣布兼容DXR 1.1性能,比如NVIDIA GeForce RTX宣布完全支持DXR 1.1新特效。
除了DXR光追技术升级,微软在DX12最新版中还会引入网格渲染(mesh shader),这是下一代GPU的几何处理功能,取代当前的输入汇编器、顶点渲染器、船形渲染器、曲面细分、域渲染器、几何渲染器等。

微软表示,引入网格渲染器主要是提高几何渲染管线的灵活性和性能,可以让游戏开发者增加几何细节而不需要牺牲速率的情况下渲染更复杂的场景。
另外,采样器反馈Sampler Feedback是这次DirectX 12 Ultimate更新后获得的新功能,它主要作用是记录下采样操作访问到的纹理区域,并在纹理空间阴影Texture-Space Shading、阴影复用Shading Reuse、纹理流Texture Streaming付诸应用。
要知道,采样器反馈可以帮助开发团队更有效避免冗余,提升内存对材质的利用率,并减少不必要的计算量,从而实现优化游戏的效果。
微软还表示,使用DX12 Ultimate功能的下一代游戏将继续在非DX12 Ultimate硬件上运行,从这个举动上来看,微软在PC和Xbox Series X上统一了图形平台。所以,PC将受益于大量涌现的DX12 Ultimate新功能硬件。
对于NV和AMD来说,其都表示将全面对DirectX 12 Ultimate提供支持,比如即将推出的AMD RDNA 2游戏架构中就全面支持DirectX 12 Ultimate所有新特性,而对于普通玩家而言,正在使用的GeForce RTX显卡则直接成为体验下一波新游戏画面升级的免费门票,无需再对硬件有任何额外投入。
GeForce RTX系列显卡的性价比又再次提升了。

how our hardware partners are supporting DX12 Ultimate, see these articles by AMD and NVIDIA:

微软已经推出DirectX 12的最新升级版——DirectX 12 Ultimate,这可以说是DirectX 12从2015年正式上线以来最为重大的一次更新,它加入了许多新的特性,实际上其中的部分特性已经在去年十月份已经预告过了,原本它应该会作为Direct3D 12 Feature Levels 12_2出现的,不过这次微软改名部上线了,给新版本DirectX 12加了个“Ultimate”的后缀,那今后比DirectX 12 Ultimate更强的新版本会叫什么呢?
首先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上率先引入的加速着色特性,具体介绍可以看我们的课堂文章:《超能课堂(212):VRS可变速率着色为什么可以提高帧数?》,这边就简单讲一下它的原理,而不再赘述细节了。
简单来说,VRS的原理是通过改变单次像素着色器操作所处理的像素数量,来改变屏幕不同区域的着色质量。简单来说,它可以改变同个画面中不同部分的渲染精细度,它的用处是提高画面帧数。
在不开启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的计算量。
总结:面向新图形架构和下世代主机
在微软推出DirectX 12 Ultimate之后,NVIDIA和AMD就迅速地宣布已经/将要支持它,实际上,DirectX 12 Ultimate的绝大部分新特性可以说是基于Turing架构来的,NVIDIA在设计Turing架构时可能预留了相当部分的新特性是没有公开的。而AMD方面在目前只能说是一个跟进者,要用上新特性,首先要等到年底的RDNA 2架构。
DirectX 12 Ultimate的这些特性很明显有两个共通的目标,一是提高开发者对硬件的控制力,二是提高总体计算效率。这也是为下世代主机——Xbox Series X和传说中的Xbox Series S所准备的,很难说我们要等多长时间才能看到这些特性被应用到实际游戏中去——至少今年是看不到的,需要等引擎开发商、游戏开发者对新世代主机做适配或者做专门性的开发后,我们才能在PC游戏中也看到这些技术的运用。

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。

发表评论

Logo
注册新帐户
重设密码