多分辨率几何表示利用包围盒层级结构进行光线追踪的“原理”

最初发布日期:
Takahiro Harada's avatar
原田孝裕 (Takahiro Harada)
Paritosh Kulkarni's avatar
Paritosh Kulkarni
Sho Ikeda

引言

细节级别 (LOD) 技术在栅格化领域已不是什么新鲜事物。许多游戏都在使用它并享受其带来的好处。但是,对于光线追踪而言,细节级别技术的好处并非微不足道。例如:

  • 深度较高的次级光线可能不需要非常详细的几何体。在这种情况下,使用粗糙 LOD 的几何体表示进行光线相交/BVH 遍历可能就足够了。拥有粗糙 LOD 的 BVH 会减少次级光线遍历的节点数量和执行的相交测试次数,从而极大地提高性能。
  • 阴影光线和 AO 光线可能不需要非常详细的几何体来进行追踪。许多近似方法,如锥体追踪,已被尝试用于解决此问题。LOD 在此非常有用。

因此,LOD 可以通过减少光线-三角形相交次数和 BVH 中的节点遍历次数来使我们受益,因为几何体的粗糙 LOD 表示自然会拥有更少的三角形,从而更少的 BVH 节点。然而,这并不是一个非常直接的解决方案,因为实现传统的 LOD 方法会引入更多问题。例如:

  1. 通常,同一几何体会有多个 LOD 实例。所有这些实例可能无法全部放入 GPU 内存。因此,不在内存中的特定 LOD 实例将在需要时按需加载。这不利于性能,并可能导致加载卡顿等问题。相反,如果我们选择将所有 LOD 实例都保留在内存中,那肯定会增加内存预算。
  2. 一旦我们加载了所需的 LOD 实例,我们就需要更新/重建 BVH,这无疑是一项操作量很大的任务。
  3. 基于某些参数(例如与原点/摄像机的距离),将选择主光线的 LOD 实例。次级光线应看到完全相同的 LOD 级别。如果我们为次级光线选择不同的级别,则可能看到孔洞伪影。

将 LOD 技术应用于光线追踪的过往尝试

已经有许多尝试将 LOD 技术应用于光线追踪的用例。让我们在此探讨其中的一些。

RLOD 方法

该方法试图通过主成分分析来简化现有的三角形/网格集。根据某些 LOD 误差度量,我们可以在 BVH 的内部节点停止,然后将该节点下的所有图元通过 PCA 近似为平面。然后使用该平面进行相交以获取着色信息。

参考: RLOD: Fast LOD based ray tracing for massive models

局限性

  1. 对于具有高度变化 BRDF 的表面,可能无法提供高质量的简化。
  2. LOD 度量无法保证次级光线追踪路径以及每像素计算出的光照中的误差。
  3. 基于投影的 LOD 误差度量目前可以处理平面反射和阴影光线,但不能处理折射或非平面反射。因此,不适用于通用路径追踪。

遍历着色器方法

当前的光线追踪管道将遍历和相交视为固定功能操作。对于自定义图元,相交可能是可编程的,但 BVH 的遍历是完全固定的功能操作。此方法试图引入一个可编程的 BVH 节点,该节点将充当 TLAS 中的叶节点。在光线相交时,会调用一个用于与可编程节点相交的遍历着色器。此遍历着色器将包含转换光线、计算 LOD 并选择合适的 BLAS 实例以进行进一步遍历的逻辑。

参考: Flexible Ray Traversal with an Extended Programming Model

局限性

  1. 需要更新光线追踪管道,这并不容易。
  2. 假定所有 LOD 实例都存在于 BLAS 中。

随机 LOD

这是一个多通道技术。在第一遍中,我们计算实例 LOD,在第二遍中,我们使用该 LOD 进行追踪。LOD 计算作为预处理步骤完成。

参考: Implementing Stochastic LOD with Microsoft DXR

局限性

  1. 次级光线应看到与主光线相同的 LOD 级别,否则会显示孔洞伪影。

一种新的 LOD 技术的基本要求

如上所述,现有解决此问题的有趣方法存在一些局限性,尽管在光线追踪方面使用 LOD 确实具有某些优势。

因此,在开发一种新的 LOD 技术时,我们有一些基本要求:

  1. 能够为每条光线选择不同的 LOD 级别。
  2. GPU 内存预算较低。
  3. 无需更新现有的硬件管道——可以轻松地为现有 API 添加扩展。
  4. 使其能够用于通用路径追踪。因此,它应适用于复杂的材质网络和几何体。
  5. 获得性能提升。该技术本身不会引入额外的开销。

考虑到以上所有目标,我们提出了“多分辨率几何表示利用包围盒层级结构进行光线追踪”技术。

我们尝试使用现有的 BVH 来模拟 LOD。我们定义了一个新的 LOD 阈值启发式方法,在遍历到叶节点之前停止 BVH 遍历。为了通过近似几何体获取着色信息,我们定义了随机材质采样。

从下图可以看出,使用近似方法后,遍历的节点数量显著下降。尽管我们的技术确实引入了一个小的变暗偏差,但它与其他我们获得的益处非常平衡。

Exact

Bistro A,使用我们的方法渲染的 AO 光线投射所遍历的节点数量的图像和可视化。精确。

Approximation: T = 10 degrees

近似:T = 10 度

Approximation: T = 20 degrees

近似:T = 20 度

热图表示每个 AO 光线用于查找相交的节点数量。蓝色(最小值)为 0,红色(最大值)为 400。每个 AO 光线在近似像素中遍历的平均节点数量分别下降到 317、240 和 218。

希望您喜欢这项技术背后的“原理”。有关性能和技术的详细信息,我强烈建议您阅读该论文。

多分辨率几何表示利用包围盒层级结构进行光线追踪 [14MB]

想了解更多?

我们在这里的 GPUOpen 上有大量技术文档,包括我们“出版物”页面上的数十篇已发表论文。离开之前务必查看一下!

Takahiro Harada's avatar

原田孝裕 (Takahiro Harada)

Takahiro Harada 是 AMD 的一名研究员,也是一款名为 Radeon ProRender 的 GPU 全局照明渲染器的架构师。
Paritosh Kulkarni's avatar

Paritosh Kulkarni

Paritosh Kulkarni 是 AMD 的一名研究员和开发者,他致力于开发名为 Radeon ProRender 和 HIPRT 的 GPU 全局光照渲染器。

Sho Ikeda

Sho Ikeda 是 AMD 的一名研究员和开发者,他致力于开发名为 Radeon ProRender 的 GPU 全局光照渲染器。

相关视频

© . This site is unofficial and not affiliated with AMD.