(很多我原来用的谷歌翻译,后来我自己翻译了一些,
因为不准,有的我现在又更正了一些,其他难免有错误,
请谅解,很多也是一点点 的 改的)
id软件技术采访:DX12,Vulkan,Mega-Textures,PBR,全局照明等
几个星期前,我们很高兴与Id Software的Tiago Sousa和Axel Gneiting采访。
我们与他们谈了一下Tech Tech 6的主要特征,
它们的 巨型 纹理 技术 的 发展 以及 所有 的 DirectX 12和Vulkan。
DSOGaming:在我们开始之前,请向我们的读者介绍一下。
Tiago Sousa:我的名字是Tiago Sousa,id Software 和 DOOM的 首席 渲染 程序员
在加入id 之前,我在Crytek工作了 十多年,
在 CryENGINE 和 Far Cry(孤岛惊魂)和 Crysis(孤岛危机)等 游戏 上工作。
Axel Gneiting:你好,我的名字叫Axel Gneiting,我 一直 在id Software工作,
从事 引擎 技术 大约 一年了。
在此之前,Crytek Frankfurt 发行《Ryse》团队 的 一员。
在id中,我 参与 了 通用引擎 的 工作,
优化 了 它 在 CPU 和 GPU上 以 60Hz 运行,
并且 实现 了 大部分 的 Vulkan 渲染器。
DSOGaming:DOOM是第一款由ID Tech 6提供 的 游戏,
我们不得不说,我们 真的 很 惊讶。
您可以 分享 关于 ID Tech 6 的关键 图形/技术功能 的 更多 详细信息?
蒂亚戈:当然可以。除了渲染器之外,整个引擎 都有 相当大 的 重构/更新。
渲染器方面,我们现在是一个混合 前向 和 延迟渲染器 渲染器,
支持包括 透明胶片 在内的 所有 表面 类型 的 动态照明,反射,阴影 和 贴片解决方案。
高动态范围 渲染 和 基于 物理 的着色 (shading)也是 比较 大的,
具体 到 idTech 6,同样是 美术方面的,
如果你记得 以前 的 引擎 迭代 是LDR阴影发生较少。
那么就有 先进 的 后处理 和 反锯齿。
我想你可以说,关键的技术“功能” 在更多的是在所有 平台 上,
所有的设计都能在+ 60hz的外观,性能和规模上得到 很好的 体现。
DSOGaming:DOOM 是否 使用 巨型 纹理?
而且 您 如何 能够 克服 以前 的 动态照明 和 多GPU支持 的 引擎 限制,
影响 所有 id Tech 5 游戏?
Tiago:为了 支持 动态 照明 和 提高 纹理 质量,
我们将Mega-Textures 演变 为更加 易于 使用 的 更简单,性能更高的解决方案,
并且美工的 迭代 时间 也更快。添加了诸如 tilling 的简单功能;
还 引入 了一种 新的 动态 贴花 解决 方案;
纹理 输入 现在 也是 先进行烘焙 然后 G几何缓存 输入的一种形式,
诸如 常见的 PBR 输入 如 反照率,平滑度,法线 等。
对于多GPU,我们尝试 尽可能地 减轻 帧间 相依性,以帮助 IHV 实现 相当 不错 的 缩放。
DSOGaming:DOOM看起来很漂亮,在PC上运行非常好。
你怎么 能够 实现 这样 的 东西?
蒂亚戈:谢谢。不必支持 100万个 不同的 游戏 和平台,
帮助 团队 专注于 长期 成果 和 关键 事项,
同时保持代码质量相当高和简约,因为遗留/代码熵较少。
性能 是团队 关注的 重点,我的意思是所有的部门,而不仅仅是代码。
在代码性能方面,我可以说,我们的理念是“早期优化是一切的根本”,
结果说明了自己。
尽管我们的理念是“早期优化是一切良好的根源”,结果不言自明。
就性能而言,我还必须归功于主机的分析工具;这是一个PC有很多追赶要做的领域。
另一个重要的细节是控制台和下层平台绑定为DX11类型的硬件,
所以,不必支持非常老的硬件,
以及现在的 主机 有相当大量的内存,实际上有助于我们的设计选择。
在视觉方面,这是一种共生关系,
我们的渲染性能设计和工具帮助id Software出色的美术部门实现了他们的愿景。
DSOGaming:基于物理的渲染是下一个重要的“图像”内容。
您能向我们的高级技术读者和普通人解释一下使用这种渲染技术的好处吗?
Tiago:我最喜欢的PBR部分是,它有助于让美工在一致的事情上保持理智/良好的方法论,
而不是每个美工随机创造没有太多物理意义的纹理。(很多翻译仍需改进,请理解)
简单来说,非PBR解决方案当然可以工作,但改变照明条件时,您将开始具有照明不一致,
这不可避免地会导致艺术进入循环。例如 - 为什么在艺术家的机器上看起来不错,
但是在不同的光线条件下,它看起来不是很好;
另一个例子可能是为什么附近的一些资产 看起来完全不合适。
过去这些类型的不一致将为美工部门创造很多工作。
回想起来,很难掌握电影和游戏行业在没有PBR的情况下如何设法工作。
话虽如此,我相信我们仍然可以改善各种不同类型的投入和案例。
总而言之,可以说主要的优点 是在各种照明条件下的视觉/效果的一致性,
一般来说,由于一致性,最终可以获得更好的视觉效果,
而且非常重要的是它有助于节省艺术时间。
DSOGaming:ID Tech 6能够处理与 DOOM 相同质量的视觉效果的 巨大的开放世界环境
(Skyrim(上古卷轴))吗?
蒂亚戈:引擎可以支持相对开放的世界,但这不是我们目前的idTech迭代的目标,
而是所有关于DOOM的工作。
DSOGaming:您可以分享关于id Tech 6全局照明解决方案的更多技术细节?
蒂亚戈:为了最大限度地提高性能,在这次迭代中,
我们不断地将预制和实时组件混合在一起,所有输入都是HDR。
对于漫反射间接照明, 我们 最终 使用静态几何的光照贴图。
对于所有类型的动态几何,我们推导了辐射体积。
对于间接反射,它是一个基于图像的照明解决方案
实时组件是在屏幕空间中近似的性能,
我们最终使用了一个相当快的屏幕空间方向遮挡/反射的推导。
DSOGaming:如果你只需要选择一个id tech6的技术特征,那会是什么呢?
蒂亚哥:很难选择,但我想这将是所有的照明/阴影如何在各种各样的表面类型中
始终如一地有效地工作。
与大多数事情一样,我们可以改进,但我对结果感到满意。
DSOGaming:在测试《毁灭战士》的时候,我们注意到在一些场景中我们的GPU
并没有发挥出最大的作用(即使我们没有CPU或VRAM的限制)。
这是OpenGL API的限制吗?
我们可以期待在这些场景中使用Vulkan能更好地利用GPU吗?
Axel:从我们使用我们的分析工具收集的数据,我们预计GPU在GPU限制情况下可能闲置很长时
间。OpenGL在这方面没有任何限制。一般来说,这是一个安全的假设,它的行为类似于DirectX
11.然而,我们将飞行中的帧数限制为只有一个,因为对于像DOOM这样非常快节奏的射手来说,
延迟非常重要。
与允许更多帧缓冲的引擎相比,这可能导致GPU使用量略低。
如果硬件和驱动程序支持它,
我们预计Vulkan可以通过运行异步计算工作负载来帮助利用剩余的空闲GPU时间。
如果这个场景受到CPU绘制调用的限制,Vulkan肯定会有很大的帮助。
Vulkan上的DOOM也会将渲染分发到多个线程,
这将有助于具有两个以上核心的CPU。
请注意,仍然有游戏相关的代码,如AI,路径查找和物理,不能通过使用不同的图形API加速。
DSOGaming:既然您已经在DirectX和OpenGL上工作,那么您对这两种API有何看法?
你认为Vulkan比DirectX 12好吗?
Axel:总体而言,我们用OpenGL开发DOOM很少有问题。
DirectX 11可能在驱动程序方面优化方面有优势,
多年来IVH与OpenGL相比,更加努力。此外,在这一点上,
DirectX与OpenGL有更广泛的工具。
另一方面,OpenGL通过扩展具有更大的功能集,并且在某些GPU操作方面的限制较少。
DirectX 12和Vulkan在概念上非常相似,显然都继承了AMD的Mantle API。
这些API的低级特性将很多优化责任从 驱动程序 移动到 应用程序开发人员,
所以我们预计未来两个API之间的速度差异很大。
在工具方面,RenderDoc中现在有非常好的Vulkan支持,它涵盖了我们大部分的调试需求。
我们选择Vulkan,因为它允许我们支持Windows 7和8,
而Windows 7和8仍然具有重要的市场份额,并且将被DirectX 12所排除。
除此之外,Vulkan还有一个扩展机制,使我们能够与AMD,NVIDIA和英特尔
为每个硬件做了非常具体的优化。
DSOGaming:Photogrammetry(我翻译为 摄影测量技术,不知正确与否)是一种在过去几年里给人留下深刻印象的技术。
id Tech 6是否支持它,您对此有何看法?
蒂亚戈:这并不是 引擎 特有的功能。摄影测量已经存在了好几十年,才是一个流行语。
本质上就是将摄影作为数据采集的手段。
人们可以在2006年回忆说,孤岛危机使用摄影测量法进行植被,
Paralax Occlusion Mapped(视差遮挡贴图),岩石,用于地面细节和一些其他资产。
但是,它已经不断完善。我是真实世界数据测量/采集的粉丝;
我觉得加快生产有一定的潜力。我认为一个领域,特别是针对现实的艺术方向的游戏,
对我而言,一再重新设计资产并不真正有意义,那么为什么没有数据库?
从这个角度来看,如果有人会出现麻烦,我不会感到惊讶。那就是完全扫描
某些场景的东西; 对于某些受限制的情况,这可能是有趣/可行的 。
当我说限制时,我的意思是由于数据存储要求的数量,
对于高保真/密度/ HDR编码,有点疯狂。那么就有人物扫描和其他类型的数据采集,
这些日子真的是一个有趣的研究领域。
DSOGaming:ID Tech 6是否支持可破坏的环境?我们可以期待一个id Tech 6游戏
具有与Frostbite 3游戏(如战地3或4)中发现的破坏系统相同的销毁系统?
蒂亚戈:我们支持可破坏的环境。这是我们的名单中明确的改进。
我认为,特别是这些天,相当好的性能和效果可以通过几何缓存类型的解决方案
大规模破坏,混合物理与较低规模的实现。
DSOGaming:Doom 3 - 由id Tech 4提供技术 - 是几乎所有光源投入动态阴影的少数几个游戏之
一。这是在2004年的回归。
然而,我们注意到,在较新的游戏中,很多灯光不会投下阴影。
id Tech 6能够在所有光源上渲染动态阴影吗?
在Tech Tech 6中可以投射动态阴影的最大光源数量是多少?
蒂亚戈:引擎实际上支持相当大量的光源,概念上> 100k,
但是我们将最大限度地达到8k左右,
尽管如果你使用那么多的光源,你可能做错了!
阴影投射体的数量受到我们必须缓存阴影的视频存储器的限制,
因此对于单个截头锥体和性能,我们将clamp(截取)到256个阴影脚轮灯 -
可以增加,
但是在性能方面,如果您'重新使用这么多,你可能会对基于阴影贴图的方法做错了。
每帧只有很小的一部分实际上是更新的,
因为成本不断地在帧上摊销,有时缓存缓存,
如果没有更新在光源的平截头体。
DSOGaming:我们来谈谈Ray-tracing。id Tech 6是否支持ray-tracing?
我们从视频游戏中的完全实时光线跟踪(或路径跟踪)照明系统到多远?
蒂亚戈:我们可以说,我们的动态反射是在有效/友好的空间进行实时渲染的射线跟踪近似,
但它与完全成熟的光线跟踪解决方案不同。
有一个有趣的说法,就像“Ray Tracing是未来,永远是”(特别是路径追踪) -
我认为这是相当复杂的游戏的长久以来,如果我们正在谈论完全的照片真实近似,
特别是当前推出的4k和更广泛的分辨率。
对于较短的期限,我可以完全设想出不是非常密集/简单的环境的智能路径跟踪近似,
特别是当然比以比屏幕像素密度更低的频率计算的解决方案。
DSOGaming:弹出对象是一个尚未解决的问题。虽然一些游戏具有较高的LOD水平,但每个游戏
或多或少都受到影响。真正令我们困惑的是,虽然 动态镶嵌 基本上通过在飞行中改变细节水平来解
决这个问题,但是没有人曾经使用过它。
您对动态镶嵌有什么看法,并尝试过它以消除对象/环境弹出窗口?
Tiago:回到Crytek时代,我们确实在孤岛危机2上使用细分为某种简单资产,动态调整镶嵌比。
为了概括(可能翻译有误),它实际上是一个相对复杂的问题,
从资产创造开始,艺术家通常想要完全控制结果。
常规的实时镶嵌(phong和这样的简单衍生物)往往会实际平滑艺术家想要控制的细节,
所以只需一个简单的方法就不足以满足一般情况,
特别是对于人物关闭 - 例如,如果我们从低分辨率网格很多数据将缺少一个比较好看的动画。
这就是为什么我们大多数在游戏中看到,用于视觉绒毛的镶嵌,
所以更简单/可控的情况,例如环境影响,拓扑上的东西本质上
是从位移/矢量位移映射(水,岩石表面,雪上的足迹等) )。
那么还有一些更根本的问题,如镶嵌有附加成本的东西,
事情将不会完全正确地与流离失所的表面相互作用。
例如,想象一张椅子,在一个置换的瓷砖地板上,会有剪裁。
但是,为了消除弹出窗口,实际上有很多种方法 -
如果在游戏中弹出很明显的时候,通常不会考虑到关闭技术,而不是通过二进制解决方案。
DSOGaming:非常感谢您的采访,您要与粉丝分享的最后一句话?
蒂亚戈:我只想 非常 感谢 所有 粉丝 对 DOOM 的支持。