怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)

“实时渲染”主要应用于游戏领域,它能够将图形数据实时转化为极具真实感的3D画面,是决定游戏体验的关键因素之一。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(1)

对于实时渲染而言,最大的挑战即是渲染速度。通常来讲,渲染一屏幕的游戏场景的图像,至少要在1/24秒以内,才不至于有“翻PPT”的感觉。

近日,英伟达发表一项最新研究成果将实时渲染速度提升了2-3个数量级。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(2)

而在渲染质量上,它也能够更好地处理复杂样式、比例的图形数据,甚至实时同步环境光照可能形成的阴影。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(3)

Facebook与MIT研究团队在2019年推出的DeepSDF,是现有相关研究的最佳3D 重建模型。

与之相比,无论是在渲染速度,还是质量方面,英伟达的最新研究还要更胜一筹。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(4)

橙色代表DeepSDF渲染效果

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(5)

这项最新研究是一篇名为《神经几何细节水平:隐式3D形状的实时渲染》的论文,它是英伟达联合多伦多大学、麦吉尔大学研究人员共同发表的研究成果,目前已提交至预印论文库arXiv。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(6)

论文中,研究人员表示,他们通过引入了一种高效的神经网络表示方法,首次实现了基于SDF的3D高保真实时渲染,同时达到了最先进的几何重建质量。更重要的是,与其他研究相比,它在渲染速度上提升了2-3个数量级。

SVO编码,渲染速度翻倍

SDF,即符号距离函数Signed Distance Function,是计算机图形学中一种有效的表示方法。

在现有研究中,通常是采用一个较大、具有固定尺寸的多层感知器(MLP)对SDF进行编码,以近似代表具有隐式曲面的复杂图形。然而,使用大型网络进行实时渲染导致了昂贵的计算成本,因为它需要让每个像素通过网络地进行向前传递。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(7)

基于此,研究团队提出了改用稀疏体素八叉树(SVO)来对几何形状进行编码的方法,它可以自适应地缩放不同的离散细节层次LOD( Level of Detail ),并重建高度细节的几何结构。

如图,该方法在不同尺寸的几何体之间平滑地插值,并占用合理内存进行实时渲染。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(8)

研究人员介绍,与现有研究一样,他们同样使用了一个小型MLP来实现球体跟踪。并且受到经典曲面提取机制的启发,使用了存储距离值的正交和空间数据结构对欧几里德空间进行精细离散化,以使简单的线性基函数可以重建几何体。

在这些工作中,分辨率或树深度决定了LOD(不同的LOD可以与SDF插值进行混合)。对此,研究人员使用了稀疏体素八叉树(SVO)来离散空间,并存储学习的特征向量,而不是符号距离值。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(9)

这样做的好处是,它允许向量可以通过浅层MLP解码成标量距离,在继承经典方法(如LOD)优点的同时,能够进一步缩短树深度。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(10)

在此基础上,研究人员还开发了一种针对该体系结构的光线遍历算法( Rray Traversal Algorithm),实现了比DeepSDF快100倍的渲染速度。另外,虽然无法与神经体积绘制方法进行直接比较,但在类似的实验环境中,其帧速度也要比NeRF快500倍,比NSVF快50倍。

实验测试,渲染质量更精细

在质量上,研究人员将该方法与DeepSDF、FFN、SIREN以及Neural Implicits(NI)四种算法进行了比较,它们在过度拟合3D几何形状方面均达到了现有研究的最佳性能。

以下为不同算法在ShapeNet、Thingi10K和TurboSquid三个数据集上进行3D重建的比较结果。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(11)

可以看到,从LOD3开始该方法表现出了更好的性能。在第三个LOD中,不仅存储参数最小,而且推理参数在所有分辨率上都固定为4737个浮点值,与FFN相比减少了99%,与Neural Implicits相比减少了37%。

更重要的是,在低存储和推理参数的情况下,该方法表现出了更好的重建质量。如下图:

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(12)

与NI、FFN相比,该方法能够更加精准地渲染出图像的细节,而且速度比FFN快50倍。

另外,在渲染质量上,研究人员还将该方法在Shadertoy的两个特殊案例中进行了测试:Oldcar,它包含了一个高度非度量的有符号距离场;Mandelbulb,是一个只能用隐式曲面表示的递归分形结构。

这两种SDF都是由数学表达式定义的,他们从中提取并采样距离值,测试结果如下:

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(13)

相比之下,只有该方法的架构才能准确地捕捉复杂示例的高频细节。可以看出,FFN和SIREN呈现的效果非常不理想,其原因可能是因为它们都只能拟合平滑距离场,无法处理不连续性和递归结构,以至于在渲染时很难突出显示几何细节。

总之,通过引入隐式3D图形的表示形式LOD,该方法可以达到最先进的几何重建质量,同时允许更小占用内存下的实时渲染。不过,研究人员也坦言,该方法在大场景、或者非常薄、无体积的的物体上并不适用,这将是未来的一个研究方向。

但从当下来看,该方法代表了基于神经隐函数几何学的一个重大进步,因为它是第一个基于SDF实现实时渲染和呈现的表示形式,未来有望应用到场景重建、机器人路径规划、交互式内容创建等多个现实场景中。

相关作者

论文的一作是来自多伦多大学的计算机博士Towaki Takikawa。他曾在的英伟达的 超大规模图形处理研究(Hyperscale Graphics Research)小组工作。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(14)

主要研究方向集中在计算机视觉和计算机图形学,对探索机器学习驱动3D几何处理算法非常感兴趣。另外在机器人相关项目的软硬件方面也有一定的经验。

另外参与本次研究的还有Joey Litalien、Kangxue Yin、Karsten Kreis1、Charles Loop、Derek Nowrouzezahrai、Alec Jacobson、Morgan McGuire、Sanja Fidler等八位学者。

其中Kangxue Yin是一位华人学者,他曾在中国科学院深圳先进技术研究院(SIAT)工作3年,之后考入西蒙弗雷泽大学(Simon Fraser University)大学并取得了博士学位。

怎么通过调nvidia避免掉帧(NVIDIA首次实现SDF实时渲染)(15)

现在是NVIDIA的研究科学家,致力于计算机图形学和计算机视觉研究。

引用链接:

https://nv-tlabs.github.io/nglod/

https://nv-tlabs.github.io/nglod/assets/nglod.pdf

https://arxiv.org/abs/2101.10994

https://github.com/nv-tlabs/nglod

雷锋网雷锋网雷锋网

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页