Doom4技术采访

DOOM4技术访谈:


原文地址 http://www.eurogamer.net/articles/digitalfoundry-2016-doom-tech-interview

Digital Foundry采访 id软件如何使用技术创建了迄今为止视觉效果最好的60fps游戏。



 已经有一段时间了,因为我们完成了其中的一个!在将我们的技术分析整合到id软、件的梦幻般的Doom重新启动中,有一件事变得很清楚 - 

这是一款在保持非常高的帧速率的同时保持卓越的视觉保真度的游戏。这里的成就规模不可能被低估:我们正在看一个60fps的游戏,

比许多(如果不是大多数)30fps的游戏更好地处理视觉 效果。他们是怎么做到的?


游戏花费了这么多时间才能开发出,许多创作者在GDC和Siggraph这样的技术进行交流,让我们深入了解许多现代游戏的技术基础,甚至出现在这些游戏之前

 - 当我们整理我们的文章和视频时,它给了我们宝贵的研究。

但是很少有人知道idTech6,它与其前身的关系,实际上是对取消的Doom 4的引擎的补充。

所以当有机会组织一个“没有禁止”的技术采访id软件,我们抓住了它的热情。在这件作品中,我们将深入研究,这是idTech的发展,它是游
\戏最新的迭代所依据的核心渲染原则,团队对解决方案,缩放和抗锯齿的观点,加上当然越来越多异步计算的重要性,以及新一代PC图形API。

而且这件作品的时机也是幸运的 - 本周,ID发布了期待已久的Vulkan补丁,为Doom带来了一些游戏改变的PC游戏改进,特别是AMD Radeon的硬
件。开发人员现在应该从DirectX 11开始,并拥抱Vulkan和DX12吗?你会在下面找到。
回答问题是一个真正的谁是id软件的关键技术人员。非常感谢球队给我们这么多时间的这篇文章。


Robert A Duffy - 首席技术官
比利汗 - 首席程序员
Tiago Sousa - 首席渲染程序员
高级引擎程序员Jean Geffroy
Axel Gneiting - 高级引擎程序员




约翰·林尼曼(John Linneman)对Doom的原始分析视频深入了解为什么这个标题是如此强大的技术展示。
Digital Foundry:当我们看看Doom和id软件的历史时,我们看到了卓越的技术遗产。idTech6的目标是什么?您对最终结果感到满意吗?


罗伯特·达菲:原来的目标很简单; 我们希望保持游戏在60fps的同时,达到最佳的视觉效果和最好的FPS游戏。显然,成为实现这些目标的基础
的较小目标的整体列表,但作为主要消费者面临的技术目标,就是这些目标。我们对最终结果非常满意,但我们正在继续推出控制台更新,
Vulkan对PC的支持,以及面向社区的其他更新。


Digital Foundry:我们能否了解到idTech6 的时间表 - 它是否与Doom开发同时进行,在最终的游戏和被取消的Doom 4中呢?或者当您目标

60fps时,您是否彻底改造了基础技术?

罗伯特·达菲(Robert A Duffy):正如我们原型的Doom游戏和环境开始形成的,很明显我们需要将技术以不同的方向来实现我们认为现代
Doom游戏所必需的视觉保真度。60fps始终是游戏的目标,但是当我们开始添加充分的动态照明,阴影和其他功能时,性能目标成为工程团队的

主要目标。简短的答案是引擎技术有了很大的变化,但不是一切。


Digital Foundry:您能否讨论idTech5和6之间的主要变化?愤怒特别是一种更加静态的照明方式,而且大概是前锋式的渲染器。另一方面,

Doom更加丰富的动态灯光和阴影。它是一种形式的tile延迟还是聚集的延迟渲染器?


Tiago Sousa:从一开始,我们对idTech 6渲染器的目标之一就是尽可能地实现性能和统一的设计,以使照明,阴影和细节在不同的表面类型之
间无缝地工作; 同时牢记可扩展性和控制台,MSAA /良好的图像质量和MGPU [多GPU]可扩展性等。

当前的渲染器是一个混合的转发和延迟渲染器。通过这样的设计,我们尝试从两个世界获得最佳效果:前瞻性渲染器的简单性和延迟的灵活性
能够有效地逼近某些技术。从一开始的另一个目标是改善艺术团队的迭代次数,以及磁盘空间消耗等。我们希望从idTech5的冲压方法中脱颖而
出 - 基本上如何将细节应用于纹理。在过去,它依赖于预烘烤纹理结果到大质感等等 - 在这个迭代中,我们将这个过程翻译成了一个实时的
GPU方法,没有绘制调用。


对于用于馈送GPU的所有输入数据的参数化,来自Ola Olson等人的“聚集延迟和前向着色”及其衍生的“实用聚类阴影”来自于Emil Person,
在研究阶段早期就引起了我的兴趣,因为它相对简单,优雅,所以我们从这个研究扩大了。用于遮蔽世界所需的所有体积数据基本上都是通过
照相机平截头体形的体素结构进行馈送,其中所有这样的体积被记录。它允许相当大量的灯光,基于图像的光量,贴花等。




Vulkan带来的性能改进的初步概述。
Digital Foundry:最新发动机中存在多少idTech5 DNA?例如虚拟纹理似乎仍然存在。

比利汗:我们认为我们的引擎是一个不断发展的有机体,不断改进和适应。对于我们来说,不断停留在发动机技术的边缘是非常重要的。Doom
仍然使用虚拟材料向PBR渲染器馈送纹理数据。


Digital Foundry:转向新的渲染设备需要资产创造和工具发生重大变化?
Tiago Sousa:是的,正如我们提到的,我们的一个大目标是将idTech 6转变为一个物理上可行的渲染模型。这开始是将​​整个团队从LDR /线性
不可知渲染转变为高动态范围渲染和线性正确渲染,然后在此步骤之后,我们将团队引入基于物理的阴影。
这是一个相当大的调整,特别是艺术团队,因为他们不得不习惯于色彩映射,图像曝光,线性正确性,物理上合理的纹理参数化,一致的资产

创造等等。即使是工程队,这是一个很大的转变; 让所有人都了解所有相关的细微差别 - 例如将所有输入转换为线性正确,HDR光照贴图,不

需要任何魔术乘数等等,这一切都需要一致和高质量的渲染。


Digital Foundry: Xbox One上有限的ESRAM空间如何影响动态分辨率缩放实现?您对ESRAM管理的一般方法是什么?

Tiago Sousa :它与分辨率缩放没有直接的相关性。ESRAM用于加速带宽限制技术,特别是深度预制和阴影贴图渲染。然后像light buffer / 

thinGbuffer这样的东西,渲染目标也存储在ESRAM中,以实现性能。这些目标稍后重新用于加快透明度。


Digital Foundry:我们不禁要注意到整个金属阴影中有多么重要的元素。物理阴影的方法是什么?有没有具体的技术,比如说,对于恶魔的皮


肤?


Tiago Sousa:我们的照明方法是实时近似和预先计算的组件的组合。对于间接照明,idTech 6使用预先制作的间接照明用于静态几何,并与动


态辐射体积近似混合使用。对于间接镜面反射,我们使用基于图像的照明方法。


实时组件使用最先进的直接照明分析照明模型以及阴影抗混叠,与实时定向遮挡和反射近似混合。皮肤次表面散射实际上通过纹理查找和烘焙

半透明数据近似。这是相当有效的 - 特别是与通常昂贵的屏幕空间近似相比。

我们这里最大的成就是它的表现以及不同表面类型的一致性,尽管我们一直在寻求进一步改进的方式。丰富的路线测试了Radeon R9 Fury X上

的Vulkan补丁,以超级设置(加上16倍AF和高运动模糊)运行在4K。还有一些Nvidia GeForce GTX 1070的性能比较呢?





数字铸造厂:您可以通过8x TSSAA实现如何工作吗?主机和PC之间是否一致?


Tiago Sousa:我一直是摊牌/解耦框架成本的粉丝。TSSAA基本上是这样做的 - 它通过混合的图像重新投影和用于累积缓冲器的耦合启发式方、
法来重构几帧中获取的数据的大约8x超采样图像。

它具有相对最小的运行时成本,加上时间抗锯齿的附加优点,以尝试减轻帧间的混叠(例如,在缓慢移动摄像机时的阴影或几何混叠)。控制
台和个人电脑之间大部分是相同的实现方式,不同之处在于针对游戏机的一些GCN特定优化和一些轻微的简化。


Digital Foundry:动态分辨率缩放在控制台上运行良好 - 是否有技术原因妨碍了在PC上工作的相同技术?

比利汗:动态分辨率缩放实际上适用于所有平台。我们目前没有在PC上启用动态分辨率缩放,因为用户可以从设置菜单中有效地选择所需的分
辨率。我们提供静态分辨率缩放,允许用户以高分辨率运行,然后按比例降低渲染缓冲区以实现更高的帧速率。


Digital Foundry:缩放器在PS4和Xbox One上都非常有效。你能给我们一个关于解决问题的重要性的想法及其在图像质量方面的重要性?

Tiago Sousa:我们不使用PS4 / Xbox One的本地缩放器,我们通过相当优化的双三次滤波器进行自己的上采样。同样重要的是要提到,TSSAA
隐含地考虑了动态分辨率缩放变化,减轻了从分辨率变化发生的混叠。

分辨率重要性是显示和显示区域的眼睛距离的函数 - 基本上是角度分辨率 - 并且在一定程度上也是从个体视力。这意味着离显示器越远,像素密度

越高。在一定距离/像素密度阈值之后,您基本上浪费了可用于改善其他内容的性能。例如,在VR中,您的脸上有这样一个微小的显示,


为了更高的像素密度,对于处理几何的事情来说仍然是有意义的。


通过控制台游戏,玩家通常在两米或更远的距离上播放,并且您的显示尺寸是常见的(例如70“左右),它开始相对较快地成为性能浪费,特

别是如果我们在谈论4K如果一个开发人员以强力的方式做到这一点,那么你基本上是对同一个内容进行光栅化,但实际上它的速度要慢4倍,即

使是用户坐在显示屏旁边的桌面渲染,我也可以想到无数的的解耦成本的方法,而不仅仅是强力渲染。

id软件在当前一代的游戏机上花费了大量的精力,以60fps的速度运行Doom。以下是以单人模式叠加的方式。


Digital Foundry:您可以在PC上讨论方向遮挡设置吗?

Tiago Sousa:较低的设置使用较低的样品数量,较高的设置使用较高的样品计数。实际上我们实际使用的样本数量相对较少,而依赖于TSSAA

来重构比帧更高质量的结果。这是非常好的,在1440p的PC上大约0.1ms。


Digital Foundry:是否可以分离物体运动模糊和相机运动模糊?

Tiago Sousa:从正确性/可信度的角度来看,运动模糊实际上是模拟在一定时间内的图像曝光到胶片/数字传感器之间的累积光线。为了近似,

我们需要重建像素运动历史。通常通过将投影表面的相对速度输出到观察平面中,在当前帧和先前帧之间,而下一帧通常是外推的实现目的。
因此,从物理上看来,分离物体(即动力学)和摄像机(即静态或仅摄像机旋转)并不太有意义。它是程序上可能的,但会引入明显的文物,
而不是看起来不错。


Digital Foundry:渲染模式之间的技术差异是什么 - 正常,粗糙和电影?


Tiago Sousa:每个渲染模式都被设计成使得玩家实际上喜欢玩它,并且对于每个玩法具有相对不同的视觉体验。在技​​术上,它只是简单地调整
参数化,如灯饱和度,色调映射,相机自动曝光等。电影模式还增加了一些基于图像的镜头闪光和渐晕 - 在明亮的来源上更为明显 - 虽然比较细腻。







Digital Foundry:您可以深入了解异步计算机的优势,让您在控制台和PS4与Xbox One之间的任何差异?

Jean Geffroy:在看GPU性能的时候,一些变得很明显的东西是,一些渲染传递几乎没有使用计算单元。作为示例,阴影映射呈现通常被固定管

道处理(例如光栅化)和存储器带宽而不是原始计算性能所困扰。这意味着当渲染您的影子贴图时,如果没有并行运行,则会有效地浪费了大

量的GPU处理能力。

即使几何传递与更密集的阴影计算也可能无法一致地最大限度地计算单位由于与内部图形管道相关的许多原因。无论何时出现这种情况,异步

计算着色器都可以利用这些未使用的计算单元进行其他任务。这是我们用Doom采取的方法。我们的后处理和色调映射例如与大部分图形工作并

行运行。这是一个很好的例子,只是在图形上安排不同的工作,计算队列可能会导致多个ms的增益。


这只是一个例子,但一般来说,异步计算是充分利用GPU的好工具。每当有可能将某些内存密集型工作与某些计算密集型任务重叠时,就有机会
提高性能。我们在两个控制台上都使用异步计算。在可用队列数量方面存在一些硬件差异,但是通过我们调度计算任务的方式,这其实并不重要。



Pre-Vulkan,看看使用Radeon R9 390和GTX 970的Doom如何堆叠PC的性能。

Digital Foundry:我们会通过Vulkan在PC版本中看到异步计算吗?

比利汗:是的,异步计算将广泛应用于在AMD硬件上运行的PC Vulkan版本。Vulkan可以让我们终于把它更多地代入金属。使用Vulkan消除了强
大的驱动程序层,这将提供在OpenGL或DX上无法实现的显着性能改进。


Digital Foundry:您是否预见到异步计算将是跨格式的所有引擎的主要因素?

比利汗:现在的时候了,真的。Doom已经是一个很明显的例子,即异步计算在正确使用时可以大大增强游戏的性能和外观。未来,计算和异步

计算将更广泛地用于idTech6。几乎可以肯定的是,更多的开发人员将会利用计算和异步计算,因为他们发现如何在游戏中有效地使用它们


Digital Foundry:您对Vulkan / DX12作为三重游戏开发的主要API有何想法?还还为时过早吗?

Axel Gneiting:我建议任何人尽快开始。绝对有一个学习曲线,但好处是显而易见的。Vulkan实际上已经有了相当不错的工具支持与

RenderDoc已经和调试层现在真的很有用。Vulkan的最大优点是着色器编译器,调试图层和RenderDoc都是开源的。此外,它完全支持Windows 7
,因此与DX12相比,操作系统支持没有任何不利之处。


Tiago Sousa:从不同的角度来看,我认为看到游戏的结果完全利用任何新的API的设计将是有趣的 - 因为还没有游戏。我期待着像动态阴影这
样的屏幕上几何细节的数量相对较大的跳跃。另一个被忽视的方面是,较低的CPU开销将使艺术团队能够更有效地工作 - 我预测这方面的欢迎
生产率提升。

另一个使用Vulkan要看PC的表现。要获得与主机相当的体验,您真的需要GTX 960 / R9 380级硬件和四核处理器,这表明ID在主机优化方面做
了一个工作。


Digital Foundry:您能给我们一个如何利用控制台CPU和优化机会的想法吗?PC版本真的需要一个四面体,相对来说,应该用PS4 / Xbox One美洲虎

擦拭地板。

Axel Gneiting:我们正在两个主机上使用所有七个可用内核,在某些帧中几乎整个CPU时间都用完了。CPU侧渲染和命令缓冲区生成代码非常

平行。我怀疑Vulkan版本的游戏将在合理快速的双核系统上运行良好。OpenGL占用了整个核心,而Vulkan允许我们与其他工作分享。

Digital Foundry:没有打破NDAs,游戏技术的未来似乎显示出对GPU功率与CPU的更大偏差。您认为在使用GPU来处理与CPU相关的任务方面,您

认为还有更多可以使用idTech6?


Axel Gneit:一般来说,很难预测未来,所以我们尽量保持我们的代码尽可能简单直接,以便对任何架构做出反应。现在看来,我们正在走向
这个方向。


Tiago Sousa:从长远来看,我可以预见未来,许多GPU以更有趣的方式组合在一起,而不仅仅是MGPU AFR(多GPU替代帧渲染)的旧学校方式。
特别是现在开发人员正试图平衡/缓存成本,以便能够跨不同的平台进行扩展 - 跨GPU的同步正在成为AFR类型方法的重大瓶颈。

Digital Foundry:在beta阶段,您可以从控制台版本的自适应转换为直接的v-sync解决方案。你在那里有什么想法?


Jean Geffroy:我们在封闭式和开放式测试版之间进行了很多改进,包括我们的v-sync解决方案。我们将其改为使用三缓冲解决方案,我们始
终以最小延迟呈现由GPU呈现的最后一个图像。这与Nvidia最近在PC上推出的Fast Sync非常相似。

在最后一个测试版中看看控制台多人游戏的表现,所以非常接近最终的MP游戏帧率。


Digital Foundry:您能否给出我们关于如何优化性能的想法?

Axel Gneiting:我不认为这是一个很大的秘密。和其他人一样,我们使用分析器,查找热点,优化它们并重复。

Tiago Sousa:我喜欢保持简单。通常我会从简约的数据和代码(算法角度)处理事情,同时考虑到目标硬件和一系列未来学。例如,处理所有
这些数据是有意义的,还是只能处理一个子集呢?这是最小的数据集吗?如果解决方案有点在火箭科学/疯狂的一面,我们可以做些什么来尽可
能简单?如何在较慢的平台上运行良好,扩展程度如何?等等。当然,通常的轮廓指导微观优化。

Digital Foundry:我们看到idTech5使用在许多Zenimax的工作室上 - 是为了其他开发者设计的idTech6吗?

罗伯特·达菲(Robert A Duffy):我们的Engine(引擎)开发一般都是由我们的工作室在积极开发中的需求引导的。与试图出售或许可引擎技
术的公司不同,我们的奢侈品被合理地专门制造。



随着时间的推移,我们正在扩展技术的能力,以适应更广泛的功能,值得注意的是,我们也在不同的工作室之间进行了大量的技术共享。如果

一个姊妹工作室做得很好,我们不要重新发明轮子,所以我们只问“你做的好吗?” - 这是更快的。

Digital Foundry:下一步为idTech6?你正在研究哪些主要的兴趣领域?

Robert A Duffy:使用工具更好的开发人员支持是一个主要的近期目标,因为使管道更好的艺术和设计是关键。我们在E3 2016展示了一
个“Doom Universe”VR技术演示,并且在VR硬件的前期工作的基础上,我们现在正在推动软件方面的努力。我们认为技术基础在90fps +以极

高的仿真度处于非常好的位置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值