体渲染论文阅读训练 之三

全部论文训练计划章节 见 论文训练计划

开始阅读论文《GPU-Based Monte-Carlo Volume Raycasting》

本文提出了一种实用的、高质量的、硬件加速的体绘制方法,包括散射、环境映射和环境遮挡。我们研究了随机光线跟踪技术在体绘制中的应用,并提供了一个基于GPU的快速原型实现。此外,我们提出了一个简单的现象学散射模型,它与许多艺术家所熟悉的Phong照明模型密切相关。我们展示了我们的技术能够产生令人信服的图像,但在实践中足够灵活的数字产品。

一、引子

体绘制技术在工程、计算科学和医学等许多科学领域都有着重要的应用。多年来,基于GPU的体绘制技术已经发展到一个高度成熟的阶段,以交互帧速率提供高质量的结果。

近年来,从事教育计算机动画制作的视觉艺术家们报告说,他们的客户对高质量的呈现形式的需求越来越大。本文提出的方法旨在通过实际应用中的多重散射效应来提高扫描物体的体感再现的视觉质量。

需要真实感和基于物理的光计算时,经常使用蒙特卡罗光线跟踪技术。本文研究了如何通过对体目标实施随机光线跟踪来补充基于GPU的体光线投射技术以支持多重散射。

二、相关工作

过去人们提出了许多复杂的实时体绘制积分求解技术,包括2D[6]和3D纹理映射[9]。基于GPU的体绘制的详细概述可以在Engel等人的书[1]中找到。

Kruger和Westermann[5]和Rottger等人[7]发表了第一个单独基于GPU的体光线投射实现,Hadwiger等人提出了一个使用分层空间跳跃和自适应采样的大体积数据中离散等曲面的柔性光线投射框架。

由Kniss等人[4]提出的体散射近似生成的图像对本文具有启发意义。散射由衰减图中抖动的采样位置来近似。其方法仅限于一次从单点光源或平行光照明。Hadwiger等人[2]介绍了基于GPU的深阴影贴图。许多关于基于蒙特卡罗的技术的出版物。作为介绍,我们让读者参考详细的SIGGRAPH课程注释[3]或L'aszl'o Szirmay Kalos的优秀脚本[8]。

读完相关工作部分,我想,一个最应该出现的心情就是激动。没错,我们在第二段中发现了一句话:“第一个单独基于GPU的体光线投射实现”,找到这项技术的源头了!

而且第三段中出现了前面我们阅读过一点的基于GPU的深阴影贴图。另外我们发现了两个课程,我们可以记录一下,以后再看。现在似乎我们可以跳去第二段中的那个论文,也可以继续向下读。按照之前的套路我们应该跳,但是这次,我们先不跳,而是继续向下读这篇文章。

三、相位函数

我们使用一个简单的现象型相位函数模型,它在指定的等值面上等于BSDF,否则包含一个简单的正向峰。这个相函数模型的参数是从下面的标量场s(x)导出的。为了保证模型的可控性,我们将散射事件限制在一组固定的等值面上。在这些等曲面之间,光线方向不变,但仍可能发生衰减。衰减由传统的传递函数控制。

在指定的等值面上,梯度幅值∇s(x)保证为非零。我们的现象型相位函数如图1所示。反射部分fr等于Phong局部照明模型的镜面反射项和漫反射项,

在非折射传输的情况下,透射部分将透射光散射到以负观察矢量v为中心的另一个Phong瓣中,

对于折射传输(图1,右),-v被根据Snell定律计算的折射矢量t代替。

四、基于GPU的蒙特卡洛光线投射

现有的基于GPU的光线投射的实现方法是在没有散射事件的情况下,沿着观察光线依次采样体空间计算光传输的解。但是,如果体数据集由三维纹理表示,则我们可以自由地将光线反射到体内任意点的任意方向。随机方向可以预先计算,存储在其他纹理图像中,并通过随机纹理坐标访问。这样一个简单的实现会立即导致几个问题:

•预先计算的随机射线方向不考虑具有显性辐射贡献的方向。收敛很慢,因为许多光线浪费在贡献很少的区域。

•许多光线由于低衰减而终止,对最终图像没有贡献。

•艺术家很难控制体积物体的视觉外观。

第一个问题通过使用重要性抽样来解决,如第5节所述。第二和第三个问题通过控制反射和透射事件的多层渲染技术来解决。第6节说明了多重通过的详情。

五、抽样方案

重要性抽样是通过减少蒙特卡罗估计量的方差来提高渲染性能的一种有效方法。将更多的样本放在参数域中期望被积分的函数较大的区域,而将更少的样本放在假设只对积分贡献很小的区域。而软件实现则可以灵活地使用任意概率分布,并根据方程中的特定被积函数进行调整,由于片段程序的并行性,我们基于GPU的实现必须对所有散射事件使用相同的概率分布

我们决定以均匀分布在单位球面上的随机方向为基础,根据相位函数或BSDF,采用简单而有效的策略来省略贡献很小的区域。为了避免考虑不同概率分布p(x)的必要性,我们将自己限制在均匀分布上。

为了从片段着色器中快速访问随机方向向量,我们使用预先计算的一组随机值三元组来表示均匀分布在单位球体上的点。预先计算的随机向量存储在3D纹理中。

从纹理中获得的随机方向可以直接用于相位函数的采样。然而,对于漫反射、类表面反射,有必要将随机方向限制在以给定单位向量n为中心的半球上。我们可以通过对给定半球以外的所有随机向量求反来轻松生成此类样本,

sgn是signum函数。

为了有效地对镜面反射的Phong波瓣进行采样,我们需要将采样方向聚焦到以给定反射方向为中心的窄锥上。聚焦光线方向的一种简单方法是计算半球随机样本rH和完美反射方向h的加权和:

标量权重α决定了围绕h方向的最大散射锥角。A值α=1表示半球上所有方向的散射,而A值α=0则导致(非随机)射线方向完全聚焦到h方向。

为了确定给定镜面反射指数s的适当α值,我们计算最大反射角γmax,此时镜面反射项低于用户指定的阈值T(比如0.1),

解这个方程得到:

图2说明了焦点权重α和角度γ之间的关系。很容易导出α与最大角γmax的函数关系式:

读不懂了?没有关系,再撑一会,这篇论文已经快结束了。

六、实践

对于数字产品,将最终渲染分解为不同的独立层是有利的。虽然这常常导致物理上不正确的解决方案,它允许艺术家调整不同层次的对比度和亮度,而无需重新计算一帧画面。

第一等高线通过:实际上,我们用等高线计算射线的第一次击中。第一个过程是计算第一个等高线的局部照明的美景过程。我们使用中心差分估计梯度向量,并多次采样环境立方体贴图来计算局部漫反射和镜面照明。

图3中最左边的图像显示了由LDR版本的格雷斯大教堂环境图(由Paul Debevec提供,www.debevec.org)照亮的UTCT面纱变色龙数据集的美景通道结果。

由于灯光是相加的,为了在合成步骤中获得最大的灵活性,我们还可以渲染单独的漫反射和镜面反射过程。这允许我们在合成步骤的后面调整镜面反射和漫反射系数。Ambient Occlusion:对于渲染软阴影,Ambient Occlusion[10]是伪造全局照明效果的一种基本方法,其结果与光能传递计算类似,但计算成本要低得多。

对于环境光遮挡过程,我们需要在前面的过程中生成的位置和梯度向量。对于每一个像素,我们在以梯度方向为中心的半球上投射几条光线。光线被跟踪几步,只使用一个较大的步长来确定它们是否再次击中等曲面。未击中几何体的光线百分比存储为帧缓冲区中的灰度值。图3中的第二个图像显示了环境光遮挡过程的结果。

散射:实际上,在大多数情况下,一个散射通道就足够了(图3,第3张图片)。我们在第一个等高线的点开始一个透射射线。该方向在折射矢量周围的Phong波瓣内散射。我们通过累积衰减因子来追踪这条射线,直到它到达第二个等高线。在第二个碰撞点,估计梯度向量,光线随机反射到以梯度方向为中心的半球。射线在衰减的情况下被追踪,但在离开体积之前没有进一步的散射。

更快但更不精确的散射过程是基于这样的假设:从眼点到第二个击中点的累积衰减是从击中点到外部衰减的适当估计。因此,我们可以平方累积衰减,并直接在反射方向上采样环境图,而无需进一步跟踪光线。最后的组合显示在图3中最右边的图像中。

七、结果和结论

所提出的蒙特卡罗体射线投射方法已在一个具有768mb视频内存的NVidia Geforce 8800gtx图形板上使用Cg(nv40 profile)和OpenGL实现。基于GPU的Monte Carlo-raycaster实现并不像许多软件实现那样,使用分层抽样或重要性抽样来最大化效率。然而,GPU的高并行架构以相当快的速度生成图像。

该方法的收敛性在很大程度上取决于所用的相位函数。我们用不同的相位函数进行了实验,发现允许散射事件在体积内的每个点发生会导致极慢的收敛,因此在计算上是不可行的。由此产生的图像对艺术家来说很难预测,这导致视觉参数在实践中无法控制。这就是为什么我们建议将散射事件限制在一组有限的等值面上。

不同步骤的性能如表1所示。测试预览(P)和最终质量的性能。结果表明,在交互帧速率下,单通道的预览渲染是可行的,这对实际中调整视觉参数具有重要意义。预览过程的结果仍然有噪声,但图像质量足够好,可以获得最终结果的视觉印象。

我们得出的第一个结论是,在实际应用中,绘制具有可观察内部结构的体对象(如本文中使用的断层扫描)所需的策略与绘制典型的半透明材料(如云、乳和皮肤)所需的策略大不相同,这些材料的散射相当均匀。本文所描述的方法是作为概念的证明。

我们从实验中得出的另一个结论是,散射通道必须根据期望的视觉效果进行调整。可以使用多个散射层,并且可以通过整个体积传输观看光线,以考虑背光对象等的半透明效果。所描述的技术与视觉艺术家所熟知的分层阴影框架很好地结合在一起。由于渲染参数是从Phong模型派生的,因此它们易于控制,并且大多数艺术家都已经熟悉了。

读完以后,针对这个怎么采样的,怎么随机的,还是一头雾水,看来我们必须补充一些知识。知识有两个方面,一是刚才我们看到的源头论文:《Smart Hardware-Accelerated Volume Rendering》和提供的蒙特卡洛光线追踪的书:《Monte Carlo Ray Tracing》。以后我们还会回到这篇论文,详细了解里面的技术细节。

发布了192 篇原创文章 · 获赞 418 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/tiao_god/article/details/105513419