图形/仿真

最新的 NVIDIA OptiX 渲染光线跟踪的速度比以往任何时候都快

NVIDIA OptiX 射线跟踪引擎是一个可扩展的无缝框架,可在 GPU 上提供最佳的射线跟踪性能。在今年秋季更新英伟达 OpTIX SDK ,开发人员将能够利用新的编译技术,和优越的分层和时间去噪处理更多的射线跟踪工作负荷,更快。

更快的编译时间

NVIDIA OptiX 7 . 4 附带了一项新功能,支持包含多个函数的 OptixModule 对象的并行编译。工作被表示为从 API 返回的任务对象,可以并发执行以实现并行性。当发现并行机会时,将返回其他任务。线程在 NVIDIA OptiX 之外通过从应用程序管理的线程执行任务来处理。该应用程序可以更容易地将并行工作集成到现有的作业调度器中。

Rendering of spooky house at night.

图 1 。夜晚废弃的房子,用红移渲染.图片由 Daz3D 提供。

改进的定制和性能

NVIDIA OptiX 7 . 4 已将光线有效载荷的大小从 8 个寄存器增加到 32 个寄存器。有效负载寄存器是 NVIDIA OptiX 提供的机制,用于从跟踪光线的调用方传递任意数据以及光线。这种有效负载机制非常轻量级,类似于向函数传递参数。有效负载的有限大小迫使许多人使用本地甚至全局内存缓冲区来传递光线数据,这可能会对性能产生负面影响。

新的有效负载大小提供了更多种类的应用程序,以便能够利用仅使用寄存器传递数据的优势。使用更多寄存器会增加寄存器压力,并可能导致内存溢出,因此新的 NVIDIA OptiX 7 . 4 有效负载增加还附带了新的 API 函数。这将帮助开发人员优化有效负载的使用。新的 API 允许您声明如何使用有效负载值,以便编译器有机会尽可能重用寄存器。

Rendered blue race car in shadows.
图 2 。阳光下街道上的蓝色汽车,以红移显示。图片提供© 2021 Pavel Rehak 。

曲线添加和优化

我们还引入了一个新的曲线原语: Catmull-Rom 三次曲线。这种类型的曲线是直接通过其控制点的插值曲线的一种流行样式,用于在需要精度控制时微调曲线的放置。 Catmull Rom 曲线是电影和游戏行业头发、毛皮和其他曲线用途的流行选择。 NVIDIA OptiX 已经支持的其他曲线类型是三次和二次 B 样条曲线以及线性曲线。 B 样条曲线是一种近似曲线,比 Catmull Rom 曲线稍微平滑,但通常也不会直接通过其控制点。

除了新的曲线原语外, NVIDIA OptiX 还添加了一个选项,用于控制三次曲线和二次曲线的端点是开放的还是封闭的。为了避免着色器发散(与 endcap 法线的特殊情况处理有关),需要使用开放式曲线。 NVIDIA OptiX 曲线当前是背面消隐的,因此通过曲线开口端进入的光线将完全错过曲线。开放式曲线是常见的和可取的,而且性能更好。 NVIDIA OptiX 7 . 4 将三次曲线和二次曲线的默认端盖行为更改为开放式。

以前,这些曲线具有扁平闭合的圆盘形端盖,这对于需要仔细控制光线曲线行为或防止光线通过曲线的应用程序有时非常有用。为了节省内存, B 样条曲线和 Catmull Rom 曲线沿连接的线束段共享控制点。

Red and gold fabric, in a pile.
图 3 。使用 Houdini XPU 渲染金色纹理的红色织物。图片提供© 2021 Paul Esteves 。

说到节省内存, NVIDIA OptiX 7 . 4 启用了曲线自适应采样,这在默认情况下既减少了内存又提高了性能。对于拥有数百万条曲线的毛茸茸的生物来说,内存使用是至关重要的。对于最注重性能且内存可用的生物来说,使用构建标志 OPTIX \ u build \ u flag \ u prefere \ u FAST \ u TRACE 可以更快地渲染曲线。自适应采样使用的内存比以前稍微多一些(大约 10% ),以换取渲染性能平均提高 25%-50% ,甚至在我们的一些测试中提高 70% 。

两个主要的去噪功能结合在一起

NVIDIA OptiX 7 . 4 中的去噪器在质量和速度上不断提高。有了这个版本的 NVIDIA OptiX ,开发人员可以结合前面两个主要的去噪功能升级: AOV (或分层)去噪和时间去噪。 AOV 去噪是同时对多个任意渲染层进行去噪的功能,与单独对每个层进行去噪相比, AOV 去噪具有更好的效率。此外,同时对多个层进行去噪可以显著提高质量,因为所有层的去噪滤波器选择保持一致。这意味着,一旦将层重新组合在一起,可以看到较少的去噪伪影。

对单独的层进行去噪会导致为每个层独立选择不同的过滤器,并且会使某些层更容易出现可见的瑕疵。这对于非常稀疏的层尤其如此,例如大部分为空的镜面反射过程。时间去噪是 NVIDIA OptiX 7 . 3 的一项新功能,它可以在动画帧序列中保持帧间去噪的一致性。如果单独对帧进行去噪,它们可能看起来很不错,但是当您对它们进行动画播放时,通常会出现闪烁的瑕疵,因为去噪器会对每个帧进行独立的选择。时间 AOV 去噪在一个包中为您提供了两个功能—在不同层和动画序列中的去噪一致性。

Rendering of pyramid in jungle.
图 4 。城堡般的建筑,周围是一片用奥托辛烷渲染的森林。图片提供© 2021 Koke Nunez 。

随着需求量的增加,规模不断扩大

NVIDIA OptiX 中的 demand loading library 具有缓存逐出功能,用于动态替换缓存的磁贴,以节省更多内存。团队正在寻求需求加载库中的这个新功能的反馈,所以如果你使用它,请通过我们的英伟达论坛here或通过电子邮件来访问,让 Nvidia OpTIX 团队知道它对你的工作有多好。将按需加载库逐出功能带到生产就绪状态,并计划在未来版本的 NVIDIA OptiX 中进行其他改进。

开始

Get the latest version of NVIDIA OptiX >>
View the GTC talk for more information on the features of 7.4 >>
Read more about the latest in ray tracing from NVIDIA >>

 

Tags