ReSTIR Surfel GI 全局光照解决方案——GAMES 2022技术分享报告

在第七届计算机图形学与混合现实前沿研讨会上,D5渲染器渲染引擎组的胡炳扬分享了D5渲染器在动态光追全局光照问题上解决方案,即ReSTIR Surfel GI系统。本文对解决方案内容进行分享,包含ReSTIR Surfel GI与Lumen等其他实现方案对比展示。


目录

GAMES2022-D5渲染器技术分享报告完整视频

问题和以往解决方案

在渲染领域,所有全局照明方法(Global Illumination, 简称GI)的理论基础(光线追踪,路径追踪等)都在于求解渲染方程。但求解渲染方程往往需要大量的样本数量才能收敛(得到干净无噪点的画面),这在实时渲染中几乎不可能实现。

渲染方程

因此,我们只能用一些方案来近似地模拟。但在需要以往的解决方案中,结果或多或少都存在一些通病,例如光照泄露和过度遮挡、采样率不足导致噪声过大等问题。

采样率不足导致噪声过大

即使采用屏幕空间降噪等手段,效果也不佳

D5的解决方案——ReSTIR Surfel GI

针对这一行业的痛点,D5提出了 ReSTIR Surfel GI 的解决方案,通过光线追踪和缓存技术相结合共同解算GI。

实时渲染中路径追踪与 D5 GI 的对比

图为视频帧序列 GI 质量的对比,相同采样时间下,左侧为路径追踪的结果,右侧为D5 GI的结果,不难看出D5的全局光照系统在实时渲染中优异的表现。

在D5渲染器 2.4版本升级中,D5 GI更是带来全新的表现,查看详情:D5 GI|保持实时性的同时,不断追逐离线渲染级别的品质

光线一次反弹的计算方案

ReSTIR(Reservoir-based Spatio Temporal Importance Resampling),即基于储层的时空重要性采样,是一套利用时序和空间上的样本复用的算法,来源于 Bitterli 等人于2020年发表于SIGGRAPH的论文。D5将 ReSTIR 扩展在全局光照(GI)上,不同于光源采样,而是储存了路径。

在GI困难场景中未使用 ReSTIR 的效果

在GI困难场景中使用 ReSTIR 的效果

但复用时序样本的同时,也会导致在光源环境改变或者动态物体的情况下存在 Temporal Lag 的现象。因此,D5采用了 Path Validation 的方法检测前一帧和当前帧亮度变化,并以此调整复用的样本数量。

您可以在下面两个视频的对比中看出,当光源发生改变时场景中亮度变化的响应速度差异。

未使用 Path Validation 的效果

使用 Path Validation 的效果

光线二次及之后反弹计算方案

ReSTIR在计算一次反弹计算中产生了良好的效果,但在实时渲染中我们很难将其应用于多次弹射的计算。因此D5的全局光照系统的二次及之后反弹计算中采用了 Surfel Caching 的方案。

GIBS (Global Illumination based on Surfels)方案由EA团队研发,即基于屏幕空间迭代地生成Surfel,能够有效地积累和缓存辐照度。但这样会产生一些新问题,例如无法获取屏幕空间外的结果。

远处的反射呈现出不正确的死黑

对于这个问题,D5对上述方案做出了一些改进,从GBuffer发出射线后的交点再去生成 Surfel,得以存储了当前视角外的位置的 Surfel,获得了正确的结果。

Surfel GI 示意图

改进后的 Surfel GI 示意图

同时,将场景划分成级联网格来管理 Surfel,以减少显存占用;并通过将光线反弹次数排序比较等方式,解决光照泄露;以及一些其他走样(Artifact)的优化。

其他优化

此外,D5团队还针对多光源采样、间接光源优化、反射、降噪等问题提出了一系列的解决方案,使得ReSTIR Surfel GI 能高效、稳定地运行在不同的场景中。

ReSTIR Surfel GI 与其他实时GI方案的对比

路径追踪(标准结果)

D5 ReSTIR Surfel GI

Lumen

总结

在D5渲染器的实际操作中,用户可以通过丝滑的实时预览画面,直观地感受到 ReSTIR Surfel 全局光照系统带来的受益。用户任意地变换摄影机位置、添加光源或改变天空的间接光照情况,都能够即时地在预览窗口中得到反馈结果。

同时,相比于其他全局光照解决方案,D5 GI渲染的结果更接近于路径追踪的结果,在实时渲染保持性能的同时也保证了结果的质量。

D5 GI 与路径追踪结果的对比

下面的实机演示视频,带您更直观地感受D5实时全局光照方案的速度与质量

D5 实时渲染室内场景

D5 实时渲染室外场景

拓展阅读

D5 GI|保持实时性的同时,不断追逐离线渲染级别的品质

AI时代的“走向新建筑”| 都研专访

Rhino 渲染工作流快速使用指南

3ds Max – D5实时渲染工作流快速使用指南