标志着Ubisoft的旗舰系列的重要技术演变,并具有振兴的砧引擎,该发动机与其他创新系统一起挖掘了一些最新的渲染技术。我们已经看到了新游戏的实时射线追踪全球照明(RTGI)系统的变革性如何,取代了十年前首次在DF最爱中首次亮相的较旧的,预先计算或“烤制”的GI解决方案,。但是,新引擎走得更远。
在去年延迟阴影之前,我们有机会与游戏的渲染工程师共度时光,讨论Anvil的发展方式,最后,本周早些时候,我们有机会直接与团队交谈。正如您将在此页面上的嵌入式视频和下面的技术访谈中看到的那样,我们可以掌握新游戏中的关键增强功能。 Ray Tracing需要中心,RTGI提供了一个像素照明系统,该系统可以动态调整游戏的季节性季节性转移的开放世界,从而产生了逼真的效果,例如通过日本Shoji分离器等材料从移动来源和光线过滤产生弹跳的效果。此外,射线追踪的反射可增强水和光滑的表面,并具有微妙的光泽。
尽管在访谈中没有提及,但视频中涵盖了Atmos系统 - 很棒的东西,基于湿度和温度等环境因素模拟天气和风。这种活力在过程中影响世界:树木的摇摆,头发移动,叶子或雪对风反应。通过物理驱动的破坏系统进一步强调互动性,使玩家能够打破竹子,切成薄壁或切片布,回应2000年代中期游戏的环境互动性,例如时期制作。
从视觉上讲,与虚幻发动机的纳米类似的微型几何系统 - 消除了建筑物和岩石等刚性对象的弹出式弹出式(LOD)。虽然尚未应用于植被或角色,但计划将来扩展以进一步提高忠诚度。这只是我们对新游戏学到的知识的广泛概述 - 请务必查看下面的视频,以了解所有这些技术的发挥作用。同时,许多感谢Engine技术建筑师Nicolas Lopez和Pierre Fortin,以及Project Progincemer Rendering,SébastienDaigneault的支出(很大程度上)与我们讨论游戏并将此报道放在一起的时间。与往常一样,为了清晰和简洁,下面的言论被轻微编辑。
我们已经看到Ray将全球照明跟踪是AC阴影中的游戏改变者 - RTGI在技术层面上的运作方式如何?
我们的混合RTGI系统结合了两个步骤:人均射线跟踪(屏幕空间射线和世界空间射线)和类似DDGI的探针级联。我们首先在屏幕空间中跟踪每像素射线,试图求解RT交叉点,而不必使用昂贵的硬件射线。如果在屏幕空间中没有发现命中,我们将继续并在世界空间中进行射线痕迹。这些是DXR射线,它们穿越加速度结构(BVH),直到击中或错过。然后,所有命中均以延期的方式恢复,以产生第一次反弹。然后将结果求和到我们的射线追踪探针,该探针充当辐照缓存以带来随后的弹跳,最终将结果降低。
太阳和月球以外的动态灯如何处理?
通过直接照明,我们使用瓷砖Z-衬板处理本地灯,这是Activision在Siggraph上提出的一种技术。它没有将冰果分解为3D簇,而是将其分解为2D瓷砖和1D Z-Bins,这为AC阴影的照明成本提供了10%的速度。但是,在RT中,我们将动态灯插入全向聚集的照明结构中,该结构的工作方式与传统的群集照明作用,但群集体积被映射到摄像机周围的均匀网格上,而不是将其映射到Froustum Voxels周围。因此,我们观察到10倍加速与更幼稚的实现。
透明胶片如何阴影?那多个弹跳呢?镜面如何处理?
GI仅在使用RTGI运行时使用RT探针应用于透明对象。第一个反弹来自每个像素RT,这是我们所说的次级射线。随后的弹跳来自充当辐照缓存的RT探针。对于镜面反射,大多数平台将使用屏幕空间反射,GBUFFER本地立方体映射(烤制,但在运行时可重新获得)以及在玩家位置的动态立方体图作为后备。在PC上但是,镜面RT可用于替换这三个系统并提高整体保真度。在设计方面,镜头RT与漫射RT非常相似,尽管我们不得不解决一些否则几乎没有明显的BVH质量问题。
BVH结构(涉及到的射线的几何形状)是什么样的,包括什么以及如何更新?
我们仅在BVH中包括静态不透明的几何形状。它包括经α测试的几何形状,例如植被,但还包括没有皮肤的动态运动物体(未变形)。对于树叶,我们使用技巧来用缩放的不透明三角形来假α测试。这听起来是违反直觉的,但在实践中效果很好,对于镜面RT来说也是一个很好的近似值。这样,我们节省了DXR“任何命中”的巨大成本,同时仍可生产接近参考的渲染。
开放世界与藏身处使用了什么GI解决方案?
我们在不包括RTGI的控制台模式下使用烤制的gi开放世界。对于不支持硬件RT的PC,我们开发了一种基于自定义计算的软件RT解决方案,该解决方案允许完全动态的藏身处,而不会损害质量。藏身处的范围/沙盒性质意味着我们在这里负担得起该系统的更高GPU成本。我们在AC阴影的最初延迟后开发了这一点,因为我们退后一步并分析了我们可以为玩家提供更加精致的体验。蒸汽甲板上也使用了相同的技术。
鉴于印第安纳·琼斯(Indiana Jones)和阿凡达(Avatar)之类的人:潘多拉(Pandora)的前沿,为什么要使用两个GI解决方案而不是仅使用RT?
一个简单的原因是,我们相信今天将RT迫使RT迫使PC上的玩家,而在游戏机上的性能模式下也迫使我们做出我们根本不愿意采取的定性牺牲。我们为我们从AC Unity不断提高的烘焙gi系统感到自豪 - 随着一天中的AC集团的时间,AC Origins的稀疏GI,AC Valhalla的多状态GI和AC阴影中的季节。
这是一个具有廉价运行时间的系统,但产生了出色的结果,而牺牲了建立复杂性。这使我们可以在60fps的方案中使用有限的GPU预算在其他功能上,例如程序模拟的树木和植被。我们知道性能模式对玩家很重要,这将是一种流行的模式。
另一方面,RTGI和RT反射具有不可否认的优势,对于我们来说,为阴影和未来标题开发它是很自然的。我们认为,游戏在质量或性能模式之间的选择方面提供了真正的困境。对于我们来说,开发单个GI解决方案会更容易,但是我们希望最大程度地利用游戏的范围,甚至包括Steam Deck和Portable PC硬件。
头发系统的技术基础是什么?如何处理阴影,阴影和反叠放?
从几何上讲,头发是面向摄像头的三角形条。如果由于透视图,链宽度需要在一个像素之下,则它将在保持相同宽度的同时降低链性不透明度。角色发型具有可变数量的链,随着相机的距离和位置而降低。与顶点数量相比,沿链的样品沿链的样本更少计算,并且随着摄像头距离而降低。为了可伸缩性,只有一定百分比的链被以这种方式点亮,而其余的则是从先前的结果中插入的。
在物理学方面,我们最多模拟了总链的一至5%的每股32点 - 我们称之为指导链 - 并使用来自三个最近的导游的重心权重插入其余部分。
对于头发遮蔽,我们使用Marschner模型,该模型自《幽灵侦察野外》和双散射模型以来一直存在于引擎中。该实现主要基于原始2008年Zinke的论文,Yuksel等。,从2010年迪士尼Tamstorph Tamstorph后部。
对于阴影,我们有一个自定义地图集,可用于更高质量和每个链阴影,可实现过滤的深度不透明度图。同样,为了伸缩性,我们采用距离吸收方法和简单的深度图方法。为了抗氧化,我们对链的“电话线”抗溶剂,以及用于发束的MSAA和双线性过滤。由于将链与alpha混合呈现,我们具有一种自定义订单独立的透明度算法,该算法使用四个深度层和每一层内的样品重量混合,从2013加权混合OIT纸摩根·麦奎尔(Morgan McGuire)和路易(Louis Bavoil)。
控制台上使用了哪种反叠缩和/或图像重建技术?
我们使用自己不断完善的TAA实现 - 尽管我们将在将来的更新中添加对PS5 Pro上的PSSR的支持。
为什么您不选择在Xbox系列X和PS5上使用FSR 2或3,而不是选择在PS5 Pro上提供PSSR?
简而言之,与我们专有的TAA实施相比,FSR的成本是决策因素。与FSR相比,我们具有更高的上尺度分辨率。
在PSSR方面,我们分析了PSSR和TAA DAT运输AC阴影的时间,并通过TAA解决方案找到了更好的结果。但是,PSSR是一位新的高档器,在过去几个月与索尼进行了深入的合作之后,已经解决了许多问题,主要是围绕移动的植被和水 - 其他标题面临的问题。现在,我们有信心,PSSR的图像质量总是比TAA更好。
为什么将过场动画限制为30fps?
有几个原因。在过场动画中,我们认为增加的分辨率比增加的框架速率更有益。这使我们能够激活昂贵的GPU功能,无论选择哪种性能模式,头发链和田间效果的深度为电影和对话增加了很多质量。我们还推动阴影分辨率质量和数十个其他参数。稳定的30fps还提供了更逼真的布运动,并确保基于物理的系统对更确定性和可预测的响应,以获得更精致的体验。最后,框架的一代可能会将不必要的人工制品带到过场动画中,这在游戏玩法中不会引人注目,因此我们在这里不使用框架。
特别是PS5 Pro,为什么在质量模式下会出现RT反射,而在平衡模式下不存在RT反射?
最初延迟到交流阴影后开发了RT反射。鉴于发布窗口的变化,我们希望确保在高端PC和PS5 Pro上保持竞争力。我们有一个非常有动力的团队,他们学到了很多开发RTGI解决方案,并有信心以30fps的性能目标在Pro上运送RT反射的目标。为了启动,我们的优先级是质量模式,以确保它不会引起图形伪像或其他问题。我们继续优化RT的反射和游戏,我们很高兴地说,将来的更新将使RT对PS5 Pro的平衡模式进行反思。
我们在PC游戏中最大的问题之一是口吃,主要来自在正式的着色器汇编中。您避免这种情况的策略是什么?
这是所有DX12游戏在PC上都面临的挑战。一般的想法是在进入游戏玩法之前“预热” PSO。为此,我们正在使用SO-称为PSODB(PSO数据库);简而言之,这是PSO描述的列表。困难的部分是弄清楚在PSODB中放置了什么以及跳过什么。您可能想象,我们有大量的材料和技术,因此有大量着色器,更重要的是着色器排列 - 并非所有这些都在游戏中使用。将每个着色器置换量放在PSODB中会导致我们想要避免的第一个启动上的长着色预兼容步骤。
相反,我们正在做两件事:对于由程序员创建的那些着色器,我们可以找出有用的确切排列,因此我们以某种手动方式将它们添加到PSODB中。但是,对于那些用着色器图制作的着色器来说,不可能这样做。为此,我们使用统计数据,每当有人玩游戏的开发版本时,我们都会收集这些统计信息,然后在我们的构建农场上过夜的特殊过程收集这些统计数据,完善它们并更新PSODB。因此,游戏在QC过程中自我纠正。
首次运行游戏后,在每个驱动程序更新之后,我们在PSODB中构建了PSO描述,并且在游戏启动序列中初始化图形硬件后,我们就进行了此编译。该系统是在AC Valhalla引入的,我们相信我们是该行业中第一个这样做的人。