快速渲染二次曲面的制作方法

文档序号:14861683发布日期:2018-07-04 07:49阅读:269来源:国知局
快速渲染二次曲面的制作方法

本发明涉及计算机图形领域,尤其涉及二次曲面渲染。



背景技术:

在已知为光线投射法的渲染技术中,计算机模拟光线到虚拟场景的投射,并根据这些光线和场景中的对象的交互作用来渲染场景。

在一些渲染应用中,虚拟场景中的对象被建模为二次曲表面或“二次曲面”。二次曲面的公式可以齐次(x,y,z,w)坐标表示为ax2+2bxy+2cxz+2dxw+ey2+2fyz+2gyw+hz2+2izw+jw2=0。更简洁地,可将其写为矩阵形式xtqx=0,其中并且(通常,w被设置为1。)二次曲面的示例包括球体、椭圆体、圆柱体、圆锥体、双曲线抛物面、抛物面以及双曲面。

光线可由公式r=o+td表示,其中r是光线上的任何点,o是光线的原点,d是光线的方向矢量,并且t是标量参数。r、o和d可以齐次坐标表示。

sigg、christian等人的“gpu-basedray-castingofquadraticsurfaces,”spbg,2006(以引用方式并入本文)基于gpu加速的抛雪球算法提出了二次原体的有效渲染技术。



技术实现要素:

根据本发明的一些实施方案,提供了包括显示器和处理器的设备,该显示器包括屏幕。处理器被配置成在屏幕上限定界定区域。处理器还被配置成在显示在屏幕上的心脏的表面的三维电解剖图上方针对界定区域中的每个像素通过以下方式渲染限定在参数空间中的二次曲面:将穿过像素的虚拟光线转化到参数空间,从而确定转化的虚拟光线和二次曲面之间的交汇点是否存在于参数空间中,并且随后,假设交汇点存在,基于交汇点的属性来在屏幕上渲染像素。

在一些实施方案中,处理器还被配置成在参数空间中限定二次曲面,使得二次曲面由具有八个角部的立方体界定,八个角部中的两个角部分别位于(-1,-1,-1)和(1,1,1)。

在一些实施方案中,处理器被配置成通过以下方式来限定界定区域:

将立方体的角部转化到屏幕空间,该屏幕空间根据屏幕的坐标系而限定,以及

限定界定区域,使得界定区域为转化的角部的最小界定矩形。

在一些实施方案中,处理器还被配置成限定二次曲面,使得二次曲面可通过4x4对角矩阵q表示。

在一些实施方案中,

虚拟光线具有光线原点o和光线方向矢量d,

处理器被配置成通过计算o'和d'来转化虚拟光线,o'为转化到参数空间的光线原点o,d'为转化到参数空间的光线方向矢量d,并且

处理器被配置成通过按以下方式尝试计算交汇点来确定是否存在交汇点:

计算第一系数a=d'tqd',其中d't是d'的转置,计算第二系数b=2d'tqo',并且计算第三系数c=o'qo',并且

随后针对参数t求解at2+bt+c=0。

在一些实施方案中,处理器还被配置成将q表示为四元素矢量qd,并且处理器被配置成通过执行qd的元素级乘法计算第一系数a、第二系数b以及第三系数c中的每一者。

在一些实施方案中,处理器还被配置成接收指示体内导管的远侧端部的位置的信号,并且处理器被配置成在对应于三维电解剖图的所指示的位置的一部分上渲染二次曲面。

在一些实施方案中,处理器被配置成响应于通过体内导管的远侧端部在所指示的位置处传递到心脏的表面中的消融信号来渲染二次曲面。

在一些实施方案中,处理器被配置成通过以下方式来在屏幕上渲染像素:

计算二次曲面在交汇点处的法向量,以及

根据二次曲面在交汇点处的着色以及法向量来渲染像素。

根据本发明的一些实施方案另外提供了方法,该方法包括使用处理器在屏幕上限定界定区域。该方法还包括在显示在屏幕上的心脏的表面的三维电解剖图上针对界定区域中的每个像素通过以下方式渲染限定在参数空间中的二次曲面:将穿过像素的虚拟光线转化到参数空间,确定转化的虚拟光线和二次曲面之间的交汇点是否存在于参数空间中,并且随后,假设交汇点存在,基于交汇点的属性来在屏幕上渲染像素。

根据本发明的一些实施方案,还提供包括存储有程序指令的有形非暂态计算机可读介质的计算机软件产品。这些指令在被处理器读取时使得处理器在屏幕上限定界定区域。这些指令在被处理器读取时还使得处理器在显示在屏幕上的心脏的表面的三维电解剖图上针对界定区域中的每个像素通过以下方式渲染限定在参数空间中的二次曲面:将穿过像素的虚拟光线转化到参数空间,确定转化的虚拟光线和二次曲面之间的交汇点是否存在于参数空间中,并且随后,假设交汇点存在,基于交汇点的属性在屏幕上渲染像素。

结合附图阅读本发明实施方案的以下详细说明,将更全面地理解本发明,其中:

附图说明

图1为根据本发明的一些实施方案的用于在电解剖图上方渲染二次曲面的系统的示意图;

图2是根据本发明的一些实施方案的用于渲染二次曲面的方法的示意性概览;

图3是根据本发明的一些实施方案的用于渲染二次曲面的方法的各个方面的示意图;并且

图4是根据本发明的一些实施方案由处理器执行的渲染方法的流程图。

具体实施方式

概述

在本发明的实施方案中,构造了受试者的心脏的一部分的电解剖图,然后渲染在屏幕上。(此图通常通过由多个点构造的三维网眼体现,该多个点对应于在那测量电特性的相应位置。)然后可在电解剖图上渲染多个二次曲面。例如在消融规程期间和/或之后,已消融或正在消融的心脏组织的各部分可在屏幕上由相应的二次曲面标记,诸如球体或椭圆形。通常,该标记的分辨率较高,使得在一些情况下,可能必须在屏幕上渲染大量(例如,数万)二次曲面。

本发明的实施方案提供用于渲染二次曲面的改善方法和系统,使得大量二次曲面可迅速而准确地被渲染。例如,以下算法可用于渲染二次曲面中的每个:

(i)限定对角矩阵q,其代表参数空间(或“模型空间”)中的二次曲面,该参数空间以原点为中心并由在(-1,-1,-1)和(1,1,1)上有角部的立方体界定。例如,以(0,0,0)为中心的半径为1的单元球体由表示。

(ii)计算矩阵m,在乘以参数空间中具有齐次坐标的点后,该矩阵转化该点,使得点正确地位于虚拟场景内,该虚拟场景存在于“世界空间”中。矩阵m因此表示从参数空间到世界空间的转化。

(iii)给定矩阵v,其代表从世界空间到视图空间的转化,并给定矩阵p,其代表从视图空间到屏幕空间(其根据在其上渲染二次曲面的屏幕的坐标系限定)的透视投影或正射投影,计算矩阵t=pvm,其代表从参数空间到屏幕空间的转化。另外计算t的倒数t-1,t表示从屏幕空间到参数空间的转化。

(iv)在屏幕(即屏幕空间)上限定界定区域b,该界定区域包含可能在其中渲染二次曲面的所有像素。通常,b为界定矩形。(一些图形处理单元可能需要该界定矩形分为两个三角形)。由于二次曲面通过上述立方体界定在参数空间中,b可通过转化立方体的八个角部到屏幕空间然后寻找这些转化的角部的最小界定矩形来计算。

(v)为b中的每个像素执行以下步骤:

(v-a)通过矩阵p,计算d和o,其中o是穿过像素的光线的原点,并且d为该光线的方向矢量。(对于正射投影,o将在d恒定的情况下在像素之间变化)。(对于透视投影,d将在o恒定的情况下在像素之间变化)。然后通过将这些矢量中的每个乘以t-1将o和d转化到参数空间。转化的光线可表示为r'=o'+td',其中o'=t-1o,并且d'=t-1d。

(v-b)在参数空间中,寻找转化的光线与二次曲面相交的任何点x'。(如果光线没有和二次曲面相交,则移动到b中的下个像素。)如果存在多于一个交汇点,则选择光线首先碰到的点x'。另外,计算x'上二次曲面的法向量n'。

(v-c)通过将n'乘以衍生自v(n=mnn')的“正规矩阵”mn将n'转化到视图空间。

(v-d)根据点x'上二次曲面的着色以及转化的法向量n计算像素的着色。

(要注意可并行处理界定矩形b中的多个像素,如上所述。)

该算法的优势在于,如上所述,步骤(v-b)在参数空间中运算,其中二次曲面由对角矩阵q表示。由于q为对角矩阵,q可精简为矢量形式。例如,为以上假设的q假设符号,对角矩阵q可由矢量表示,qd为q的对角线。以这种方式表示q使得交汇点x'的计算更快。相比之下,步骤(v-b)在视图空间中运算,考虑到将q乘以m、v和/或其他任何转化的矩阵通常使得q不再为对角矩阵,计算速度将更慢。

更具体地讲,将转化的光线公式r'=o'+td'替代为二次曲面方程xtqx=0得到二次方程at2+bt+c=0,其中a=d'tqd'、b=2d'tqo'、并且c=o'tqo'。因此,要寻找光线与二次曲面的交点,则必须计算a、b、c,然后可通过求解上述二次方程的根来寻找交点。然而困难在于,a、b和c的计算可能涉及较大量的运算。例如qo'的计算(用于b和c的计算)包括计算q与o'的行中每个的内积,这涉及总共16次乘法运算以及12次加法运算。

本发明的实施方案解决了该困难,方法是求解参数空间中的交点,其中已知q为对角矩阵。考虑到q的对角性,qd可用于计算a、b和c,这使计算更快。例如,qo'的计算可通过执行qd与o'的元素级相乘来执行,这仅涉及四次乘法运算。

此外,由于q由在(-1,-1,-1)和(1,1,1)具有角部的立方体界定,各个运算可以更快速度执行。例如,如上所述,可以根据立方体的角部到屏幕上的投影较快地计算界定区域b。

本文所述的实施方案可例如应用于球体、椭圆体、圆柱体、圆锥体或双曲线体的渲染,其中的每个都可由对角矩阵q表示。本文描述的实施方案还可应用于渲染双曲线体,因为即使双曲线体并非可直接由对角矩阵表示,也可通过剪裁椭圆体获得双曲线体。剪裁也可用于在参数空间中的限制某些二次曲面(诸如圆柱体,这些圆柱体延伸至无穷大)至上述立方体。

尽管涉及二次曲面的渲染的本申请主要是在电解剖图的上下文中,要注意本文所述的实施方案可应用于任何合适的二次曲面渲染应用。

系统描述

首先参考图1,图1是根据本发明的一些实施方案的用于在电解剖图上渲染二次曲面的系统20的示意图。体现系统20的元件的一个商用产品是3系统,可购自biosensewebster,inc。该系统可由本领域的技术人员改造,以体现本文所述实施方案的原理。

图1示出了使用体内导管29在受试者25的心脏23上执行的消融手术。导管29包括远侧端部31,该远侧端部包括一个或多个消融电极,以及一个或多个跟踪传感器(例如电磁跟踪传感器),这些传感器跟踪远侧端部31的位置。在手术期间,随着医生27沿着心脏23的表面(例如内表面或心外膜表面)移动远程端部31,消融电极将消融信号传递到表面中。在手术进行期间,处理器(proc)28经由电接口35(包括例如端口或其他连接器)接收来自跟踪传感器的信号,这些信号指示远侧端部31的位置。处理器28在计算机存储器(mem)24中存储这些位置。

在消融手术期间和/或之后,处理器28从计算机存储器24接收心脏的表面的三维电解剖图30,然后在显示器26的屏幕38上渲染图30。如下文所详述,处理器还在图上渲染多个二次曲面32。通常,二次曲面中的每个在图的相应部分上渲染,该相应部分对应于手术期间远侧端部31的位置,如位置传感器所指示。例如,相应的二次曲面可标记导管的远侧端部消融了受试者组织的每个位置。换句话讲,响应于通过远侧端部31在相应位置处传递到心脏的表面中的消融信号,处理器可在对应于远侧端部31的相应位置的图的相应部分上渲染二次曲面。

如本文所述,图30上二次曲面的渲染可实时执行,以在手术期间和/或手术之后帮助引导医师,以便于进行手术后评估。

一般来讲,处理器28可体现为单个处理器或协作式联网或集群的处理器集。处理器28通常是编程化数字计算装置,该设备包括中央处理单元(cpu)、随机存取存储器(ram)、非易失辅助存储器诸如硬盘驱动器或光盘驱动器、网络接口和/或外围装置。如本领域所公知的,将包括了软件程序的程序代码和/或数据加载到ram中用于由cpu执行和处理,并且生成结果用于显示、输出、传输或存储。程序代码和/或数据可以电子形式例如经网络下载到处理器,或者,另选地或除此之外,程序代码和/或数据可提供和/或存储在诸如磁性存储器、光学存储器或电子存储器的非临时性有形介质上。此类程序代码和/或数据在提供给处理器之后,产生被配置成执行本文所述任务的机器或专用计算机。

现在参考图2,图2为根据本发明的一些实施方案的用于渲染二次曲面32的方法的示意性概览。

图2描绘了数个“空间”,每个空间根据相应的坐标系限定。这些空间中的数个为处理器28限定的虚拟空间。具体地讲:

(i)参数空间是虚拟三维空间,在其中要渲染的虚拟对象为单独限定的。

(ii)世界空间是虚拟三维空间,在其中参数空间中限定的对象被适当取向、调节大小并相对于虚拟场景中要渲染的其他对象放置。矩阵m通过旋转、缩放和/或转换这些对象,将对象从参数空间转化到世界空间。

(iii)视图空间是虚拟三维空间,在其中来自世界空间的虚拟场景在由虚拟光源43照明的同时通过位于摄像头位置c的虚拟摄像头成像。首先,根据从世界空间转化虚拟场景的转化矩阵v,将虚拟场景放置在摄像头的近平面np和摄像头的远平面fp之间(其所在位置可距离摄像头无穷远)。然后,处理器通过根据投影矩阵p将场景投影到近平面np上,使虚拟摄像头将虚拟场景成像。

在现实中,虚拟摄像头的近平面np由屏幕38表示;换句话讲,根据视图空间中虚拟摄像头的视图在屏幕38上渲染虚拟场景。属于屏幕38的像素的坐标根据二维屏幕空间限定。上述投影矩阵p在屏幕空间中确定渲染视图空间中对象的位置,并确定所渲染对象的尺寸和方向。(因此,可以说投影矩阵p代表从视图空间到屏幕空间的转化,如上在概述中所述。)用来渲染对象的颜色由对象的“客观”颜色(该颜色通常在参数空间中限定)、虚拟光源43的相关属性(例如虚拟光源的位置和强度)以及对象的法向量n确定,该法向量影响虚拟光源照明对象的方式。

根据下文所述的特定光线投射技术,对象到近平面np(并因此到屏幕)的投影通过传递多条虚拟光线穿过近平面(或换句话讲,穿过屏幕)来完成。这些虚拟光线中的每条具有与摄像头位置c重合的光线原点,以及光线方向矢量,这二者各自衍生自投影矩阵p。由于虚拟光线和虚拟场景中的对象重合,对象被投影到近平面上,因此被渲染在屏幕上。

图2示出了具体示例,处理器由此在参数空间中限定二次曲面32,将二次曲面转化到世界空间,使得二次曲面放置在电解剖图30上,在视图空间中将图30和二次曲面32成像,并最终在屏幕上渲染图30和二次曲面32。该过程的各个方面更为详细地在紧邻的下文参考图3进行描述。

现在参考图3,其为根据本发明的一些实施方案的用于渲染二次曲面的方法的各个方面的示意图。

如上参考图2所述,处理器先在参数空间中限定二次曲面32,该二次曲面根据(x,y,z)坐标系限定。如上在概述中所述,二次曲面通常被限定为使得其由具有八个角部36的立方体34界定,其中两个角部分别位于(-1,-1,-1)和(1,1,1)。如上在概述中进一步所述,二次曲面通常被限定为使得其可由4x4对角矩阵q表示。例如,如图3中所示,处理器可限定以原点为中心的半径为1的球体,该球体可由对角矩阵表示。除了限定二次曲面的形状和尺寸,处理器还限定二次曲面的着色。例如,处理器可让二次曲面均匀着色。(通常,二次曲面根据存储在存储器24中的值和/或根据来自用户的相关输入限定。)

如图3中进一步所示,显示器26包括屏幕38,该屏幕包括多个像素,这些像素中的每个在屏幕的屏幕空间中具有(x,y)坐标。要在屏幕38上渲染二次曲面32,处理器先在屏幕上(即屏幕空间中)限定界定区40。(一般来讲,限定的界定区域未显示在屏幕上。)如在概述中所述,要限定界定区域40,处理器通常先将立方体的角部36转化到屏幕空间。这在图3中为角部36中的一个示出,由此矩阵t在乘以角部的参数空间坐标以后,将角部转化为屏幕空间中新的(x,y)坐标,在图3中该新坐标由转化的角部42指示。在将角部36中的每个这样转化到屏幕空间之后,处理器限定界定区域40,使得界定区域为转化的角部42的最小界定矩形。

接下来,如图3的下部所示,处理器在界定区域40中的每个像素44上迭代,并且如果适当,将像素作为二次曲面的一部分渲染。具体而言,对于每个像素44,处理器先从屏幕空间到参数空间转化穿过像素的虚拟光线r。如上在概述中并参考图2所述,虚拟光线r具有光线原点o,该光线原点位于屏幕前方(在视图空间中虚拟摄像头的位置),并具有光线方向矢量d,该方向矢量描述了虚拟光线进入屏幕的方向。(如上所述,虚拟光线由此通过公式r=o+td描述。)处理器通过计算o'以及d'转化该虚拟光线,其中o'为转化到参数空间的光线原点o,d'为转化到参数空间的光线方向矢量d。为了计算o'和d',处理器将o和d分别乘以转化矩阵t的倒数t-1

虚拟光线的转化得到参数空间中转化的虚拟光线r',由公式r'=o'+td'描述。在该转化后,处理器确定转化的虚拟光线和二次曲面之间的交汇点是否存在于参数空间中,确定方式为尝试计算转化的虚拟光线r'和二次曲面32之间的交汇点x'。换句话讲,处理器尝试确定参数空间中的点x',转化的虚拟光线在该点碰到二次曲面。如果此交汇点x'存在,则处理器基于交汇点x'的属性在屏幕38上渲染像素44,如下文进一步所述,这些属性诸如点x'上二次曲面的颜色以及二次曲面的法线。

如上在概述中所述,在处理器在参数空间中执行该计算的情况下,交汇点x'的计算较快。例如,处理器可迅速地计算系数a=d'tqd'、b=2d'tqo'和c=o'tqo'中的每个,计算方式为将q表示为四元素矢量qd,然后执行qd的元素级乘法。然后处理器可通过公式at2+bt+c=0求解参数t。将该解(或“根”)写为tr,然后可根据o'+trd'计算交汇点x。(通常,公式at2+bt+c=0将具有两个正根,表明虚拟光线在两个点与二次曲面相交。在这种情况下,处理器选择更接近光线原点的交汇点。)

例如,处理器可通过表示单位球体,其为单位球体的矩阵q的对角线。然后假设处理器可通过执行qd与d'的元素级相乘来计算第一系数,从而得到矢量然后将该矢量左乘d't,得到dx2+dy2+dz2-dw2。同样,对于第二个系数b和第三个系数c,处理器可执行qd与o'元素级相乘,从而得到矢量然后将该矢量分别左乘2d't与o't。然后处理器可如上所述求解公式at2+bt+c=0。

通常,连同计算交汇点x',处理器计算交汇点处二次曲面的法向量n'。然后,在计算交汇点x'和相应的法向量n'后,处理器通过将n'左乘vm将法向量n'转化到视图空间,从而得到转化的法向量n。然后处理器根据二次曲面在交汇点x'的着色以及转化的法向量n(如上参考图2所述,其影响着光从虚拟光源交互二次曲面的方式)渲染像素44。

现在参考图4,其为根据本发明的一些实施方案的处理器28所执行的渲染方法46的流程图。(一般来讲,方法46的各个步骤已经在上文描述,但又参考图4进行了简短的介绍。)

首先,在二次曲面限定步骤48处,处理器限定将在参数空间中渲染的二次曲面。接下来,在界定区域限定步骤50处,处理器在屏幕空间中限定合适的界定区域。该界定区域通常为可在合理的时间内计算并且包含可能与二次曲面的一部分对应的所有像素的最小区域。例如,如上参考图3所述,可将界定区域计算为转化的立方体角部的最小界定矩形,该立方体在参数空间中包含二次曲面。

接下来,处理器开始在界定区域中的所有像素上迭代。在每次迭代开始的时候,在像素选择步骤52处,处理器选择尚未处理的像素。接下来,在光线转化步骤54处,处理器将穿过所选像素的虚拟光线转化到参数空间。然后,在交汇点计算步骤56处,处理器尝试计算转化的虚拟光线和二次曲面之间的交汇点。例如,如上在概述中并参考图3所述,处理器可求解公式at2+bt+c=0的根。接下来,在第一检查步骤58处,处理器检查尝试是否成功,即交汇点是否实际存在。如果是,处理器继续下面所述的步骤。否则(例如,如果at2+bt+c=0仅具有虚根),处理器不将所选像素作为二次曲面的一部分渲染,而是在像素选择步骤52选择界定区域中的下个像素。

在交汇点的计算之后(或与该计算一起),处理器在法线计算步骤60计算交汇点处二次曲面的法线。接下来,在法线转变步骤62处,处理器将法线转化到视图空间。最后,在渲染步骤64处,处理器基于交汇点处转化的法线以及二次曲面的着色渲染所选像素。

在像素的渲染后,处理器在第二检查步骤66检查是否有更多未处理的像素保留在界定区域中。如果是,处理器处理下个像素。否则,方法46结束。(但如果要渲染另外的二次曲面,可为另外的二次曲面中的每个重复方法46。)

如上在概述中所述,在一些实施方案中,并行处理界定区域中的多个像素。例如,可并行处理界定区域中的所有像素,使得像素选择步骤52通过处理器所执行的每个线程执行不超过一次,并且第二个检查步骤不一定会执行。

本领域技术人员应当理解,本发明不限于上文具体示出和描述的内容。相反,本发明实施方案的范围包括上文所述各种特征的组合与子组合两者,以及本领域的技术人员在阅读上述说明书时可能想到的未在现有技术范围内的变型和修改。以引用方式并入本专利申请的文献被视为本专利申请的整体部分,但是如果这些并入的文献中限定的任何术语与本说明书中明确或隐含地给出的限定相冲突,则应只考虑本说明书中的限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1