掌桥专利:专业的专利平台
掌桥专利
首页

直接体积渲染设备

文献发布时间:2024-04-18 19:52:40


直接体积渲染设备

技术领域

本发明涉及用于对三维图像数据集,特别是三维医学图像数据集进行体积渲染的直接体积渲染(DVR)设备、方法以及计算机程序。

背景技术

现代计算机图形应用对所使用的硬件和渲染方法在分辨率、帧速率以及图像质量方面提出了高要求。对于大多数应用,每秒25帧(fps)的帧速率是绝对最小值。使用的图像分辨率通常是2K(即2048×1080像素)、和2K以上。虚拟现实(VR)和增强现实(AR)应用甚至进一步推动要求。在此,60fps的帧速率和60fps以上的帧速率经常被提到作为创建沉浸式和舒适的用户体验的最小值。此外,由于相应的头戴式耳机的固有的立体渲染,所需的帧速率隐含地加倍。虽然近年来许多头戴式耳机具有相对低的分辨率,但如微软公司的HoloLens 2的下一代头戴式耳机以每只眼睛的原始2K分辨率为特征。因此,必须至少以大约60fps对两个2K图像进行渲染以获得这样的头戴式耳机的舒适的用户体验。同时,由各种行业(如例如游戏、医学或娱乐)的发展的速度的增加推动的关于图像质量和真实性的期望如今非常高。全局照明是生成真实和引人注目的图像的关键技术,但通常还不是实时可行的。实时实现通常依赖于诸如,例如S.Zhukov等人的“An ambient light illuminationmodel(环境光照明模型)”Rendering Techniques'98(渲染技术'98),第45至55页(1998年)的文章中描述的环境遮挡(AO)的近似或该近似的许多变化,并且可以产生类似的结果,该文章通过引用在此并入。

高帧速率、高分辨率和高质量的竞争要求也涉及医疗可视化领域。在此,除经典的表面渲染之外,DVR用于基于计算机断层扫描(CT)和磁共振(MR)图像对人体进行观察,并且对于多种医学应用非常重要,例如术前计划。若干研究显示,除了令人愉快的外观,包括重要的视觉线索(诸如阴影)的真实描述提高空间理解和识别解剖结构的能力,例如,如M.S.Langer等人的“Depth discrimination from shading under diffuse lighting(来自漫反射光照下的阴影的深度识别)”,Perception 29(6),第649至660页(2000)以及F.Lindemann等人的“About the influence of illumination models on imagecomprehension in direct volume rendering(关于直接体积渲染中照度模型对图像理解的影响)”,IEEE Transactions on Visualization and Computer Graphics(IEEE可视化和计算机图形学汇刊)17(12),第1922至1931页(2011)所公开的,这些文章在此通过引用并入本文。然而,不是所有允许实时近似全局照度(GI)的方法可以直接应用于DVR。此外,DVR的计算工作量通常比表面渲染高,因为可视化体积中的任何点可能包含有价值的信息,而表面渲染仅处理离散的表面。因此,即使可以被转移至DVR的方法通常也比其表面渲染的方法慢得多。因此,在DVR中GI的交互式计算的所有方法必须依赖一些形式的预计算,并且存储可视化数据集的每个体素的光照值以在交互式渲染期间重复使用。这样的预计算解决方案的局限性在于每当更新传递函数或对体积剪切时需要更新预计算。然而,交互式剪切和转移函数的定义是许多可视化场景的要求。这些标准操作在现有的方法的情况下仅是部分可能的,并且经常受到较低帧速率的影响。

发明内容

因此,本发明的目的是提供用于对具有更高帧速率的三维图像数据集进行体积渲染的DVR设备、方法以及计算机程序。

在本发明的第一方面,提出了用于对三维图像数据集进行体积渲染的DVR设备,其中,DVR设备包括二维图像计算器,该二维图像计算器被配置成通过以下步骤计算要显示给用户的二维图像:

-针对多条主射线中的每一条主射线提供沿主射线的颜色和不透明度,多条主射线遍历三维图像数据集,并且在三维图像数据集应当被投影在其上的二维图像平面中与二维图像的相应像素相遇;

-基于沿各条主射线的不透明度和/或颜色将每条主射线细分成段;

-针对每个段根据预定光照计算规则计算段光照值;

-基于预定投影规则沿主射线将颜色和段光照值投影到像素上。

因此,仅需要每段计算一个光照值,从而显著减少计算二维图像所需的计算工作量。此外,已发现,通过基于沿各条主射线的不透明度和/或颜色对主射线的细分,可以对主射线进行细分,使得即使每段仅计算一个光照值也实现二维图像的高图像质量。因此,可以在高帧速率的情况下提供高质量体积渲染。特别地,可以在足够高的帧速率,甚至对于AR/VR应用没有任何关于交互式转移函数定义和剪切的限制的情况下提供具有近似的全局照明的高质量体积渲染。

三维图像数据集也可以被视为体积图像数据集,因为三维图像数据集在三个不同的空间方向延伸。也可以针对不同的时间提供三维图像数据集,其中,在这种情况下,图像数据集也可以被看作四维数据集。

三维图像数据集包括优选地作为体素的图像元素。二维图像计算器优选地被配置成针对每条主射线通过以下步骤提供沿各条主射线的颜色和不透明度:a)给三维图像数据集的每个图像元素分配颜色和不透明度,以及b)针对每条主射线,基于分配给由主射线遍历的图像元素的颜色和不透明度,计算沿主射线的颜色和不透明度。优选地由转移函数(TF)来定义对图像元素的颜色和不透明度的分配。此外,优选地,DVR设备包括输入接收单元,该输入接收单元被配置成允许用户修改TF,其中,二维图像计算器被配置成响应TF的修改而更新二维图像的像素。因此,在TF被修改的情况下,响应于TF的修改重复以下步骤:基于可能修改的不透明度和/或颜色将每条主射线细分成段,针对每个段根据预定光照计算规则计算段光照值,以及基于预定投影规则沿主射线将颜色和段光照值投影到像素上。这允许用户修改TF,并且然后监测DVR可视化如何改变,特别是如何实时改变。

在实施方式中,分配给图像元素的不透明度和沿主射线计算的不透明度由阿尔法值表示,其中,阿尔法值指对颜色模型(例如,RGB颜色模型,并且从而形成例如RGBA颜色模型)进行补充的阿尔法通道。

此外,二维图像计算器可以被配置成计算三维图像数据集的一部分的二维图像,其中,该部分由至少一个剪切平面,特别地由一组剪切平面定义,其中,直接体积渲染设备包括输入接收单元,该输入接收单元被配置成允许用户修改至少一个剪切平面,特别是至少一个剪切平面的位置和取向,其中,二维图像计算器被配置成响应于至少一个剪切平面的修改来更新二维图像的像素。因此,二维图像计算器可以被配置成计算二维图像使得其仅表示三维图像数据集的一部分,该部分有被剪裁,即没有被至少一个剪切平面移除。相应地,二维图像计算器可以被配置成至少执行以下步骤:将每条主射线细分为段;针对每个段计算段光照值;以及将沿主射线的颜色和段光照值投影到仅用于三维图像数据集的一部分的像素上。另外,给三维医学图像的每个图像元素分配颜色和不透明度以及定义遍历三维图像数据集的主射线的步骤中的至少一个可以仅针对三维图像数据集的定义部分来执行,其中,针对每条主射线,基于给由主射线遍历的图像元素分配的颜色和不透明度,计算沿主射线的不透明度和颜色,因此,在裁切平面被修改的情况下(即要成像的部分被修改的情况下),二维图像的像素被更新。这允许用户修改剪切平面,并且然后监测DVR可视化如何改变,特别是如何实时改变。

此外,优选地,二维图像计算器可以被配置成使得主射线从虚拟相机的位置处开始,其中直接体积渲染设备包括输入接收单元,该输入接收单元被配置成允许用户修改虚拟相机的位置和/或取向,其中,二维图像计算器被配置成响应于虚拟相机的位置和/或取向的修改来更新二维图像的像素。相应地,二维图像计算器可以被配置成至少执行以下步骤:将每条主射线细分成段,针对每段计算段光照值,以及在虚拟相机的位置已被改变的情况下,将沿主射线的颜色和段光照值投影到像素上。这允许用户修改虚拟相机的位置和/或取向,并且然后监测DVR的可视化如何改变,特别是实时改变。

输入接收单元可以是接收来自输入装置的信息的单元,该信息表示由用户所做的输入,或者输入接收单元可以是输入装置本身。输入装置是例如键盘、计算机鼠标、触摸板、麦克风(特别是头戴式耳机的麦克风)、或另一输入装置。二维图像被显示在输出单元(如显示器、头戴式耳机的显示屏等)上。

优选的是,三维图像数据集是医学图像数据集。例如,三维图像数据集可以是CT图像数据集、MR图像数据集、或另一成像模态的图像数据集。

二维图像计算器可以被配置成在两个不同的观看方向上基于三维图像数据集计算两个二维图像,以允许立体观看。这允许用户以三维观看三维图像数据集,其中,两个二维图像可以被显示在两个显示器上,每个显示器由相应眼睛观看,其中两个显示器可以是头戴式耳机的显示器。

二维图像计算器被配置成基于沿各条主射线的不透明度和/或颜色对每条主射线进行细分。这通常导致具有不同长度的段。换言之,二维图像计算器被配置成基于不透明度以及/或者使得不是所有段具有相同的长度对每条主射线进行细分。特别地,二维图像计算器被配置成通过定义段边界将每条主射线细分成段,其中,段边界由沿主射线的在其处不透明度和/或颜色和/或累积的不透明度的函数超过预定义阈值的位置来定义。不透明度的函数可以是从由以下函数组成的组中选择的函数:例如,直接应用于不透明度和/或颜色以及/或者应用于累积的不透明度的恒等函数、线性函数、积分函数(即积分)、导数函数(即导数)、切线函数以及平方根函数。已发现,可以通过使用这些函数来定义实现三维图像数据集的高质量成像的段。特别地,这些段实现沿各条主射线的照明的快速且良好的近似。

二维图像计算器优选地被配置成提供若干阈值,其中,段边界由沿主射线的在其处不透明度和/或颜色的函数超过所提供的若干阈值中的预定义阈值的位置来定义。所提供的相邻的阈值之间的差异可以是恒定的。二维图像计算器可以被配置成根据例如预定义的线性阈值函数或预定义的指数阈值函数来提供若干阈值。例如,段的最大数目是s

在优选实施方式中,二维图像计算器被配置成针对每条主射线的每段,基于各个段中的沿各条主射线计算的颜色和不透明度,计算段颜色和段不透明度。特别地,段颜色和段不透明度可以通过与积分相对应的累积从各个段中的沿各条主射线计算的颜色和不透明度中产生。积分可以通过使用具有导致沿射线的样本的累积的固定样本距离的黎曼和来实现。在沿主射线计算的不透明度由阿尔法值表示的情况下,段不透明度可以指段阿尔法值,以及可以通过也被称为阿尔法合成的阿尔法混合给出累积。因此,在沿射线段的射线追踪期间,对三维图像数据的样本进行迭代时,可以使用例如TF将这些样本映射成颜色和阿尔法值,其中,然后可以通过阿尔法混合得到这些颜色和阿尔法值沿射线段的累积,阿尔法混合是在光“行进”通过介质时光的衰减的数字近似。

在优选实施方式中,二维图像计算器被配置成通过定义各个段内的光照值确定位置以及根据预定光照计算规则针对各个光照值确定位置(即在各个光照值确定位置处)计算相应光照值来针对每条射线的每个段计算段光照值。优选地,二维图像计算器被配置成定义各个段内的光照值确定位置,使得光照值确定位置位于各个段的四分之一内,该光照值确定位置被布置在主射线从像素位置向体积进行追踪的每段的末端处,光照值确定位置优选地与各个段的四分之一相对应,光照值确定位置被布置在主射线从虚拟相机位置向体积追踪的每个段的末端处。因此,这个光照值确定位置优选地在各个段的末端,光照值确定位置的方向远离相应的像素。已发现,通过以这种方式选择各个段内的光照值确定位置,可以进一步提高最终计算的二维图像的质量。

在实施方式中,预定光照值计算规则包括以下中的至少一个:a)计算环境光照值和b)计算至少一个方向性光照值。优选地,预定光照值计算规则包括,针对各个光照值确定位置计算环境光照值和至少一个方向性光照值,以及通过将环境光照值和至少一个方向性光照值组合来计算段光照值。例如,将环境光照值和至少一个方向性光照值组合可以对应于加法。特别地,预定光照值计算规则包括:a)通过提供定义第一入射光线在哪个方向具有哪个强度的环境映射以及通过基于分配给图像元素的不透明度修改第一入射光的强度来计算环境光照值,以及b)通过提供光照值确定位置的方向性光照信息以及通过基于分配给图像元素的不透明度修改第二入射光的强度来计算至少一个方向性光照值,该方向性光照信息指示来自虚拟光源的第二入射光的光强度。在实施方式中,环境映射还可以指示第一入射光线在哪个方向上具有哪种颜色。

在实施方式中,环境光照值通过以下步骤计算:a)针对光照值确定位置在半球内定义若干圆锥,其中半球由分配给光照值确定位置处的图像元素的颜色和/或不透明度的梯度定义,其中半球指向梯度的方向,其中半球的端平面穿过光照值确定位置并与梯度成法向,其中,圆锥的顶点位于光照值确定位置;b)针对每个圆锥,定义以各个圆锥的轴线为中心的球体,其中,球体的半径随着到相应顶点的距离增加而增加;c)针对每个球体确遮挡值,并将针对各个圆锥的所有球体确定的遮挡值组合,以确定针对整个相应圆锥的遮挡值;d)基于各个圆锥确定的遮挡值和由环境映射定义的通过各个圆锥的第一入射光的光强度,针对每个圆锥确定修改的光强度;以及e)将针对各个光照值确定位置的圆锥确定的修改的光强度组合,以针对各个光照值确定位置确定环境光照值。将针对各个光照值确定位置确定的修改的光强度组合优选地是根据各个圆锥对各自梯度的倾斜度来对这些修改后的光强度进行加权的和,以针对各个光照值确定位置确定环境光照值。

在优选实施方式中,环境映射适应于圆锥,即环境映射定义各个圆锥内的整个第一入射光的强度。这进一步减少了所需的计算,因为每个圆锥仅需要通过使用针对各个圆锥确定的单一遮挡值来修改各自单一光强度值。

圆锥优选地均匀地分布在各个半球内。在实施方式中,在每个半球中使用5或6个圆锥。

优选地,球体被定义成使得球体的半径是紧接的前一球体的半径的两倍。此外,每个球体的半径优选地等于球体至圆锥顶点的距离乘以二分之一的圆锥开口角的正弦。这样的方式,球体就尽可能地大,同时还刚好放入至圆锥中。

优选地,根据表示原始三维图像数据的体积数据、基于分配给球体中心的不透明度确定球体的遮挡值,原始三维图像数据具有与球体的中心和用于定义球体的圆锥的顶点之间的距离相对应的细节级别。优选地,针对预定数目的细节级别中的每一个预计算表示原始三维图像数据的体积数据,并且然后存储表示原始三维图像数据的体积数据。通过基于这样的体积数据确定球体的遮挡值,可以进一步减少遮挡值计算所需的计算工作量,而不会显著影响渲染质量。

例如,分配给给定细节级别的体积数据的给定图像元素的不透明度可以对应于分配给下一个更高的细节级别的体积数据的那些图像元素的不透明度的和或者平均值,细节级别与给定的图像元素相对应,即,例如,给定的图像元素从细节级别中产生。

在优选实施方式中,基于针对圆锥定义的球体的中心之间的距离与原始三维图像数据中的图像元素大小,特别是体素大小的比率来修改球体的遮挡值。

例如,针对球体确定的遮挡值可以被相加,以达到相对应圆锥的遮挡值。考虑的球体的数目可以取决于数据集的大小或预定义的最大射线长度,以限制考虑的邻域的大小。在任何情况下,在圆锥轴线离开三维图像数据或穿透剪切平面之前仅会考虑球体。

如上所述,可以基于针对不同圆锥确定的遮挡值和由环境映射定义的通过各个圆锥的第一入射光的光强度,针对每个圆锥确定修改的光强度。例如,针对每个圆锥确定的修改的光强度可以对应于针对各个圆锥确定的遮挡值和由环境映射定义的通过各个圆锥的第一入射光的光强度的乘积。如上所指示,针对与各个光照值确定位置相对应的圆锥确定的修改的光强度可以被组合,以确定各个光照值确定位置的环境光照值,其中,针对各个光照值确定位置的圆锥确定的修改的光强度的组合,优选地是根据每个圆锥对各自梯度的倾斜度加权的和,以针对各个光照值确定位置确定环境光照值。特别地,权重可以由各个圆锥对各自梯度的倾斜度的余弦来给出。

在优选实施方式中,通过以下步骤计算至少一个直接光照值:a)针对光照值确定位置在半球内定义若干圆锥,其中,半球由分配给光照值确定位置处的图像元素的颜色和/或不透明度的梯度定义。其中,半球指向梯度方向,其中,半球的端平面穿过光照值确定位置并与梯度成法向,其中,圆锥的顶点位于光照值确定位置;b)针对每个圆锥定义以各个圆锥的轴线为中心的球体。其中,球体的半径随着到相应顶点的距离的增加而增加;c)针对每个球体确定遮挡值,并将针对各个圆锥的所有球体确定的遮挡值组合,以确定整个圆锥的遮挡值;d)针对每个圆锥确定方向性光贡献,该方向性光贡献指示来自与各个圆锥相关联的虚拟光源的第二入射光的光强度的一部分;以及e)基于针对若干圆锥确定的遮挡值和方向性光贡献,将修改的光强度确定为至少一个方向性光照值。优选地,圆锥的方向性光贡献取决于由方向性光照信息确定的虚拟光源的方向和相应圆锥轴线的方向,特别地取决于由方向性光照信息确定的虚拟光源的方向和相应圆锥轴线的方向之间的角。例如,方向性光贡献针对包括由方向性光照信息确定的虚拟光源的方向的圆锥可以是最高的,并且可以随着相应圆锥轴线对虚拟光源的方向的倾斜度的增加而减少。方向性光贡献还可以进一步取决于各个圆锥的开口角,该开口角针对所有圆锥是相同的。为了避免可能出现的光照不连续,在例如生成第二入射光的虚拟光源移出由半球内的任何单个圆锥覆盖的实体角而进入另一圆锥的情况下,应当选择使得保证在相邻圆锥之间逐渐过渡而没有任何空隙或硬跳的贡献。因此,修改的光强度和至少一个方向性光照值可以通过将第二入射光的光强度与几个圆锥的遮挡值的加权和相乘而获得,其中,权重取决于由方向性光照信息确定的虚拟光源的方向和各个圆锥轴线的方向,特别地取决于由方向性光照信息确定的虚拟光源的方向和各个圆锥轴线的方向之间的角,以及还可以取决于各个圆锥的开口角。

二维图像计算器还可以被配置成针对每个段基于沿各个段的颜色和不透明度计算段颜色,以及通过投影段颜色和段光照值沿主射线将颜色和段光照值投影到像素上。相对应的投影规则定义如何执行颜色和段光照值的合成。例如,根据投影规则对颜色和段光照值进行合成可以相当于对所有段的照明段颜色进行求和,其中,可以通过段颜色与相应段光照值相乘来计算段的照明段颜色(即考虑到照度的情况下的段的最终颜色值)。由于从初始射线追踪和沿主射线的段的颜色和不透明度的积累中已知段颜色,因此使用例如阿尔法混合,最后的投影步骤(即执行获得二维图像中的最终照明像素值的求和)变得非常简单。

在本发明的另一方面,提出了用于对三维图像数据集进行体积渲染的DVR方法,其中,直接体积渲染方法包括:

-针对多条主射线中的每一条主射线提供沿主射线的颜色和不透明度,多条主射线遍历三维图像数据集并且在三维图像数据集应当被投影在其上的二维图像平面中与二维图像的各个像素相遇;

-基于沿各条主射线的不透明度和/或颜色,将每条主射线细分为段;

-针对每个段,根据预定光照计算规则计算段光照值;

-基于预定投影规则沿主射线将颜色和段光照值投影到像素上。

在本发明的另一方面,提出了用于对三维图像数据集进行体积渲染的计算机程序,其中,计算机程序包括程序代码手段,该程序代码手段用于当计算机程序在控制根据权利要求1至19中的任一项所述的DVR设备的计算机上运行时,使DVR设备执行根据权利要求20所述的DVR方法的步骤。

应当理解,根据权利要求1的系统、权利要求14的方法以及权利要求15的计算机程序具有类似和/或相同的优选实施方式,特别地,如从属权利要求中所定义的。

应当理解,本发明的优选实施方式也可以是从属权利要求与相应独立权利要求的任何组合。

本发明的这些和其他方面将根据参照下文描述的实施方式变得明显并被阐明。

附图说明

图1示意性且示例性地示出了DVR设备的实施方式;

图2示意性且示例性地示出了基于沿主射线的不透明度对主射线的细分;

图3示意性且示例性地示出了通过使用等距阈值基于不透明度值对主射线的细分;

图4示意性且示例性地示出了将半球细分成用于计算主射线的段内的位置的段光照值的六个圆锥;

图5示意性且示例性地示出了通过沿次射线的不同采样密度对圆锥进行采样,以及

图6示出了示例性地示出DVR方法的实施方式的流程图。

具体实施方式

图1示意性且示例性地示出了用于对三维医学图像数据集进行体积渲染的DVR设备1。DVR设备1包括二维图像计算器2,该二维图像计算器2被配置成计算要显示给用户的二维图像。

DVR设备1还包括输入装置3,如键盘、计算机鼠标、触摸板、麦克风(特别是头戴式耳机)、或其他输入装置。二维图像被显示在输出单元4(如监测器、头戴式耳机的显示器等)上。

二维图像计算器2给三维医学图像的每个体素分配颜色和不透明度,并且定义遍历三维图像数据集的主射线,该主射线从虚拟相机的位置处开始并且在三维医学图像数据集应当被投影在其上的二维图像平面中遍历二维图像的相应像素,其中,针对每条主射线,基于分配给由主射线遍历的体素的颜色和不透明度,计算沿主射线的颜色和不透明度。

此外,二维图像计算器2基于沿各条主射线的不透明度将每条主射线细分成段。在本实施方式中,二维图像计算器2被配置成通过限定段边界将每条主射线细分成段,其中,段边界由沿主射线的在其处累积的不透明度超过相应预定义阈值的位置来限定。相邻的预定义阈值优选地具有恒定距离并且它们可以例如通过

累积的不透明度表示“遍历”介质的辐射的衰减。例如,0.5的累积的不透明度意味着射线的辐射的50%正被介质吸收。累积的不透明度基于光的物理定律,其中,在体积渲染中,对光在体积中的传播进行模拟的物理基础例如由N.Max的文章“Optical Models forDirect Volume Rendering(直接体积渲染的光学模型)”,IEEE Transactions onVisualization and Computer Graphics(IEEE可视化和计算机图形学汇刊),1(2),第99至108页(1995年)中的发射-吸收模型来公式化,该文章通过引用并入本文。通常,通过称为阿尔法混合的技术来计算累积的不透明度,阿尔法混合为上述N.Max的文章中公式化的物理定律的数字近似。优选地,根据下面的等式(4)中的乘积来计算累积的不透明度。

图2示意性且示例性地示出了主射线10,该主射线10被细分成若干段,示出了其中四个段I、II、III、IV,其中,在边界11、12、13、14处,各个累积的不透明度超过阈值。然而,注意,由于可能应用早期射线终止,可能没有达到阈值14,其中,在已达到某个预定义累积的不透明度值(如0.99或0.96)之后停止射线追踪。在图2中,α表示每个颜色区域的体积的不透明度,并且沿主射线10的值表示累积的不透明度。

图3示出了用于示出主射线的细分的另一示例。在该图中,横轴表示沿相应主射线的位置,以及纵轴表示累积的不透明度。此外,在该图中,线20、……、23表示等距阈值。如在该图中可以看出,每当累积的不透明度达到阈值20、……、23中的一个时,各个段I'、II'、III'、IV'的相应边界被定义。应当注意,图2和图3基于不同的不透明度值,即图3不对应于图2中示出的情况。

二维图像计算器2还被配置成针对每个段通过以下步骤计算段光照值:定义各个段内的位置;以及针对各个位置根据预定光照计算规则计算相应光照值。优选地,二维图像计算器2被配置成定义各个段内的位置,使得位置位于各个段的四分之一内,该位置被布置在主射线从虚拟相机/像素位置向体积追踪的每个段的末端。在图2中,该“四分之一”位于各个段I、II、III、IV的右侧,其中,在该图中,其处的相应光照值被计算的各个位置由半球示出。在该示例中,各个位置在各个段I、II、III、IV的相应末端处。

在该实施方式中,预定光照值计算规则包括针对各个光照值确定位置计算环境光照值和若干方向性光照值,并且通过将环境光照值和方向性光照值组合来计算段光照值。具体地,预定光照值计算规则包括:a)通过提供定义第一入射光在哪个方向上具有哪个强度的环境映射以及基于分配给体素的不透明度修改第一入射光的强度来计算环境光照值,以及b)通过提供关于光照值确定位置的指示来自虚拟光源的第二入射光的光强度的方向性光照信息以及基于分配给体素的不透明度修改第二入射光的强度来计算方向性光照值。

在本实施方式中,针对每个光照值确定位置定义相应的半球。半球由分配给光照值确定位置处的体素的不透明度的梯度来定义,其中,半球指向梯度的方向,其中,半球的端平面穿过光照值确定位置并与梯度成法向。此外,在每个半球内定义若干圆锥30。圆锥30优选地均匀分布在各个半球内。在本实施方式中,如图4所示,在每个半球中使用6个圆锥30。

此外,如图5中所示,针对每个圆锥30定义以各个圆锥30的轴线40为中心的球体,其中,球体的半径随着到相应顶点44的距离的增加而增加。各个圆锥30的轴线40也可以被视为次射线。

针对每个球体确定遮挡值,以及将针对各个圆锥30的所有球体确定的遮挡值进行组合,以确定整个相应圆锥30的遮挡值。此外,针对每个圆锥30,基于针对各个圆锥30确定的遮挡和如由环境映射定义的通过各个圆锥30的第一入射光的光强度来确定修改的光强度,并且将针对各个光照值确定位置的圆锥30确定的修改的光强度进行组合,以针对各个光照值确定位置确定环境光照值。将针对各个光照值确定位置的圆锥30确定的修改的光强度进行组合以针对各个光照值确定位置确定环境光照值优选地是这些修改的光强度的加权和,其中,根据每个对应的圆锥与相应梯度的倾斜度对每个修改的强度进行加权。特别地,权重可以由相应倾斜度的余弦给出。

在优选实施方式中,环境映射适用于圆锥30,即环境映射定义各个圆锥30内的整个第一入射光的强度。这减少了所需的计算,因为对于每个圆锥30只需要通过使用针对各个圆锥30确定的单个遮挡值来修改相应的单个光强度值。

定义球体使得球体的半径是紧接前一球体的半径的两倍。此外,每个球体的半径等于球体至圆锥顶点的距离乘以二分之一圆锥开口角的正弦。这样的方式,球体尽可能大同时还刚好放入至圆锥中。

通过基于以下确定修改的光强度来计算各个直接光照值:a)针对包括来自相应虚拟光源的第二入射光的射线的圆锥30确定的遮挡;以及b)如由方向性光照信息定义的通过圆锥30的第二入射光的光强度。例如,通过将确定的遮挡与第二入射光的光强度相乘获得修改的光强度以及由此各个方向性光照值。

特别地,可以基于针对半球内的所有圆锥确定的遮挡值通过将第二入射光的光强度与半球内的所有圆锥的遮挡值的加权和相乘来确定修改的光强度以及因此至少一个方向性光照值,其中,权重取决于第二入射光的方向与相应的圆锥轴线之间的相应角以及相应的圆锥开口角。

在针对每个段即针对每个相应的光照值确定位置确定相应的段光照值之后,二维图像计算器基于预定投影规则沿主射线将颜色和段光照值投影到像素上。具体地,二维图像计算器2被配置成针对每个段基于沿各个段的颜色和不透明度来计算段颜色并且通过将段颜色和段光照值投影来沿主射线将颜色和段光照值投影到像素上。投影规则可以是例如,将每个段颜色与相应的段光照值相乘,并且将所得的乘积相加。然而,也可以使用其他投影规则。

如上所述,相应段光照值的计算包括计算环境遮挡(AO),即在相应光照值确定位置处由三维数据集的体素对进入的环境光的遮挡,该AO用于确定环境光照值。为了计算体积数据的AO,可以使用每条主射线的多个AO样本以说明半透明的体积数据,其中,在该实施方式中,基于段的算法可以包括至少三个基本步骤:(i)创建细节级别(LOD)遮挡体积,(ii)在初始射线追踪期间从初始体数据中收集段信息,以及(iii)照明计算和最终合成,即投影。在接下来的段落中,将基于DVR设备的发展期间遇到的问题说明实施方式的步骤。

对光在体积中的传播进行模拟的物理基础可以例如由发射-吸收模型如N.Max在上述文章中公开的发射-吸收模型给出。根据Max的这篇文章和通过引用并入本文的D.

其中

在等式(1)中,L

为了使实时渲染足够高效,在DVR中,通过计算主射线的黎曼和并使用阿尔法混合来对这些样本进行合成来近似等式(1)中的积分,从而等式(1)中的积分最终形成离散体积渲染等式:

在此,通过对来自先前样本的不透明度值α

对于L

在这个等式中,

辐射映射(给定为360°×180°HDRI全景图像)应当仅用一个所需的采样操作传送圆锥的入射辐射。为此,采用了如O.Klehm等人的文章“Bent Normals and Cones inScreen-Space(屏幕空间中的弯曲法向和圆锥)”,VMV 2011–Vision,Modeling andVisualization(建模与可视化),第177至182页(2011)中描述的预卷积光照,该文章通过引用并入本文。因此,辐射映射可以通过应用与所需的圆锥半径相对应的过滤/模糊(这种过滤可以用免费的第三方软件工具来完成)根据“标准”环境映射来计算。在应当支持多个圆锥半径的情况下,辐射映射也可以包括具有增加的过滤器大小/模糊的多个LOD级别。然后,辐射映射被导入至渲染器/着色器中作为“立方体贴图(CubeMap)纹理”,并且可以通过使用标准的GLSL指令进行采样。立方体贴图被定义为场景周围的无限大的球体,并且产生方向

利用为当前位置

然而,在其他实施方式中,也可以使用另一光照模型。特别地,光照模型可以容易地与更复杂的模型组合或扩展至更复杂的模型,并且也可以是方向性光或点光。在这方面,也参照下面进一步的描述。

由于粗暴的方法不可行,在该粗暴的方法中,沿每条射线针对每一步计算AO(或L

二维图像计算器2被配置成基于沿各条主射线累积的不透明度将每条主射线细分成段。也就是,段的长度取决于主射线的追踪期间累积的阿尔法值,并且因此长度变化。优选地,二维图像计算器2被配置成通过定义段边界将每条主射线细分成段,其中,段边界由沿主射线的在其处累积的不透明度超过预定义阈值的位置定义。相邻的预定义阈值之间的差异可以是恒定的。一般,预定义阈值可以是线性分布,但也可以以另一方式分布,如指数分布。每当达到下一个累积的不透明度阈值(在最容易的情况下,下一个累积的不透明度阈值简单地为

段的最大数目可以由用户设置。然而,优选地,段的最大数目由DVR设备预定义或自动确定而不是由用户设置。

每当段被改变,体积内的当前位置

通过累积的不透明度进行确定使得设备能够识别在某种程度上具有相似不透明度的区域(即段),以及将段边界放置在靠近(累积的)不透明度的突然增加的地方。并且因此,通过将光照值确定位置放置在每个段的最后四分之一的边界处,明确定义的表面状结构接收合理的光照近似。但也对于特征在于累积的不透明度缓慢且持续增加的软组织,这种启发式方法效果好,因为这些区域相当均匀,并且

基于段的光照基于以下假设:照明在段内没有太大变化,并且可以简单地被重复用于段内的所有点。然而,存在可以使用段光照值的其他方式。原则上,可以基于当前段的段光照值和两个相邻段的段光照值针对段内的每个位置插入照明值。可以使用常见的插值方案,诸如近邻、线性或立方插值。针对段内所有点使用段光照值的实用方法类似于近邻插值。这种优选方法实现了创造非常好的结果的直接实现。

由于在等式(4)中已经计算主射线的黎曼和,以及AO值和光照项被假设成对于每个段是恒定的,因此在稍后的合成步骤中可以将它们与相对应段颜色C

其中,由环境遮挡项ao和入射光L

没有必要对段进行阿尔法混合以得到最终的像素值,因为在初始射线追踪期间,已对每段的阿尔法值进行阿尔法混合。段的最大数目由底层数据的复杂性确定,但通常段的数目可以很低以得到遮挡的合理近似。这个参数的典型值在5至30个段的范围内。这主要取决于底层数据和TF的复杂性。5个值的段已可以产生良好的结果,然而超过30个值通常不能进一步提高视觉质量。已发现,对于具有512×512×512个体素的分辨率的典型大小数据集和典型的TF,最大段数10已产生接近于路径追踪的对应物的良好结果。因此,在优选实施方式中,每条射线的最大段数为10。

在本实施方式中,二维图像计算器2适用于使用体素圆锥追踪AO作为AO模型。AO被定义为点

其中,

可以通过追踪额外射线(即,在点

由于沿每条射线在多个位置处对AO进行估计的事实,因此这快速导致必须穿过体积追踪的相当高的量的所需次射线。由于频繁的内存访问,这种次射线追踪的性能受到严重影响,因此在本实施方式中使用减少所需样本的数目的另一方案。此外,鉴于间接光和AO非常低频的事实,已发现不一定需要使用体积的最高分辨率来计算遮挡。事实上,我们离初始样本位置越远,体积的表示可以越广泛。因此,二维图像计算器2适用于创建额外的遮挡体积,该额外的遮挡体积包括我们的主体积在多个分辨率下的精确复制。优选地,一旦TF被改变,就重新计算多分辨率体积,以考虑TF的完全动态的变化。由于可以在二维图像计算器2的图形处理单元(GPU)上非常有效地执行体积的向下采样,这仅增加小的性能损失。因此,每个初始样本位置的环境的采样可以被设计为显著加速次射线的追踪的LOD方法。如上面已经提到的,图5中示出了这一点,其中,在空间密度随着到与位置

二维图像计算器2被配置成以与以下文章中公开的方式类似的方式计算AO:C.Crassin等人,“Interactive indirect illumination using voxel cone tracing(使用体素圆锥追踪的交互式间接照明)”,Computer Graphics Forum(计算机图形论坛)30(7),第1921至1930页(2011年),该文章通过引用并入本文。然而,与该文章中描述的方法相比,二维图像计算器2不需要对场景进行体素化,因为体积数据已被体素化。此外,二维图像计算器2也不使用如八叉树的分层数据结构以用于光照计算,因为不需要每个体素的邻居信息,这显著降低了算法的复杂性。此外,在本发明中,与来自Crassin的原始方法相比,优选地将体素圆锥追踪技术应用于计算遮挡,而不是间接光照。但,二维图像计算器2抑制方法的积极方面,主要是无噪声和性能的显著提高。

与通过引用并入本文的E.C.D.Favera等人的文章“Ambient occlusion usingcone tracing with scene voxelization(使用圆锥追踪与场景体素化的环境遮挡)”,第25届SIBGRAPI图形、图案和图像会议(25th SIBGRAPI Conference on Graphics,Patternsand Images),第142至149页(2012年)中公开的技术类似,二维图像计算器2被配置成优选地使用具有每个圆锥的孔径为67度的相等孔径的六个圆锥以用于收集遮挡,因为不存在镜面/高频信息以及具有六个圆锥30的布局引入比Crassin等人在上述文章中提出的原先的五个圆锥布局小的间隙。在图4中示意性且示例性地示出圆锥。已发现,具有三个圆锥或仅一个圆锥的布局没有显著改善性能,并且产生视觉上更差的结果,这是为什么二维图像计算器2优选地使用六个圆锥。然而,也可以使用另一数目的圆锥和不同的圆锥孔径角。

现在为了计算每个圆锥的遮挡值,二维图像计算器2追踪通过体积的相对应的次射线并对圆锥积分进行近似。为此,通过将沿圆锥的相对应LOD级别的遮挡值相加来采用多分辨率遮挡体积以获得最终的近似遮挡值。因此,步长以如下方式定义使得当前LOD级别的单元的范围适合圆锥的直径。概念上,这可以被认为成将球体打包至圆锥中,其中,对于每个新球体,半径加倍,因为多分辨率体积中的每个单元的大小从每个LOD级别至下一个级别加倍(参照图5)。然后这产生了公式(11)以用于针对每个LOD级别j计算从具有圆锥孔径θ的圆锥的起点起的当前距离d

这导致步长的指数增长,步长的指数增长使得二维图像计算器2以非常少的所需样本对每个点周围的大邻域采样,以及不仅对局部AO进行模拟而且对大规模的遮挡效果以及靠近当前点的尖锐细节二者进行模拟。为了适应较大的步长d′,每个样本i的不透明度由具有d作为标准步长的校正项来调整。在这方面,也参照Crassin等人的上述文章,即

二维图像计算器2被配置成执行插值使得在本实施方式中,体积中的每个位置被三线式采样,这确保平滑的插值结果。在其他实施方式中,当然也可以以另一方式执行插值。

二维图像计算器2可以被配置成采用HDRI环境映射来照亮场景,即通过使用HDRI环境映射来计算光照值。这具有如下优点:要显示的所生成的二维图像可以用于AR场景,因为HDRI环境映射可以产生非常自然且真实的光照。如上所述,二维图像计算器2被配置成通过每段仅计算一次光照和遮挡来使用简化的光照计算。二维图像计算器2可以使用每个圆锥的已计算出的遮挡值以通过对每个圆锥的入射光进行估计来计算方向性光照近似,以及然后用相对应的遮挡值对方向性光照近似进行衰减。这仅需要对环境映射进行非常少的额外纹理查找,但产生当前段的入射光的合理近似。

现在为了计算每个圆锥的入射光,二维图像计算器2可以被配置成例如通过对环境映射进行多次采样来实际上再次对每个圆锥的立体角进行积分。然而,优选地,二维图像计算器2被配置成通过使用如Klehm的上述文章中描述的预卷积光照来避免这。为此,可以使用基于mipmap的HDRI映射,其中,每个mipmap有效地作为预集成的入射光的表示,最高mipmap表示优选地90度的圆锥半径的辐射。在这种情况下,通过对与圆锥半径相对应的mipmap水平的环境映射进行一次采样来获取每个圆锥的入射光。注意,在使用仅一个固定的圆锥开口(孔径)角的情况下,一个映射水平的预计算就足够。

因此,对于具有K个圆锥的布局,每个点

其中,

因此,例如,对于对所有圆锥都相同的固定圆锥孔径γ

以类似的方式,这也可以被扩展至近似的方向性光照值,诸如来自光源(诸如方向性灯(入射光具有平行射线)的入射光或点光(来自点的光,入射光射线不平行))和具有非常少的额外计算工作的相应阴影。为此,每个光源的阴影值被近似为已计算(参照等式(13))的圆锥的遮挡值的插值。对于来自方向

在此,ξ是避免圆锥边界处的硬过渡的平滑函数以及L

由于计算每个光源对于每个圆锥的贡献,因此提供具有柔和阴影、没有引入噪声、以及具有非常少的额外计算的真实光照近似。事实上,由于可以在GPU上非常快地估计点积,并且已计算累积的alpha,因此这种方法允许几乎任意数目的光源,同时还计算光源中的每一个的柔和阴影。这种方法也可以被扩展以包括其他类型的光源,诸如区域光(即具有矩形或圆形发射器的光)或例如通过处理发射区域上的与点光类似的点而得到的任意形状的光。可替选的方法可以将这样的光源的入射光也近似为称为入射光圆锥的圆锥(由

为了进一步改进二维图像计算器2,一些优化是可想到的。算法的可论证地最关键的部分是段边界的定义,因为段边界确定沿射线的在其处光照和AO将被计算的位置。这归结成对沿射线的累积的不透明度的进展的分析。如前所述,优选地想要在累积的不透明度的突然增加之前设置段边界以最佳地捕捉硬结构和边界。然而,对于均匀区域,想尽可能少地分布段边界。虽然段边界的线性划分已产生良好的结果,但基于累积的不透明度的导数的段定位可以产生甚至更好的结果,事实上,该累积的不透明度的导数与当前透明度相对应。因此,二维图像计算器可以被配置成基于累积的不透明度的导数将每个主射线细分成段。二维图像计算器可以被配置成使用确定段边界的任意函数。此外,在累积的不透明度的完整进展已知时,二维图像计算器可以被配置成不是在初始射线追踪期间而是在初始射线追踪之后定义段边界。通常,段边界选择得越好,算法向正确解的收敛越高。

此外,可以通过引入更多基于适应性的构思来进一步提高性能。基于以下观察:具有低不透明度的区域比具有高不透明度的区域对最终像素结果的贡献少并且高不透明度通常标志固体结构,二维图像计算器可以被配置成使用取决于点的当前不透明度的采样密度。因此,二维图像计算器可以被配置成使用AO计算的采样,其中,以低于对具有高不透明度的区域进行采样的精度对具有低不透明度的区域进行采样。二维图像计算器可以被配置成针对准确性使用不同的圆锥样本模式,即,例如,三个圆锥用于低准确性,六个圆锥用于较高准确性。方向性光和环境光近似/计算可以使用任意圆锥布局和孔径。

可以通过例如,以常见的基于射线投射的直接体积渲染器的GLSL碎片着色器、光栅化图形API如因此利用图形处理单元(GPU)的计算能力的OpenGL实现上述技术来产生二维图像计算器。例如,基于射线投射的直接体积渲染器可以是,例如用于医学可视化的公知的“MeVis-Lab”软件中的“Giga体素体积渲染器”。然而,基于介绍的基于段的自适应光照采样的所描述的性能改善也可以以任何其他基于CPU、基于GPU光栅化或基于GPGPU(通用GPU)(例如使用CUDA)的体积渲染器实现来实现。

如上所述,二维图像计算器使用基于段的渲染以优选地通过识别底层数据中的类似区域并假设这些区域的恒定光照值来极大地减少所需的光照计算。这导致所需的光照计算的显著减少以及每条射线的计算的数目变化。本发明人进一步发现,在基于光栅化的实现的情况下,当使包括入射光的AO和估计的光照计算与初始射线追踪不相干时,性能可以被进一步提高。这是由以下事实引起:片段着色器线程组步调一致地操作并且较快的线程必须等待较慢的线程。由于沿射线的在其处计算光照的位置即使对于相邻射线也可能显著地不同的事实,因此初始射线追踪和光照计算的不相干至关重要。因此,在优选实施方式中,二维图像计算器被配置成在初始射线追踪期间仅定义段并为以后的光照计算收集相关数据。对于每个段,在实施方式中,这种数据包括段体积内的段的起始位置、当前积累的颜色和阿尔法混合积累的不透明度。在另一实施方式中,只存储应当计算光照值的位置,即在另一实施方式中只存储光照值确定位置。这些值可以被存储在每段具有一个元素的一维数组中。由于射线也可以没有达到完全的不透明度并且因此不是所有的段被使用,因此二维图像计算器优选地还包括对用于稍后的光照计算步骤的有效段的数目计数的额外计数器。

二维图像计算器可以被配置成在光线追踪之后通过以下步骤来计算当前像素的最终颜色值:遍及有效段的数目进行迭代,将每个段的存储的颜色值与计算出的光照近似(即计算出的光照值和计算出的AO值)相乘,并根据上面的等式(8)将它们加在一起。

如上所述,二维图像计算器被配置成类似于由Crassin等人的上述文章所公开的体素圆锥追踪算法计算AO,但适用于DVR。与Crassin等人的文章类似,二维图像计算器因此使用多个细节级别的体积和分辨率,但二维图像计算器不使用八叉树或另一分层数据结构对AO结构化。因此,LOD表示的创建是简单的。例如,基于OpenGL的实现可以在体积的3D纹理的创建期间采用OpenGL的内置LOD功能。然而,本发明人发现,当手动执行向下采样时,体积的LOD级别的稍后采样更快,并且每个LOD级别被存储在单独的采样器中。此外,已发现,根据底层数据的大小和复杂性,少量的LOD级别如四个或七个已足够。基于三维图像的大小来自动计算LOD级别的数目也是可行的。此外,二维图像计算器优选地被配置成通过使用光栅化流水线以与Crassin等人在上述文章中公开的技术相似的方式来创建LOD级别。更精确地,二维图像计算器2优选地被配置成采用体积渲染器,该体积渲染器在帧缓冲对象(FBO)中逐片对体积渲染,以获得单独的遮挡体积。通过使用另一体积渲染器实例来烘烤遮挡体积,也可以被覆盖具有多个次级体积、剪切平面、额外的TF等的非常复杂的数据集。因为针对遮挡体积不计算光照和着色,所以这个额外的渲染步骤非常快,并且可以在由用户改变TF时被容易地即时执行。然后可以经由GLSL着色器在二维图像计算器2的GPU上有效地执行这个多分辨率体积的生成,该GLSL着色器对前一个LOD级别进行欠采样并且从而创建具有在每个维度中前一个级别的大小的精确的一半的下一个LOD级别。每个LOD级别可以被存储在单通道的16位纹理(如R16纹理)或甚至RGBA16纹理中以允许彩色阴影。然后,每个LOD级别可以被绑定至主着色器作为单独的采样器。

此外,在对两个切片之间的较高水平体积进行采样时,可以通过利用例如OpenGL硬件滤波来有效地完成插值。优选地,与Crassin等人类似,在向下采样期间另外应用3×3高斯滤波核以确保平滑的结果。在多分辨率体积中的LOD级别的期望数目被创建或体积不能进一步减小之前,重复这些步骤。一旦TF改变,二维图像计算器重新计算LOD级别以解决TF的完全动态变化。这也显著简化算法,因为不需要动态更新的方案或类似机制。

二维图像计算器优选地被配置成在不同的观看方向上计算两个二维图像,以实现立体观看。

二维图像计算器通过将新的采样方案与体素圆锥追踪组合来促进高帧速率DVR中的高级照明效果。采样方案减少沿主观看射线的照明计算的量,同时体素圆锥追踪减少照明计算本身的复杂性。这种组合甚至允许在图像质量无任何损失的情况下实时定义TF或剪切平面。

在所述的实施方式中,二维图像计算器将利用基于图像的光照、AO和直接照明的自适应照明采样与阴影投影技术组合。然而,也可以使用其他照明技术诸如次表面散射。

DVR设备1的输入装置3优选地被配置成允许用户修改a)TF和/或b)一个或更多个剪切平面的位置和/或取向和/或c)虚拟相机的位置和/或取向。相应地,二维图像计算器2优选地被配置成在DVR中计算AO,同时使完全交互式的TF和/或剪切平面和/或虚拟相机实时改变。在相对应的算法的核心处,二维图像计算器2采用将射线分割成段的自适应采样方案,这促进所需的沿观看射线(即沿主射线)的照明计算的量的减少。使用体素圆锥追踪的适应来有效计算光照计算本身。这需要最小的预计算,以及允许与基于图像的光照和几乎任意数目的方向性光或点光的柔和阴影组合的AO的无噪声即时计算。

可以通过将描述的算法整合到现有的基于射线投射的体渲染流水线中来容易地产生二维图像计算器。对于主要的目标用例,即AR,二维图像计算器代表具有高帧速率与无噪声的组合、真实照明图像的合适的折衷方案。该折衷方案自身特别适合与基于图像的光照结合,这可以促进渲染的图像与真实环境的更深入的整合。

在二维图像计算器中实现的基于段的射线投射的构思可以用于必须减少沿射线的重复计算的所有场景。因此,基于段的渲染可以用于许多领域和算法如全局照明算法中。此外,上述光照术语可以扩展成包括涵盖例如彩色阴影、次表面散射甚至完全全局照明的更复杂效果或着色模型。

由二维图像计算器执行的AO计算可以被命名为“自适应体积照明采样”,并且缩写为AVIS以及优选地是用于在基于射线投射的DVR中计算AO的完全基于GPU的实时技术。二维图像计算器允许实时计算DVR的AO,同时支持交互式TF更新和高帧速率和分辨率下的可视化数据的剪裁。为此,所提出的技术将圆锥追踪的AO与自适应采样方案组合,这促进计算工作的减少并且产生具有仅最小的预计算的无噪声AO。所描述的技术可以被集成至现有的生产体积渲染流水线中,并且优选地在AR设置中用于医疗体积渲染的上下文中。优选地,所描述的技术为医学应用场景而设计,并且即使对于复杂的数据集也有好的效果。

使用遮蔽或遮挡作为近似间接照明的手段的构思最初由S.Zhukov等人在上述文章中提出。现在已知作为环境遮挡的S.Zhukov等人的方法使用在某个表面点处计算的遮挡的量来调节来自分布式伪光源的环境光。通常,AO通过射线投射的手段来计算:追踪多条射线以对半球采样。针对每条射线计算遮挡的量,以及表面点的遮挡值是所有遮挡值的平均。

虽然AO仅是全局照明的近似,但它的计算成本仍然高。实现AO的实时渲染的一个解决方案是预计算AO值或弯曲的法向,并且将它们存储在纹理或三维网格中。然而,这仅允许刚性转换。

全动态AO在当前的图形硬件上被实现为2.5D图像空间过程(所谓的屏幕空间环境遮挡(SSAO))。全动态AO基于对深度和表面法向的延迟着色缓冲区的操作,但仅在基于表面的渲染中流行。

关于现实光照模型的工作最初集中在表面渲染,但最终也在DVR的领域中催生类似的工作。除以下文章中描述的阴影投射方法之外,向体积渲染应用环境遮挡方法论得到了广泛的关注:U.Behrens等人的“Adding shadows to a texture-based volumerenderer(将阴影添加至基于纹理的体积渲染器)”,IEEE Symposium on VolumeVisualization(IEEE体积可视化研讨会)(2002年),M.Hadwiger等人的“GPU-Accelerateddeep shadow maps for direct volume rendering(用于直接体积渲染的GPU加速深度阴影映射)”,Graphics Hardware(图形学硬件),第49至52页(2006年),以及T.Ropinski等人的“Efficient shadows for GPU-based volume raycasting(基于GPU的体积射线投射的高效阴影)”,International Conference in Central Europe on Computer Graphics,Visualization and Computer Vision(中欧计算机图形、可视化和计算机视觉国际会议)(2008年),这些文章通过引用并入本文。最早用于DVR的AO方法之一是在A.Stewart的文章“Vicinity Shading for enhanced perception of volumetric data(用于体积数据的增强感知的邻近区域着色)”,Proceedings of the IEEE visualization conference(IEEE可视化会议记录),第355至362页(2003年)中描述的“邻近区域着色”,该文章通过引用并入本文。在该文章中,通过调查相邻体素的遮挡计算局部照明,但是对于场景的每一个修改需要进行预处理,以及存储结果的额外缓冲区。

在也通过引用并入本文的F.Hernell等人的文章“Local ambient occlusion indirect volume rendering(直接体积渲染中的局部环境遮挡)”,IEEE Transactions onVisualization and Computer Graphics(EEE可视化和计算机图形学汇刊),16(4),第548至559页(2010年)中描述了局部AO,该文章通过在预计算步骤中首先对体积进行下采样并将体积打包至具有多个分辨率的块中来计算来自局部邻域的遮挡。然后,AO被存储在额外的环境光纹理中,以每帧一个AO样本方向和确定射线方向的规则几何图案逐步更新该环境光纹理。沿主射线和次射线的采样遵循自适应方案,其中,步长基于底层块的分辨率。这实现了有效的基于LOD的转换和体积的采样,同时跳过了空的空间。虽然这种方法产生可信的结果,允许数据的剪裁,并且不依赖于梯度,但它存在不连续的假象并且对于实时应用太慢,特别是因为针对TF的每个变化,底层的多分辨率体积必须被重新计算。

以类似的方式,在通过引用并入本文的T.Ropinski等人的文章“Interactivevolumetric lighting simulating scattering and shadowing(对散射和着色进行模拟的交互式体积光照)”IEEE pacific visualization symposium(IEEE太平洋可视化研讨会),第169至176页(2010年)中,用体积的色度的前后累积和在第二通道中使用用于光传输和散射二者的圆锥以前后顺序对光进行散射来生成照明体积。用适当的着色模型,这产生散射和漫射、镜面材料和半透明材料,同时当传输函数或光位置改变时,体积可以即时被重新计算。然而,具有仅一个动态点或方向性光源的限制是相当受限的。

在通过引用并入本文的F.Hernell等人的文章“Interactive global lightpropagation in direct volume rendering using local piecewise integration(使用局部分段整合的直接体绘制中的交互式全局光传播)”SPBG'08Proceedings of the FifthEurographics/IEEE VGTC Conference on Point-Based Graphics(SPBG'08第五届欧洲图形/IEEE VGTC基于点的图形会议论文集),第105至112页(2008年)中已研究通过将射线分割成片段来减少所需样本的构思,其中,在该文章中提供了分段整合。然而,与二维图像生成单元2所使用的方法相比,在该文章中,段是统一大小的,而且不是不透明驱动的。此外,在该文章中,在基于LOD的多分辨率阴影体积的创建期间,仅对光射线(或次射线)而不是主射线采用分段整合。然后,在该文章中,使用得到的阴影体积,用与也通过引用并入本文的F.Hernell等人的“Efficient ambient and emissive tissue illumination usinglocal occlusion in multiresolution volume rendering(在多分辨率体积渲染中使用局部遮挡的高效环境和发射组织照明)”,Proceedings of Eurographics/IEEE VolumeGraphics 2007(欧洲图形学会/IEEE体积图形学会论文集2017),第1至8页(2007年)中所描述的局部环境遮挡类似的方法计算局部一阶散射效果。在最后的步骤中,单个射线投射通道用于渲染最终的图像。虽然这种方法允许TF的交互式变化,但不支持剪切平面。关于光照,这种方法不支持环境映射,并且仅支持上至四个点光源。

在也通过引用并入本文的D.

在也通过引用并入本文的T.Kroes等人的文章“Exposure render:Aninteractive photo-realistic volume rendering framework(曝光渲染器:交互式光子现实体积渲染框架)”PLoS ONE,7(7),https://doi.org/10.1371/journal.pone.0038586(2012)中展示了基于路径追踪的DVR中全动态全局照明的可行性。该技术被西门子健康公司采用,并且被命名为电影式渲染(Cinematic Rendering)。通常,作为迭代算法的路径追踪在几秒内收敛至具有低噪声的结果。然而,可以仅通过从相同视图中提取更多的样本,来实现收敛至平滑的结果。例如,虽然可以通过使用去噪滤波器加快过程,但对于对精确性和速度具有高要求的应用(如在医学背景和AR场景中),路径追踪还是太慢。然而,路径追踪仍产生最准确的结果,因为它是物理上最正确的方法。

在通过引用并入本文的文章“Adaptive Temporal Sampling for VolumetricPath Tracing of Medical Data(用于医疗数据的体积路径追踪的自适应时间采样)”,Computer Graphics Forum(计算机图形论坛),38(4),第67至76页(2019年)中示出了针对虚拟和AR场景使路径追踪可行的方法。在所描述的方法中,通过在屏幕空间历史缓冲区中存储额外的信息以及采用自适应采样技术,将从基于表面的渲染中已知的时间重投影应用于路径追踪的体积渲染。这实现了重复使用已计算出的值,并且仅在需要的地方花费样本。尽管这提高了路径追踪体积渲染的性能,但所得到的图像还遭受噪声和模糊的影响,特别是在医学体积渲染中这是不利的。除此之外,TF和剪切平面的变化仅被间接地支持、并且在一定程度上支持。被

在上述Crassin等人的文章中,提出了“体素圆锥追踪”技术,用于经典表面渲染的技术以良好的质量并实时地实现平滑和无噪声的全局照明。完全基于GPU的方法几乎不需要预计算,只是需要对场景体素化,并且将信息存储在分层的八叉树结构(被称为包括不同LOD的场景的“稀疏体素八叉树”)中。然后,基本算法包括三个基本步骤:第一,从光位置渲染场景以将入射光信息分配给八叉树中;第二,光通过体积传播,该光针对每个八叉树节点产生辐射;以及第三,根据相机视点并且针对每个可视表面点再次渲染场景,其中,如也通过引用并入本文的J.Amanatides的“Ray Tracing With Cones(用圆锥的射线追踪)”,Computer Graphics(计算机图形学)(ACM),18(3),第129至135页(1984年)的文章中描述的一样,使用圆锥追踪执行最后的收集。对于双向反射分布函数(BRDF)的镜面部分,单独的圆锥允许镜面材料。在Crassin等人的这篇文章中也给出了关于如何使用用于计算AO的圆锥追踪的示例。

在下文中,将参照图6所示的流程图,示例性地描述用于对三维图像数据集进行体渲染的DVR方法的实施方式。

在步骤101中,提供三维图像数据集,该三维图像数据集优选地是医学图像数据集,如CT或MR图像数据集。在步骤102中,给三维图像的每个体素分配颜色和不透明度,以及在步骤103中,对于多条主射线中的每条主射线,沿主射线基于分配给由主射线遍历的体素的颜色和不透明度计算颜色和不透明度,多条主射线遍历三维图像数据并且在三维图像数据集应当被投影在其上的二维图像平面中与二维图像的相应像素相遇。在步骤104中,基于沿各条主射线的不透明度将每条主射线细分成段,以及在步骤105中,针对每个段,根据预定光照计算规则计算段光照值。在步骤106中,基于预定投影规则沿主射线将颜色和段光照值投影到像素上以生成二维图像。也可以将步骤103和步骤104合并,即已在初始射线投射期间计算沿主射线的不透明度和颜色并且确定段。特别地,在优选实施方式中,在初始射线投射期间,计算沿主射线的不透明度和颜色,确定段并且还确定各个段内的应当计算其段光照值的位置。因此,已在初始射线投射期间可以确定光照值确定位置。

在步骤107中,检查用户是否通过使用输入设备3已修改对体素的颜色和不透明度的分配,即相对应的转移函数。如果是这样的话,方法继续进行步骤103。此外,在步骤107中,还检查用户是否通过使用用户设备3已修改剪切平面或虚拟相机的位置和/或方向。同样如果是这样的话,方法可以继续进行步骤103。此外,在步骤107中,检查用户是否通过输入设备3已指示应当停止DVR方法。如果是这样的话,方法在步骤108中结束。

因此,用户可以修改TF、剪切平面和/或虚拟相机的位置,其中,生成的二维图像被持续更新,使得用户可以看见修改如何实时影响可视化。

在实施方式中,所确定的段上的一个采样点(即光照值确定位置)的光照值计算被给出为项(1)环境光和任意数目的项(2)方向光的和,将在下文中进行描述。

项(1)环境光被计算为来自样本点的半球上的所有方向的光。为此,环境映射用于以360°×180°全景图的形式指定来自所有方向的光。该光通过根据Zhukov等人在上述文章中公开的计算借助于环境遮挡计算的着色被调制。更确切地,由Crassin等人在上述文章中描述的体素圆锥追踪用于计算环境遮挡。这意味着,半球由均匀分布使得半球或多或少被其表面上得到的圆形所覆盖的少量(通常是5或6个)圆锥采样。允许最小的交叠。优选地,使用具有67°的开口角的六个圆锥。在固定的参考框架中定义这些圆锥,该框架在采样点处以三维图像数据集的梯度被取向。通过三维图像数据集追踪每个圆锥,以计算通过被该圆锥覆盖的体积的部分得到的遮挡。针对这些圆锥中的一个进行以下描述:圆锥的追踪通过对基于原始三维图像数据集和TF已预计算的额外细节级别(LOD)遮挡体积进行采样来实现。这背后的构思是从圆锥的顶点开始并且沿圆锥的主轴线跟随圆锥,圆锥的截面增长。用对圆锥的轴线上的一些球体(即球体区域)进行采样代替在圆锥的整个体积内的许多点上对原始三维图像数据集进行采样以计算代表性的遮挡值,每个球体具有比之前球体大的半径。然而,优选的是采样球体的半径总是精确加倍,因为每个LOD级别的体素也总是对其大小进行加倍。因为每个LOD级别的体素也应当与圆锥的当前半径相匹配,所以自动确定沿射线的采样点。对这些球体进行采样通过从额外LOD遮挡体中获取值来实现。各个水平的体素大小增长成如下:每个水平的体素大小相对于前一水平加倍。因此,从较低的分辨率水平获取值意味着在较大的区域中获取样本的整合,即获取较大区域的遮挡。这用于使用仅一个样本计算圆锥中每个球体的遮挡值。若干球体遮挡值的组合可以得到整个圆锥的遮挡值。球体的数目(或沿射线的步骤)取决于针对遮挡计算应当考虑的邻域的大小和三维数据集的大小。在任何情况下,仅在圆锥轴线离开三维图像数据或穿透剪切平面之前可以考虑球体。遮挡值用于调制来自环境映射的光,该光沿穿过该圆锥的方向到达样本点。从环境映射中获取这种光将再次需要从该映射中获取多个样本。而是,使用上述Klehm等人的文章中所描述的预卷积光照。与LOD遮挡体积类似,使用环境映射的额外表示,该环境映射的额外表示预整合通过具有给定开口角(即具有给定孔径)的圆锥落入的光。因此,在与圆锥的方向相对应的位置处从全景图中必须提取仅一个样本。样本值与该圆锥的遮挡值相调节,以得出被该圆锥覆盖的实体角的入射环境光量。通过针对所有圆锥重复该过程以及计算结果的加权和来计算整个半球的环境光(即调制后的第一入射光),其中,加权因子取决于每个圆锥对各自梯度的倾斜度。特别地,加权因子可以由各个圆锥对梯度的倾斜度的余弦给出。

(2)基于常见的局部照明模型(例如Phong模型)和相应的阴影值计算给定光源的方向性光项。通过重新使用针对六个圆锥计算的遮挡值来近似阴影值(见(1))。因此,光源的阴影值是圆锥遮挡值的加权和,其中,权重取决于光方向和圆锥轴线之间的角度以及圆锥的开口角。该阴影值用于调节局部照明模型的结果。针对所有的光源重复该过程。

DVR设备和方法优先使用环境遮挡而不是全局照明,以提高更新速度,即可实现的帧速率。

虽然在上述实施方式中,图像数据集是医学图像数据集,但在其他实施方式中,图像数据集也可以是另一类型的数据集,如在材料科学、流动可视化等领域的图像数据集。

虽然在上述实施方式中,已使用转移函数来将不透明度和颜色分配给体素,但在其他实施方式中,可以不使用转移函数来提供不透明度和颜色。例如,体素或其他类型的图像元素可能已经包括不透明度和颜色,其中,通过例如基于图像元素的不透明度和颜色的插值来确定主射线上的不透明度和颜色。

虽然在上述实施方式中,每条主射线基于沿各条主射线的不透明度,特别是累积的不透明度被细分成段,可替选地或另外地,也可以基于沿各条主射线的颜色来执行这种细分。例如,沿各条主射线的各个位置处的相应颜色可以被映射成一个数值,该相应颜色通常包括分量红、绿和蓝的三个数值。如在通过引用并入本文的Charles A.Poynton的文章“Rehabilitation of gamma(伽玛康复)”,Photonics West'98Electronic Imaging,International Society for Optics and Photonics(美国西部光电展98国际光学和光子学会电子成像)(1998年)中公开的,例如,这可以通过计算三个数值的平均或通过计算加权和来实现,这允许考虑人类的颜色感知,如Y=0.2125*R+0.7154*G+0.0721*B,其中,Y是三个数值应当被映射至的一个数值,以及R、G和B是分量红、绿和蓝的三个数值。可以基于通过映射已获得的并且因此表示沿各条主射线的各种颜色的数值来执行段边界的检测。特别地,如上所述关于累积的不透明度,数学函数被应用于所获得的表示颜色的数值,并且结果可以与阈值进行比较以确定段边界。另外,在原始不透明度应当用于确定段边界的情况下,将数学函数应用于所获得的数值,该数值在这种情况下表示原始不透明度(特别地,如上所述关于累积的不透明度),并且结果可以与阈值进行比较以确定段边界。在一个实施方式中,数学函数是积分函数(即积分),其中,沿各条主射线将表示颜色或原始不透明度的值相加,以及其中,各个段边界由超过各自阈值的和来定义。可以通过校准来确定提供整个DVR过程的非常高的速度的阈值,其中,在校准过程期间,阈值被确定成使得DVR过程的速度增加,特别是使DVR过程的速度最大化。

数学函数也可以是另一函数,如不透明度、颜色或累积的不透明度的导数。导数特别地用于检测通常与组织边界相对应的强变化,其中,段边界可以布置在这些强变化的位置处。因此,可以通过对导数进行阈值化来确定段边界,其中,导数定义各个参数(颜色、不透明度或累积的不透明度)沿各条主射线的变化程度。可以基于沿主射线的后续值之间的差异来确定导数。

虽然上述实施方式包括基于特定版本的环境遮挡(体素圆锥追踪)计算段光照值和也基于体素圆锥追踪来近似方向性光(平行光和点光),但也可以用另一方式来确定段光照值。例如,可以使用用于给定位置的光和着色的计算的方法来代替。每种可替换的方法根据计算次数的减少而受益。作为示例,可以使用M.Hadwiger的上述文章中描述的成熟的深阴影映射方法。不需要沿射线对每一点的阴影映射进行采样,而需要对每段仅进行一次采样,这将加快渲染。

虽然已描述了每段仅需要计算一个光照值,但也可以每段计算多于一个光照值,其中,还不是针对沿各条主射线的所有采样位置,即不是针对已分配有颜色和不透明度的所有位置确定光照值。例如,对于各个段内的采样位置的50%,进一步优选小于30%,以及更进一步优选小于20%,确定光照值(即段光照值)。可替选地,可以使用每段的固定数目的光照值,这将允许甚至更有效地限制光照值计算的数目。因此,可以在一个段中使用多个光照值确定位置以提高方法的准确性,而不是定义一个光照值确定位置,其中,还显著减少计算二维图像所需的计算工作。例如,光照值确定位置可以在各个段的每个四分之一内定义。对于多个光照值确定位置,可以根据预定光照值计算规则计算多个光照值。(例如通过计算平均值)多个光照值可以被组合成一个段光照值,或者在针对每个四分之一段确定段光照值的情况下,多个光照值可以单独用于四分之一段。另外,可以在光照值确定位置之间对段光照值进行插值。这种方式,主射线上每个样本的光照值可以被近似。

虽然在上述实施方方式中描述了包括将段的光照值与段颜色相乘的投影规则,但也可以使用其他投影规则。例如,段光照值可以沿各条主射线并在各个段内与一种、几种或所有的颜色相乘,其中,所得的乘积可以相加。因此,在这个可替选的实现中,段光照值被重新用于例如各个段内的所有样本。根据另外的投影规则,在段光照位置之间插入段光照值,使得对于各个采样位置以及因此对于各种颜色,确定相应的插值光照值,其中,在沿主射线的各个位置处(即在各个采样位置处),将各种颜色与相应的插值光照值相乘,以及其中,所得的乘积相加。通常,术语“将颜色和段光照值沿主射线投射到像素上”是指将沿各条主射线的颜色和段光照值组合的过程,使得针对各条主射线确定各个像素值,其中,这种组合可以包括颜色和段光照值的预处理(如上述插值),也包括像素值的后处理。

可以针对一个像素追踪一条主射线,或者针对一个像素追踪多条主射线,以减少混叠伪影。在后一种情况下,针对相对应像素的区域内的有限数目的位置多次执行所描述的方法,而不是针对优选地位于相对应像素的中心的单一位置执行一次所描述的方法。

通过研究附图、本公开内容和所附权利要求,本领域技术人员在实践所要求保护的发明时可以理解和实现对所公开的实施方式的其他变型。

在权利要求中,词语“包括”不排除其他元素或步骤,以及不定冠词“一”或“一个”不排除多个。

单个单元或装置可以实现权利要求中列举的若干项的功能。在相互不同的从属权利要求中记载某些措施的仅有事实并不指示不能使用这些措施的组合获利。

由二维图像计算器执行的如确定主射线的不透明度和颜色、将主射线细分成段、计算段光照值、对颜色和段光照值进行投影等过程也可以由任何其他数目的单元或装置执行。这些过程和/或根据DVR方法对DVR装置的控制可以被实现为计算机程序的程序代码手段和/或专用硬件。

计算机程序可以被存储/分发在合适的介质诸如与其他硬件一起提供或者作为其他硬件的一部分提供的光学存储介质或固态介质上,但是也可以以其他形式例如通过因特网或其他有线或无线通信系统来分发。

权利要求中的任何附图标记不应被解释为限制范围。

本发明涉及用于对三维图像数据集进行体积渲染的直接体积渲染设备。对于多条主射线中的每一条主射线,提供沿主射线的颜色和不透明度,多条主射线遍历三维图像数据集并且在三维图像数据集应当被投影在其上的二维图像平面中与二维图像的各个像素相遇。基于沿每条主射线的不透明度和/或颜色将各条主射线细分成段,其中,对于每个段,根据预定光照计算规则计算段光照值。最后基于预定投影规则沿主射线将颜色和段光照值投影到像素上。

技术分类

06120116329950