id软件技术采访:DX12,Vulkan,Mega-Textures,PBR,全局照明等

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