游戏

一切皆可元宇宙!20年前的游戏开启光线追踪,方法是这样的

今年英伟达GTC开发者大会上,有个讨论度非常高的东西叫RTX Remix——这东西其实是给游戏做mod的。如果你玩过《上古卷轴》之类的游戏,应该就能体会到mod有多强大。

今年英伟达GTC开发者大会上,有个讨论度非常高的东西叫RTX Remix——这东西其实是给游戏做mod的。如果你玩过《上古卷轴》之类的游戏,应该就能体会到mod有多强大。

Mod一般是某个游戏的玩家、粉丝自发为该游戏做的扩展:其形式可以是多样化的,mod可以是原游戏功能上的扩展,也可以是新增剧情、地图,或者游戏画质场景强化等等;最强大的甚至可以到某款游戏重制版的程度。据说每年全球游戏mod下载量能达到70亿次,而参与mod制作的群体有大约1000万人。

这次英伟达算是亲自上场做了个mod,具体是给游戏《Portal(传送门)》做的——这款游戏本身也是历史颇为“悠久”了,应该是《半条命》家族中的。英伟达的Lightspeed Studios工作室给这款游戏mod,或者说应该算是重制过后的版本就叫《Portal RTX》——一看就至少加入了光线追踪。预计Portal RTX会在11月份发布,作为一个免费的DLC。

《上古卷轴:晨风》原画面与Remix重制后的画面对比

另外英伟达也特别演示了给《上古卷轴3:晨风(The Elder Scrolls III: Morrowind)》做的一些mod场景。这是一款2002年的游戏了,当年英伟达才刚刚收购3dfx核心资产,连CUDA都还没出世。GTC上演示的《晨风》mod画面真的是堪称惊艳,尤其在画面增加了高清纹理、光追特效以后,很怀疑当年的玩家是怎么忍受原画质的,即便《晨风》在当时已经算得上惊艳了。

不过英伟达发言人也强调了《晨风》的演示只是为了表现RTX Remix工具,而不是真的打算做个《晨风》mod出来。英伟达RTX Remix & Mods产品经理Nyle Usmani在接受采访时说:“很高兴大家能喜欢我们演示的加上了RTX的《晨风》。”“但它仅用于演示。”“Lightspeed Studio工作室的工作其实也并不在于做老游戏的重制。”

而这次英伟达用来做mod的这个RTX Remix其实还真的挺有趣。GTC Fall期间,我们特别听英伟达谈了RTX Remix。这个工具本身是免费的,但它在扩张英伟达各类图形技术开发生态的过程中,或许会起到与众不同的作用。

有关做个mod有多难的问题

我们不做游戏开发,大部分玩家其实也不清楚mod具体是怎么完成的,但都会尊称那些制作mod的人为大佬。英伟达作为一个GPU制造商、图形技术方案提供商,谈mod之重当然主要是在原游戏的画质提升上,这其中的门道其实很多样,而且难度对一个人或者很少人组成的mod团队而言是巨大的。

英伟达总结了制作此类mod的四大难点,如上图所示。首先是处理游戏文件——要将游戏中的资源(assets)导出、重新设计、然后再放回到游戏中本身就相当不容易。一般mod制作者需要接触各种各样的工具——这就是第二大问题,而且是长长一串工具链,以及不同的游戏就得再去接触新的工具链。那么对于很多小众或者独立游戏来说,做mod也就会成为一种奢望。

第三个问题是做画质增强的mod,则有海量工作需要去做处理,包括各种老游戏的低分辨率、很简单的纹理之类。对于现在的游戏玩家而言,一般的效果还满足不了他们,用现有工具来处理这些问题,工作量就会十分巨大。还有就是老旧的renderer的问题,比如像《晨风》这款游戏x86 32位处理,对于高质量纹理或者增加光追之类的就造成了巨大的障碍。

据说要给这样的老游戏做个光追mod,得花上好几个月的时间。Nyle说跟一个搞了7年mod的创作者聊过,对方说尝试花2年时间来打造一个工具,专门针对某一款游戏来打造制作mod的工具。我们也是惊叹那些花业余时间搞mod的“大佬”仅凭着兴趣来做这件投入颇为巨大的任务。

20年前的游戏能有这种画质???

Nyle说,这些问题的存在是英伟达去做RTX Remix的背景。不过我们认为,从一家商业企业的角度来思考,从高抽象层级来看,如果抛开RTX Remix将来用于其他应用的可能性,则RTX Remix本身也是扩张英伟达图形技术生态的巧妙方法。

从最浅表的角度来看,光线追踪、DLSS、Reflex等正处于生态扩张期,而加速游戏社区应用这类技术的方案,则从RTX Remix这样的角度入手显然是很好的;再往深一层看,RTX Remix建基于Omniverse,所以Remix实际上就是元宇宙里面的一个应用,Remix自然就是元宇宙生态中的一部分;与此同时,以英伟达对待自家app的利用方式,RTX Remix未来在mod制作之外应当还会大有用武之地。

工作流程大致上是这样的

英伟达说RTX Remix是给老游戏加入RTX属性、进行重制最简单的方法:开启游戏,导入原游戏资源(assets),然后用AI纹理工具来重建场景,加入光线追踪、DLSS 3,甚至能够用整个Omniverse生态来手动设计内容;最后导出RTX mod,放在游戏文件夹里面。

这个过程大致上是这样的。RTX Remix首先会监听Draw Call,如此一来RTX Remix就能“看到”并捕捉游戏资料。对于mod制作者而言,这一步也就是启动游戏,然后点个热键,就能开始捕获纹理、几何、光照、场景视角所在位置等信息。

在捕获完成之后,这些游戏资源会被编码转为USD文件格式——如果你对Omniverse熟,应该就知道USD是什么——最早这是动画工作室Pixar做出来用于制作动画电影的数据交换格式,算是对大型3D场景的一种表达。英伟达在构建Omniverse之初,就想到用USD作为内部不同工具互通的标准格式。英伟达此前将USD称作3D世界的HTML。

这也是RTX Remix可应用Omniverse生态工具的基础,理论上当前接入Omniverse的各种connector应用都可以用来做mod制作,也算是体现Omniverse生态优势的组成部分了。Mod做好以后,导出RTX mod包,放到游戏执行文件旁边就行了。

这个过程实际上就解决了前文提到的4个问题,我们来一个个捋一下:第1,这个流程已经解决了游戏资源导出的问题;第2则是大量工具链的使用——Omniverse的生态解决了该问题——在Omniverse中有端到端且相互关联的工具链——而且我们之前的文章里详细介绍过,Omniverse的一大功能就是设计协作,那么mod制作也就可以分工协作了,这种3D设计的协作就跟在线文档协作一样,是实时同步和可视化的。

前面提到的第3个问题是游戏资源增强的工作量巨大。RTX Remix在这个问题上的解决方案,是让我们感觉最为神奇的。这里面用到了一种AI纹理工具。其功能一方面是能够将低分辨率的资源upscale为4倍的高分辨率——甚至1080p的东西可以直接升格为4K。

AI纹理工具的这个upscale分辨率特性听起来也没有什么。不过真正牛掰的地方,是用AI来对老游戏中的纹理做推理(inference),神奇般地转为材质精美的纹理——这叫re-texturing。Nyle解释说,AI纹理工具在看到画面以后,能够去“理解画面原本想要呈现的材料”,比如说看到一扇木头门,那么就能以高质量、高分辨率的木质纹理来替代;

所以我们能看到成品mod大量增加了场景细节。然后赋予其可做光线追踪交互的特性。这种材质差异,在光追过程里也会表现出显著变化,比如金属门会有明显的反光,木头门的反光方式会不同。这个过程就硬件层面肯定是要用到GPU的tensor core的。

RTX Remix的过程也很好地解释了Nvidia AI与Nvidia Omniverse两个方向的应用交叉。基于AI来YY出新的纹理与材质,就是《晨风》示例里看到画面焕然一新的关键。如果你对AI技术有概念,应该也能想到,英伟达自己首先需要对游戏纹理的大量图片做神经网络的训练,网络完成以后才能真正应用于纹理、物理属性之类的AI推理。这应该也是RTX Remix技术的一大关键。

最后一个问题,老旧的renderer,从技术上涉及到如何绕过老旧渲染器,可应用光追、处理大型纹理之类的特性。以《晨风》为例,这个游戏用DirectX API,基于D3D9 runtime来发出渲染指令到GPU。英伟达就自己做了一个RTX Remix runtime——算是D3D9 runtime的定制版本,然后它可以监听draw call,并且从中做处理。

在截取到渲染指令之后,就做对应的转换,最终目标就是要令其适用于光线追踪环境。场景管理器(scene manager)会拿到所有的数据,包括光照、纹理、视角、几何,以及在Remix中创建的新资源等;将这些信息随同动作矢量(motion vector)编译,构建可以进行光线追踪的场景。然后就可以给RTX renderer去搞光追、DLSS 3之类的处理工作了。

英伟达说给《晨风》做的这个演示,在光追效果上其实比之前做的很多光追游戏都要好,因为其中还融入了包括RTXDI(RTX Direct Illumination)、GI(Global Illumination)以及SER(Shader Execution Reordering)、OMM(Opacity Micro-Maps)之类的技术,其中不少应该是最新发布的Ada Lovelace架构GPU新增的特性。

另外,对于玩家来说RTX Remix还有个特性——据说玩家下载某个RTX mod,就能以实时的方式调整参数来定制化自己想要的游戏体验,连游戏中某物的材质属性都可以自定义。上面这张图就是英伟达演示的实时调整过后,同场景的外观变化。看的时候简直就惊呆了。

这东西未来的可能性

英伟达推荐要用RTX Remix做mod的话,最好是用Ada Lovelace架构的GPU。感觉从内容创作者的角度,尤其做出《晨风》RTX那种巨豪华的效果,或许用这次英伟达在GTC上新发布的RTX 6000工作站GPU会比GeForce效果好。Nvidia Studio驱动和大显存都是优势项嘛。RTX 6000貌似是Ada Lovelace架构的首款工作站GPU了。

当前英伟达给RTX Remix划定的适用范围,就是针对DirectX 8/9游戏做mod。其实也不光是给原场景增加细节,既然是做mod嘛,给场景再加个光源、改变场景的各部分构成、色彩,也可以加自定义的资源——刚才提到Omniverse里面的connector应用都能用,什么AutoDesk、Maya、Adobe工具之类的。

Portal游戏截图

《Portal RTX》应该算是英伟达做给广大mod制作者看的一个样品展示,据说几乎是对游戏中的所有纹理做了重制,包括符合物理法则的各种细节。而且还在技术上加入了一些东西,比如游戏中某个纹理覆盖于另一纹理的所谓“decal”——墙上的弹孔、泼溅的涂料、血迹都在这个范畴内。而光线追踪过程暂时是无法基于材料物理属性来处理这些decal的。在光线抵达这样的表面后,英伟达在技术上尝试对表面和decal做blend,做出更为真实的光线反射。

还有《Portal》这个游戏本身在玩法上是在不同的地方开传送门,那么传送门对面的光照就要传到这边来。似乎这个工作还挺不容易的。

好像英伟达这次还是挺认真地要做mod,所以和Nexus Mods这种mod社区都还有合作。不过看RTX Remix的演示,是否感觉它能做的事情并不止于搞些mod。比如说要是直接给游戏开发者来用,是不是也能更便利地做一些老游戏的重制——虽然不清楚这套流程,是否有可能增加游戏的操作延迟;还有将其融合到游戏引擎、开发软件之类中(不过作为Omniverse的一部分,似乎做更深度的整合会很容易)。

不过据说仅对DirectX 8/9做支持,而不支持其他版本,是因为基于DX8/9固定管线(Fixed-Function Pipeline)的游戏不少,而像DirectX 10和更新版本就暂时存在技术上的实现障碍了(因为前文提到RTX Remix做mod有监听流程);技术负责人Alex Dunn表示未来或许有可能向更高或更低版本的API进发。据说Vulkan对于RTX Remix很理想,是因为DXVK这项开源技术。

其实基于Omniverse生态,以及USD格式这类标准,RTX Remix大概还能有更多我们想象不到的应用。比如应用到VR上...总之这是个相当有趣且不错的起点。且如前文所述,这绝对是英伟达持续扩建生态的妙笔。

24快报
JSON抓取失败