时间:2018-03-20 来源:互联网 浏览量:
其实在昨天报道传闻中NVIDIA将要公布非常先进,甚至是超前的光线追踪技术的时候,我就有些在心理画问号:如果说普及的话,这种几乎不可能在今天全面实现的就似乎是如何突然忽然直接实现的?尤其是在昨天那副海报当中,随同NVIDIA RTX技术一起出现的还有神秘的“DXR”。如果说构图的话,似乎NVIDIA RTX技术只是“DXR”的一副拼图,其实我相信所有人在看到“DX”的时候都会想到Microsoft DirectX,但是“R”是什么?Raytracing?今天早些时候,就在举办的旧金山的GDC 2018,微软终于公布一枚可以说属于二十一世纪第二个十年的超级核弹:DirectX Raytracing。
Go Empower Us All
往常微软要介绍新功能都是放在Windows Blog,或是其他新闻板块,但是今天这份关于DirectX Raytracing的介绍是刊登在MSDN板块的,而且发布后,AnandTech、ArsTechnica都随后集中报道,此外包括EA、Remedy Entertainmnet都发布基于自身引擎的光线追踪Demo,来势之汹汹绝对少见。我们先来看看微软MSDN的介绍文章,第一段就是“3D Graphics is a Lie”,而且首先就是从过去几十年来开发游戏使用光栅化开始说起,颇有一副旧世界要被打个落花流水、新世界已经冉冉升起的气势。考虑到我们的读者群体中图形大牛众多,这里不班门弄斧。随后继续介绍的是在千禧年后开始大量使用的法线贴图(Normal Mapping)和视差贴图(Parallax Mapping),这些都让我们的游戏画面的表层能实现更加真实、更加多变、更符合生活经验的贴图。但在并不长的时间里,游戏开始慢慢使用“不可持续发展”的优化技术,比如说阴影贴图(Shadow Mapping)允许离屏物体在屏幕内生成像素。再到今天,我们常见的屏幕空间反射(Screen Space Reflection),还有神龙见首不见尾的全局光照(Global Illumination)正在挑战目前这个光栅化框架的极限,当然他们都是可以利用某些游戏设计,或是新生技术取巧地解决, 渲染技术需要的Full 3D数据只会越来越多。
这就像是传统演艺当中常见的设定,经典的世界已经取于崩溃的边缘,需要传说中的天选之子要么去开创新的世界,要么为经典的世界带来扩展资料片来续命。而微软很显然就是被选中用来驱散经典世界天空乌云的人,而DirectX Raytracing,作为DirectX 12的最新特性,将会勇敢地踏入目前的光栅化框架和明天的Full 3D中间的缝隙,为今天的世界带来更多注解。通过实现Full 3D的遍历(Traversal),DirectX Raytracing可以让今天的很多技术,比如前文提到的屏幕空间反射,以远远超过今天的效率,更加自然填补光栅化框架内达不到的地步。同时作为催化剂,为相当多的、全新的、以往从来无法在游戏当中技术敞开大门。
DirectX Raytracing包括4项全新的DirectX 12 API:Acceleration Structure(加速结构),可以优化光线遍历。DispatchRays(调度光),这是光效追踪的起点,同时还是游戏通过DirectX Raytracing向GPU通信的位置。同时还有一系列的HLSL着色器,包括Ray-Generation、Closest-Hit、Any-Hit、Miss,这部分是描述光线追踪是如何运算的。最后是Raytracing Pipeline State(光线追踪管线)。虽然看上去很复杂,但是DirectX Raytracing并不需要额外的、全新的DirectX 12 Engine,这是微软团队有意为之的,目的就是就让目前能够良好支持DirectX 12的显卡都能支持好DirectX Raytracing,所以目前支持DirectX12良好的Unreal、Unity、Frostbite都可以很到位的直接支持。事实上升级到Windows 10 秋季创意者更新的用户可以通过开发者实验模式抢先体验。
我们在前文说过DirectX Raytracing在描述上看,将会作为目前光栅化框架内的接近特别解的存在,就好像《黑客帝国》当中的Neo,可以在框架内提高很多特效的表现力并推至极限。在MSDN的文章中,我最兴奋的就是这么一段:”DirectX Raytracing目前将会作为现有渲染技术的补充,因为Full 3D数据的使用,将会对现有的视觉效果带来极高程度的提升(Material Increase)。更重要的是,我们期待在未来紧接着的若干年,随着DirectX Raytracing的使用慢慢增加,我们能看到一些在目前光栅化框架内完全不切实际的技术被投入利用,比如全局光照。最后,DirectX Raytracing或许会取代目前的光栅化,成为业界渲染环节的算法标准。
而几乎就在同时,NVIDIA通过和微软的合作,公布他们自己的RTX技术,也就是昨天我们报道过的GameWorks库新成员,这将是实时的、能够提供电影化质量的光线追踪技术。NVIDIA称其是自己在过去十年在图形算法和GPU架构的研究精华。不过虽然是紧跟微软的DirectX Raytracing,NVIDIA在日志中说是运行在最新的Volta架构,所以之前的Pascal或许不会支持,或者是部分支持。当然,效果都是实现更好的光照、阴影和反射效果。
其实就今天上午来说,展出的效果还是比较少的,我在Youtube搜索一圈,只有EA SEED,还有Remedy Entertainment有发布自己的Demo,不过既然GDC 2018已经开始,可以想见的是未来还有非常多的新闻、展示公布,大家尤其可以紧跟Unreal、Unity、4A Games、EA,他们都很有可能展出自己基于光线追踪原理制作的Demo,而且我今天在找资料的时候还看到有Futuremark的影子,如果3DMark里面可以加入这项特性的话,那会非常让人兴奋。