面向三维流管可视化的各向异性屏幕空间环境光遮蔽算法
2024-10-14王安澜李方钏张严辞
摘 要:屏幕空间环境光遮蔽(AO)算法是一种流行的全局光照技术,此类技术可用于辅助复杂3D流管场景的可视化,以便于更好地理解场景分布特点。对此提出一种屏幕空间各向异性AO方法来实现复杂三维流管场景可视化。其基本思想是利用三维流管的特性设计两个各向异性滤波器,来指导计算流管场景AO时的屏幕空间采样和空间复用步骤。具体而言,这种策略通过各向异性地生成垂直于流管方向的采样点计算AO。该策略可以减少算法在获取满意渲染结果时所需的样本数量。同时为了进一步提高算法性能,提出对邻近像素的AO计算结果进行沿流管方向各向异性空间复用。实验结果表明,该算法在渲染质量和性能上均优于现有的屏幕空间AO算法方案。
关键词:流管可视化; 环境光遮蔽; 各向异性; 全局光照; 屏幕空间
中图分类号:TP391 文献标志码:A
文章编号:1001-3695(2024)10-041-3166-07
doi:10.19734/j.issn.1001-3695.2024.01.0012
Anisotropic screen-space ambient occlusion algorithm for 3Dstreamtubes visualization
Wang Anlan, Li Fangchuan, Zhang Yanci
(College of Computer Science, Sichuan University, Chengdu 610065, China)
Abstract:Screen-space ambient occlusion(AO) is a popular global illumination technique which can be used to achieve a better understanding of complex 3D streamtubes scenes. This paper proposed an anisotropic screen-space AO method to visua-lize complex 3D streamtubes. The basic idea is to utilize the characteristics of 3D streamtubes to design two anisotropic filters to guide screen-space sampling as well as spatial reusing. More specifically, this paper proposed to anisotropically generate samples perpendicular to the direction of streamtube to calculate AO. This mechanism can reduce the number of samples required to generate satisfactory results. In order to further improve the performance of the algorithm, this paper proposed to anisotropically reuse AO results from nearby pixels along the streamtube direction. The experimental results indicate that the proposed algorithm outperforms the existing solutions both in rendering quality and performance.
Key words:streamtubes visualization; ambient occlusion(AO); anisotropic; global illumination; screen-space methods
0 引言
流管是最常见的流场可视化方法之一[1~3],用于辅助对流场特性的快速理解。由于流场性质的复杂性,通常流场在经过流管可视化后得到的场景,会表现出极其复杂的空间堆叠情况,难以直接用于观察理解。环境光遮蔽(ambient occlusion,AO)算法已被证明是一种有效提高流管场景可视化效果的方法。例如,Eichelbaum等人[4]提出了一种实时AO方法用于高质量的流管数据渲染用于辅助理解流管场景的几何空间结构。Groβ等人[5]设计了一种基于GPU的光线投射AO方法以更好地理解复杂的流管数据。李家振等人[6]提出了一种动态低采样AO的实时光线追踪分子渲染方法,有助于研究人员观察生物分子结构。
然而,由于流管场景空间中的流管互相堆叠、彼此遮挡严重,在对场景计算AO值生成遮挡效果时,如何在渲染质量和渲染性能之间取得良好的平衡,仍是一个具有挑战性的问题。
在现有的屏幕空间AO算法中,基于水平角的AO方法[7,8]沿指定方向对深度缓冲进行采样,以找到水平角度下的最大水平角,并根据此角度近似计算当前像素AO的值。这种计算方式虽然可以大幅提高渲染的效率,但仅使用单个可见表面深度来理解周围空间的遮挡情况,会在AO计算上引入较大的误差。随机深度环境光遮蔽算法(SDAO)[9]则在深度图以外,随机记录场景的多层深度数据。这样的方式可以缩小基于水平角AO方法的计算误差,但在获得更好渲染质量的同时,在复杂流管场景中所需采样点数量过多,可能会导致性能的损失。
针对上述问题,本文提出一种针对流管场景的屏幕空间各向异性AO算法。该方法基于两个流管场景的重要事实:a)由于流管不会发生自相交,当前流管的大部分遮挡来源于其他流管;b)同一根流管上的临近像素具有相似的遮挡关系。基于这两个事实,提出了以下两个各向异性滤波器,来分别指导采样和AO空间复用过程。第一个滤波器设计用于减少无效采样点的数量,从而使本文方法在相同的采样点数量下取得比其他AO方法更好的渲染结果;第二个滤波器实现了更适合流管场景的AO结果空间复用策略,在流管场景中可以取得良好的降噪效果。
1 相关工作
在三维场景可视化领域,全局光照技术是一种常用可视化方法[4,5,10]。然而,目前很少有相关方法能够用于高质量流管可视化的实现,尤其是在实时可视化领域。
1)全局光照中的光线追踪算法
Gumhold[11]提出了一种基于GPU的高效椭球光线投射方法,该方法通过使用图形处理单元(GPU)来加速椭球光线的计算和投射。类似地,Klein等人[12]使用离散粒子模式来实现高质量的流管可视化。该方法通过将光线投射与离散化粒子模拟相结合,实现了高效的可视化效果。Petrovic等人[13]在片段着色器中进行光线相交测试,以精确渲染管道交叉点。该方法通过在片段着色器中进行光线相交测试,可以准确地确定光线与管道交叉的位置,从而实现更真实的渲染效果。文献[14,15]进行了独立的研究,提出了一种用于圆柱体的高效四边形广告牌方法。该方法利用光线投射来实现工业结构的高质量可视化结果。通过将圆柱体表面分割为四边形广告牌,并使用光线投射来计算广告牌的可见性,能够实现高效且逼真的渲染效果。Kanzler等人[16]提出了一种基于GPU的优化光线追踪方法渲染管线。该方法通过将线段的位置离散化到体素边界上,并将线数据编码到体素网格中,实现了对管道的高效渲染。这个体素网格可以加速光线追踪过程,并生成密度表示,从而实现可扩展的渲染效果,包括环境遮挡和软阴影效果的实现。郭雨潇等人[17]提出了一种基于卷积神经网络的实时AO降噪算法,能对环境光遮蔽的去噪问题进行准确的处理,并对卷积网络的改进在保持精度的条件下显著提升性能。
2)屏幕空间的环境光遮蔽算法
与物理准确的光线追踪方法相比,图形学中的近似方法具有更高的性能,可以实时操作。这些方法通过简化计算过程,以牺牲一些物理准确性为代价,从而实现了更高的计算效率。Luft等人[18]提出了一种通过对深度缓冲进行非锐化遮蔽来增强图像的方法。尽管该方法并不能提供真实的环境光遮蔽效果,但它在增强空间感知方面具有显著的效果。这种方法的出现影响了一系列技术的发展,统称为屏幕空间环境光遮蔽(screen space ambient occlusion,SSAO)。文献[19]采用了非锐化掩蔽和深度缓冲的稀疏采样,以获取场景中各点的可见性。该方法的计算依赖于屏幕空间数据,通过对深度缓冲的处理,实现了一定程度上的环境光遮蔽效果。基于地平线的环境光遮蔽(horizon-based ambient occlusion,HBAO)[7]是在几个方向上对深度缓冲进行采样,以计算出假设所有方向都被遮蔽的地平线角度。随后,该方法进行了扩展以改善处理薄遮挡物时的近似效果[8]。另一些方法通过深度剥离[20]或A缓冲[21,22]构建技术生成并保留从主摄像机视点的所有深度层次列表。这样,所有层次都被记录下来,并使用提供最大遮蔽效果的层次。为了提高传统屏幕空间近似方法的准确性和空间稳定性,随机深度环境光遮蔽(stochastic-depth ambient occlusion,SDAO)[9]引入了随机深度图来有效收集深度缓冲中缺失的信息。通过这种方式,SDAO能够提高环境光遮蔽的准确性,并保持空间上的稳定性。郭雨潇等人[23]还提出了单帧图像下的神经网络屏幕空间AO估计算法,该端到端的算法能直接从自然光照条件下场景的单张图像中恢复每个点的AO结果。
3)可视化中的其他全局光照方法
Ruiz等人[24]使用遮挡(obscurance)概念来实现逼真的体积渲染。文献[25,26]致力于为直接体绘制引入动态光照效果。该方法考虑了光照的变化,使得绘制的体积对象能够根据光照条件的改变而产生动态的效果。这种动态光照的引入使得绘制的结果更加逼真和更具生动感。此外,Wyman等人[27]提出了一种基于预先计算的辐射传递全局光照方法,用于交互式等值面绘制。该方法通过预先计算光照的辐射传递,并将其应用于等值面的绘制过程中,实现了全局光照的效果。这种方法使得等值面的绘制能够呈现出更加真实的光照和阴影效果,提高了可视化结果的质量。Melek等人[28]利用环境天窗和阴影来强调纤维显微镜图像中的结构。通过在渲染过程中引入环境光和阴影效果,能够突出显示纤维显微镜图像中的细微结构,使得观察者能够更好地理解和分析图像中的细节。
2 问题分析与算法概述
屏幕空间AO算法[7~9,20]通常采用两种策略来提高其性能。第一种策略以减少计算AO值时的采样纹理查找操作开销为目的,尽可能减少采样点数量。然而,这种策略可能会在最终的渲染结果中引入噪声。第二种策略通过有效地复用相邻空间像素的AO值,以减少噪声带来的走样问题。然而,更充分地获取到场景的信息有利于屏幕空间AO算法对周围空间遮挡情况的理解,可以有效改善上述两种策略的性能。例如,在使用采样深度图之外,可以使用深度剥离方法[20]或随机深度图[9]来辅助理解场景的空间关系。
但是,现有的屏幕空间AO算法都没有充分利用流管场景自身的特点来进行有针对性的改进。这些特点包括:
a)三维流管是具有几何连续性且不会自相交的曲线。这一事实表明,在采样计算流管s上qa点的AO值时,有效的遮挡信息应该来自于分布在附近的其他流管。如图1(a)所示,均匀采样可能会获取无效的采样信息,比如位于与pa相同的流管s上的q1和q2。图中,有效和无效样本分别以绿色和红色着色(参见电子版中的图)。图(a)均匀采样8个样本,获得3个有效样本,图(b)为本文的AS策略采样6个样本,获得5个有效样本。
b)位于同一根流管上的两个相邻像素,具有相似的遮挡关系。这表明,满足此类条件的相邻像素具有相似的AO值。如图2所示,对于pa来说,位于同一根流管上的临近点pb应该比临近点pc具有更高AO结果的相似度,即使pc在屏幕空间距离上更接近pa。
这些特点对于计算流管场景中的AO值计算性能提升有重要意义,但是已有的屏幕空间AO算法却没有充分利用它们。本文方法旨在充分利用这些特点,并根据此设计新的策略和算法,以更加准确和高效地计算流管场景的环境光遮蔽信息。
基于上述发现,本文提出以下两种各向异性滤波器,以充分利用流管场景的特点,来提高AO算法的计算性能:
a)基于流管场景很少出现自遮挡的特性,本文提出了一种各向异性采样(AS)策略,以减少无效采样点的数量。如图1(b)所示,本文使用椭圆形采样模式为像素pa生成样本,并将此采样椭圆模式的短轴与s1的流管方向对齐。
b)为了提高从附近像素复用环境遮挡值的效率,本文提出了一种名为各向异性空间复用(ASR)的策略。如图2所示,当为位于流管s1上的pa复用临近像素的AO值时,本文定义一个椭圆形邻域,其长轴与s1流管方向对齐。只有位于该邻域内且位于s1上的像素参与pa的AO复用过程。
3 方法
3.1 算法流程
如图3所示,本文算法可以分为三个阶段,且所有的阶段都是在GPU上实时执行。
a)特征提取阶段。S-1阶段生成深度图depth map(Do),并以SDAO算法同样的方式生成随机多层采样深度图stochastic depth map(Ds)。为了准确地提取流管场景的特征,本文同时在一个名为流管顶点图streamtube V-buffer map(V)的缓冲区中,记录了流管的ID信息Sp,以及流管投影在屏幕空间上的横截面半径尺寸Rs。另一个名为流场方向图vector field direction map(F)的缓冲区,则是用于记录当前场景中每个像素点上的流管方向。
b)采样阶段。S-2 阶段根据F为每一个像素点计算好适宜的采样方向。接下来的 S-3 阶段根据上一阶段计算好的采样方向各向异性地对Do和Ds采样以计算AO值,并将计算结果写入遮挡值中间结果图intermediate occlusion map(Oi)。
c)空间复用阶段。S-4 阶段对每一个像素计算其复用范围内对应像素的适宜复用权重。通过将V提供的信息应用到复用阶段,S-5 阶段在各向异性空间复用策略的指导下判断复用像素的有效性,计算出当前像素在复用范围内的加权平均AO值,并将其写入AO结果图AO result map(Or)中。
3.2 采样
本文使用基于水平角的环境光遮蔽(horizon-based ambient occlusion)算法[8,9]的思想,来计算给定表面上点P处的AO结果:
AO=1-12π∫πθ=π(sin(h(θ))-sin(t(θ)))A(θ)dθ(1)
其中:θ是和观察方向对齐的以球坐标系为极坐标系的方位角;h(θ)是带符号的水平角;t(θ)是带符号的表面切向量仰角。
线性衰减函数A(θ)=max(0,1-r(θ)/Rp),其中r(θ)是点P和当前采样点在采样方向上的水平距离;Rp为影响半径,即当前像素的采样半径。
对于每个像素p,本文使用与SDAO算法相同的方式,通过蒙特卡罗方法生成采样点,来采样Do和Ds并对式(1)进行积分,将最终计算得到的结果作为AO值,记录在Oi(p)中。通常需要大量的采样点,才能精确地计算蒙特卡罗积分的近似值,这是造成AO算法性能瓶颈的主要原因。在确保渲染质量的同时,减少样本数量对于提升算法性能非常关键。
为了实现这一目标,本文提出了一种采样方向评估算法,将均匀采样方向修改为各向异性方向。本文定义了一个椭圆形采样模式区域,使此椭圆长轴与当前像素所在位置的流场方向F(p)垂直,以在长轴附近生成更多的采样点。
本文更进一步发现,随着Rs的增加,屏幕上被流管占据的像素数量也随之增加。因此,为了减少无效采样点的数量,采样方向应更多地集中在长轴上。这意味着在这样的情况下,本文需要提高采样区域椭圆的离心率。
基于上述分析,本文可以根据如下的计算方式调整椭圆的离心率e1,来为采样区域生成合适的采样模式:
e1(p)=c1Rs(p)(2)
其中:像素p对应的Rs值从图V中采样得到;c1是为了提高采样效率而设置的常数。本文将离心率e(p)限制在0~1内,以确保数学上的正确性。
3.3 复用
为了有效地复用携带遮挡信息的采样点,来获得更好的蒙特卡罗估计值,本文注意到临近的像素通常具有相似的空间分布关系,这意味着它们可能具有类似的遮挡情况。本文可以通过双边滤波器[29],来对给定的Oi计算一个更准确的Or,具体如下所示。
Or(p)=1n∑npi∈ΩOi(pi)Sr(Oi(pi)-Oi(p))GS(pi-p)(3)
其中:pi是在当前像素p周围4×4正方形滤波核Ω内的临近点像素;Sr为相似性函数;Gs是屏幕空间距离相关的衰减函数。
如图4(a)所示,本文发现通过简单的双边滤波方法处理Or会导致边缘模糊,这是由于未考虑复用像素所在的流管空间关系差异。为了解决此问题,本文进一步引入了一个权重函数W来考虑临近像素之间的空间分布相似性:
Or(p)=1n∑npi∈ΩW(p,pi)Oi(pi)Sr(Oi(pi)-Oi(p))Gs(pi-p)(4)
其中:W(p,pi)可以定义为
W(p,pi)=1 if Sp(p)=Sp(pi)0otherwise(5)
相似性结果Sp通过对图V采样得到。
为了在此阶段更多地复用同一根流管s上的临近点像素,本文将正方形滤波核Ω替换为各向异性的椭圆滤波核Ω^,其中此滤波核的椭圆长轴与当前像素所在位置的流场方向F(p)对齐。定义当前滤波核椭圆模式离心率的基本思想是:随着Rs的减少,被复用的像素应当更多的集中在长轴上。离心率e2的表达式为
e2(p)=c2Rs(p)(6)
建议将常数c2取值0.5~0.8, 同时,本文把e2(p)的值限制在0~1内。本文发现在大多数情况下,16个采样点大小的滤波核Ω^可以获得很好的效果。
如图4(b)所示,使用固定权重的重复使用方法充分利用了附近像素中的复用样本,可以有效避免边界模糊。但同时本文也注意到,即使附近的像素与p在同一根流管上,它们之间的遮挡情况仍可能存在较大差异。
为了解决此问题以获得更可靠的复用结果,本文进一步考虑流管的特性:空间分布更接近于当前像素流场投影方向的临近像素点,具有与当前像素更高的遮挡相似程度。因此,本文提出了一种流场方向引导的加权方法,用一个新的各向异性权重函数来取代W。
基本思想是:具有更一致方向的附近像素应该被赋予更高的权重。各向异性权重函数表示为
W(p,pi)=
dot(np,npi)dot(F(p),F(pi)) if Sp(p)=Sp(pi)0otherwise(7)
其中:n为当前像素点p所处位置对应顶点的世界空间法线向量,当前像素p的流场方向从图F中采样获得。
4 实验结果与分析
本文的屏幕空间各向异性AO算法部署在PC端,使用的GPU为NVIDIA GeForce RTX 3070,使用的CPU为AMD Ryzen7 5800X CPU,以及16 GB大小的内存进行实验。
为了保证实验的公平性,本章节实验的所有结果都在以上环境按1920×1080的分辨率渲染。在本实验中一共使用了五种空间复杂度不同的流管场景来进行测试,分别是Steady Vortex[30]流管场景、Taylor-Green Vortex[31]流管场景、ABC Flow[32]流管场景,以及记录烟雾数据的Smoke Plume[33]流管场景、分析风场数据的Tornado[34]流管场景、观测洋流数据的Isotropic Forced Turbulence流管场景[35]。
4.1 环境光遮蔽渲染质量
第一个实验是为了比较本文屏幕空间各向异性AO算法与其他主流屏幕空间AO算法在渲染质量上的整体差异。本文在五个不同的场景中分别使用16个采样点的本文算法、16个采样点的SDAO算法,以及256个采样点的SDAO算法进行AO计算,并得出最后的渲染结果。同时,为了充分对比本文算法与其他屏幕空间算法的渲染质量差异,本文还将16个采样点的HBAO算法以及16个采样点的HBAO+算法[8],在同样的五个场景中进行了计算,并给出最终的渲染结果。为了便于观察以及评判渲染质量的高低,本文使用1 024个采样点的SDAO算法的计算结果作为Ground Truth参考项。
根据图5中展示的上述四种算法在不同流管场景中的渲染结果,本文可以发现以下这些事实:
a)HBAO算法以及HBAO+算法都不能给出一个令人满意的渲染结果,因为这两种算法都只使用了单层深度图的信息来进行AO结果的计算。对于实验所使用的复杂的流管场景,数量不高的采样点以及单层深度图能提供的场景信息,不足以帮助算法理解场景中的遮挡关系,从而导致了渲染质量的低下,同时还存在AO计算错误的情况。
b)SDAO算法在16个采样点的情况下同样存在大量噪声。其主要原因在于,SDAO算法会在当前像素的同一根流管上进行采样。在采样点数量较低且场景复杂的情况下,SDAO算法在对遮挡没有贡献的无效区域耗费了大量的采样点。采样点的不充分利用导致了大量噪声情况的产生。
c)当使用同样数目的采样点时(如本实验使用的16个采样点数目),本文算法在同等采样点数目下的渲染结果比其余算法表现更好。这是因为本文算法充分利用了流管场景的空间分布特性,降低了无效采样点的数量。对于复杂的流管场景,空间结构在较小范围内也可能发生剧烈变化,通常需要更多数量的采样点来充分获取信息,但是为了维持一个可接受的效率,只能将采样点数量控制在一个较小的数值。因为采样信息的不足,当前像素在采样点数量不足的情况下,会对遮挡情况作出错误的判断,并且计算出错误的环境光遮蔽值,从而在最终的渲染结果中引入大量的噪声。而本文算法对空间信息的充分利用提高了采样点的有效性,从而可以使用同等数目的采样点获得一个更好的采样结果。
d)在使用较少数量采样点的情况下,本文算法使用16个采样点获得的渲染质量,SDAO算法需要花费至少256个采样点才能够达到同等渲染质量。同时在本文各向异性空间复用滤波器的指导下,使用针对流管场景设计的高效降噪算法进一步提升渲染质量,从而使本文的屏幕空间各向异性AO算法在较少采样点下,获得一个令人满意的渲染质量。
4.2 环境光遮蔽渲染效率
第二个实验是用于展示本文屏幕空间各向异性AO算法,相较于SDAO算法的性能优势。本文分别记录了在五个空间复杂度不同的流管场景中,本文算法在16个采样点下使用均匀采样(US)以及各向异性采样(AS),并使用各向异性空间复用(ASR)的时间开销,以及SDAO算法在16个采样点、256个采样点、1 024个采样点数量下的时间开销(单位为ms)。根据表1中的数据,可以发现如下结论:
a)在流管场景中,使用本文提出的各向异性采样策略进行采样,可以获得比普通均匀采样更高的效率。由于使用本文各向异性采样策略的采样方法,在采样过程中会获得更少的无效采样信息,更快速地采样到有效的遮挡信息,可以避免后续大量的无效遮挡计算。从而可以使效率在一定程度上得到提升。
b)在同样使用16个采样点时,本文的屏幕空间各向异性算法(包括各向异性采样滤波器指导的采样阶段,以及各向异性复用滤波器指导的空间复用阶段)的整体效率会略低于SDAO算法。因为后续针对流管场景的降噪方案会带来额外的时间开销。但是,就如图5中所展示的一样,由于降噪阶段对结果的有效处理,本文算法可以在获得比256个采样点的SDAO算法更高的渲染质量的同时,获得比SDAO算法更高的渲染效率。
4.3 各向异性采样算法有效性
第三个实验是用于证明本文的各向异性采样策略在各向异性滤波器的指导下,可以降低无效采样点的数量。本文分别使用均匀采样的本文算法、各向异性采样的本文算法,
来计算同一场景的AO结果,并调整采样点数量使它们都可以获得同等令人满意的渲染质量,并分别记录两种方式所需要的采样点数量。
如图6所示,其中蓝到红表示在采样阶段所需样本数量从低到高的变化。与均匀采样的方式相比,本文的各向异性采样方法在获得同等令人满意的渲染结果时,需要较少的采样数量。这表明本文方法在各向异性采样滤波器的指导下成功地减少了无效采样的数量。尤其在具有复杂空间遮挡关系但分布又存在明显规律的区域(在图6(a)中表现为红色的部分),采用本文针对流管的各向异性采样策略,能够在采样这类区域时,更显著地降低无效采样点的数量。
4.4 各向异性空间复用算法有效性
第四个实验是用于证明本文的各向异性空间复用算法在各向异性复用滤波器的指导下,可以有效解决噪声带来的走样问题,同时保持对流管场景几何结构边缘的清晰表达。本文分别使用高斯滤波算法、双边滤波算法,以及本文各向异性空间复用策略的降噪算法,来对相同的流管场景采样结果进行降噪处理,如图7所示。
图7(b)展示了使用高斯滤波对图7(a)进行处理获得的降噪结果。从细节图中可以注意到,虽然噪声情况得到了有效处理,但是同时流管的边缘也变得模糊,无法展示清晰的空间结构。这是因为当获得一个平滑的降噪结果时,所需要的滤波大小超过了流管在屏幕空间上的占比大小,从而导致高斯滤波算法在对当前像素进行处理时,过多地将周围不同流管的采样结果纳入了考虑。只有对与当前像素遮挡关系相似的周围像素采样结果进行复用时,才可以获得有效的空间复用结果。
如图7(c)所示,双边滤波方法虽然可以一定程度上保持边缘处的边界清晰度,但是仅从采样结果的相似程度来判断边界,对于像流管这样的空间结构复杂的场景,滤波结果仍然存在较大的误差。
如图7(d)所示,本文使用的各向异性复用策略更多地理解了流管场景的空间结构,利用流管分布情况,提高对当前像素与周围像素遮挡关系相似度判断的准确性。在判断后,只将复用范围内高相似度的有效相似采样结果进行复用,从而获得噪声平滑且空间结构清晰的空间复用结果。
4.5 本文算法性能分析
最后一个实验旨在分析本文方法中每个阶段的具体性能表现。表2展示了本文算法中各个阶段的时间开销,主要包括各向异性采样(AS)阶段,以及各向异性空间复用阶段(ASR)。
各向异性采样阶段的时间开销主要来自对随机深度图进行采样。尽管在各向异性采样滤波器的指导下可以减少无效采样点的数量,但根据足够的采样信息计算AO结果,仍然是不可避免的开销。各向异性空间复用阶段的成本,主要来源于搜索附近像素的AO结果所导致的频繁的内存读取。
由于本文算法的两个阶段执行的都是屏幕空间算法,各向异性采样阶段和各向异性空间复用阶段的时间开销,主要受到流管场景占据的屏幕像素数量影响。在ABC Flow场景中,即使流管场景几乎占据整个屏幕,本文算法在渲染性能和渲染质量方面仍然优于使用256个采样的SDAO算法。这说明本文算法在处理复杂的流管场景时,能够在保证渲染质量的情况下适应高屏幕像素占用率的场景,同时具有出色的性能表现。
5 结束语
本文提出了一种各向异性屏幕空间环境光遮蔽算法,主要针对复杂的三维流管场景的可视化处理。为了减少屏幕空间遮蔽算法在获得一个满意的渲染质量时所需要的采样点数量,本文针对三维流管的生长特性提出了一种各向异性采样方式。同时,为了进一步提高算法在效率上的表现,本文还根据三维流管的空间分布特性,提出对临近点像素的环境光遮蔽结果进行各向异性空间复用。
本文算法中主要涉及到的关键参数为采样方向数量与空间复用算法高斯核大小。在采样点总数量一定的情况下,本文建议尽可能多地选取采样方向,以充分发挥算法的各向异性采样特性。如果条件允许,本文推荐设置采样方向在4个及以上。本文不建议在空间复用阶段使用过大的高斯核大小,选取较大的高斯核虽然对于平滑噪声有着更好的作用,但由于纳入了过多重复且无效的计算判断,会在一定程度上影响各向异性空间复用算法的效率。根据实验部分的数据,本文推荐高斯核大小选取在16左右,从而可以在获得一个较高渲染质量的前提下保持一个较好的渲染效率。
本文算法和其他屏幕空间水平角环境光遮蔽算法相同,为了避免产生带状噪声走样,在对每一个像素进行采样的过程中,对每一个采样点都在采样步长上进行了轻微的抖动处理。由于此处使用抖动方式对随机数的引入,导致算法的渲染结果在动态场景中可能会出现轻微的闪烁走样。目前本文使用的解决方法是,在后处理阶段引入类似于文献[36]的时间相关的反走样处理。在本文展示的效果中,此类方法有效地减缓了此类走样所带来的影响。但是,这并不是一个可以从根源上消除走样产生的方式。对此,本文认为更为合理的解决方法是在进行空间复用的同时考虑时间相关的滤波处理。本文会在后续的工作中将这一点纳入ASR策略的改进中。
同时,本文会继续研究与AS策略共同作用的自适应采样步长,来进一步减少所需的采样点数量。为了更合理地制定自适应采样步长策略,本文在未来将致力于引入更多流管场景的特点,从而在合理的位置放置采样点。
参考文献:
[1]Li Liya, Hsieh H H, Shen Hanwei. Illustrative streamline placement and visualization[C]//Proc of IEEE Pacific Visualization Sympo-sium. Piscataway,NJ:IEEE Press, 2008: 79-86.
[2]Li Liya, Shen Hanwei. Image-based streamline generation and rendering[J]. IEEE Trans on Visualization and Computer Graphics, 2007, 13(3): 630-640.
[3]Penney D, Chen Jia, Laidlaw D H. Effects of illumination, texture, and motion on task performance in 3D tensor-field streamtube visuali-zations[C]//Proc of IEEE Pacific Visualization Symposium. Piscata-way,NJ:IEEE Press, 2012: 97-104.
[4]Eichelbaum S, Hlawitschka M, Scheuermann G. LineAO—improved three-dimensional line rendering[J]. IEEE Trans on Visualization and Computer Graphics, 2012,19(3): 433-445.
[5]Groβ D, Gumhold S. Advanced rendering of line data with ambient occlusion and transparency[J]. IEEE Trans on Visualization and Computer Graphics, 2020, 27(2): 614-624.
[6]李家振, 纪庆革. 动态低采样环境光遮蔽的实时光线追踪分子渲染[J]. 计算机科学, 2022, 49(1): 175-180. (Li Jiazhen, Ji Qingge. Dynamic low-sampling ambient occlusion real-time ray tracing for molecular rendering[J]. Computer Science, 2022, 49(1): 175-180.)
[7]Bavoil L, Sainz M, Dimitrov R. Image-space horizon-based ambient occlusion[C]//Proc of ACM SIGGRAPH. New York: ACM Press, 2008.
[8]Tatarinov A, Panteleev A. Advanced ambient occlusion methods for modern games[R]. 2016.
[9]Vermeer J, Scandolo L, Eisemann E. Stochastic-depth ambient occ-lusion[C]//Proc of ACM on Computer Graphics and Interactive Techniques. New York:ACM Press, 2021: 1-15.
[10]McGraw T. High-quality real-time raycasting and raytracing of streamtubes with sparse voxel octrees[C]//Proc of IEEE Visualization Conference. Piscataway,NJ:IEEE Press, 2020: 21-25.
[11]Gumhold S. Splatting illuminated ellipsoids with depth correction[C]//Proc of VMV. 2003: 245-252.
[12]Klein T, Ertl T. Illustrating magnetic field lines using a discrete particle model[C]//Proc of VMV. 2004: 387-394.
[13]Petrovic V, Fallon J, Kuester F. Visualizing whole-brain DTI tracto-graphy with GPU-based tuboids and LoD management[J]. IEEE Trans on Visualization and Computer Graphics, 2007, 13(6): 1488-1495.
[14]Wu Zhaocong, Wang Nan, Shao Jie, et al. GPU ray casting method for visualizing 3D pipelines in a virtual globe[J]. International Journal of Digital Earth, 2019, 12(4): 428-441.
[15]De Toledo R, Lévy B. Visualization of industrial structures with implicit GPU primitives[C]//Proc of International Symposium on Visual Computing. Berlin: Springer, 2008: 139-150.
[16]Kanzler M, Rautenhaus M, Westermann R. A voxel-based rendering pipeline for large 3D line sets[J]. IEEE Trans on Visualization and Computer Graphics, 2018, 25(7): 2378-2391.
[17]郭雨潇, 陈雷霆. 基于卷积神经网络的实时环境光遮蔽计算[J]. 计算机应用研究, 2019, 36(6):1883-1886,1896. (Guo Yuxiao, Chen Leiting. Convolution neural network based real-time ambient occlusion computing[J]. Application Research of Computers, 2019, 36(6):1883-1886,1896.)
[18]Luft T, Colditz C, Deussen O. Image enhancement by unsharp mas-king the depth buffer[J]. ACM Trans on Graphics, 2006, 25(3): 1206-1213.
[19]Mittring M. Finding next gen: CryEngine 2[C]//Proc of ACM SIGGRAPH. New York:ACM Press,2007: 97-121.
[20]Bavoil L, Sainz M. Multi-layer dual-resolution screen-space ambient occlusion[C]//Proc of ACM SIGGRAPH. New York: ACM Press, 2009.
[21]Carpenter L. The A-buffer, an antialiased hidden surface method[C]//Proc of the 11th Annual Conference on Computer Graphics and Interactive Techniques. 1984: 103-108.
[22]Yang J C, Hensley J, Grün H, et al. Real-time concurrent linked list construction on the GPU[C]//Proc of Computer Graphics Forum. Oxford, UK: Blackwell Publishing Ltd., 2010: 1297-1304.
[23]郭雨潇, 陈雷霆, 董悦. 单帧图像下的环境光遮蔽估计[J]. 计算机研究与发展, 2019, 56(2): 385-393. (Guo Yuxiao, Chen Leiting, Dong Yue. Inferring ambient occlusion from a single image[J]. Journal of Computer Research and Development, 2019, 56(2): 385-393.)
[24]Ruiz M, Boada I, Viola I, et al. Obscurance-based volume rendering framework[C]//Proc of IEEE/EG Symposium on Volume and Point-Based Graphics. Piscataway,NJ:IEEE Press, 2008.
[25]Kronander J, Jonsson D, Low J, et al. Efficient visibility encoding for dynamic illumination in direct volume rendering[J]. IEEE Trans on Visualization and Computer Graphics, 2011, 18(3): 447-462.
[26]oltészová V, Patel D, Bruckner S, et al. A multidirectional occlusion shading model for direct volume rendering[C]//Proc of Compu-ter Graphics Forum. Oxford, UK: Blackwell Publishing Ltd,2010: 883-891.
[27]Wyman C, Parker S, Shirley P, et al. Interactive display of isosurfa-ces with global illumination[J]. IEEE Trans on Visualization and Computer Graphics, 2006, 12(2): 186-196.
[28]Melek Z, Mayerich D, Yuksel C, et al. Visualization of fibrous and thread-like data[J]. IEEE Trans on Visualization and Computer Graphics, 2006, 12(5): 1165-1172.
[29]Paris S, Kornprobst P, Tumblin J, et al. Bilateral filtering: theory and applications[J]. Foundations and Trends in Computer Graphics and Vision, 2009, 4(1): 1-73.
[30]Kamchatnov A. Topological solitons in magnetohydrodynamics[J]. Soviet Physics Uspekhi, 1982, 82: 117-124.
[31]Antuono M. Tri-periodic fully three-dimensional analytic solutions for the Navier-Stokes equations[J]. Journal of Fluid Mechanics, 2020, 890: A23.
[32]Barbato D, Berselli L C, Grisanti C R. Analytical and numerical results for the rational large eddy simulation model[J]. Journal of Mathematical Fluid Mechanics, 2007, 9: 44-74.
[33]Zehnder J, Narain R, Thomaszewski B. An advection-reflection solver for detail-preserving fluid simulation[J]. ACM Trans on Graphics, 2018, 37(4): 1-8.
[34]Tornado data set generator[EB/OL]. http://web.cse.ohio-state.edu/~crawfis.3/Data/Tornado/.
[35]Forced isotropic turbulence[EB/OL]. http://turbulence.pha.jhu.edu/For-ced_isotropic_turbulence.aspx.
[36]张军, 朱彬. 大范围云导风的直接可视化方法[J]. 计算机应用研究, 2021, 38(3): 908-913. (Zhang Jun, Zhu Bin. Direct vectors visualization method for large scale cloud-motion wind[J]. Application Research of Computers, 2021, 38(3): 908-913.)