一种基于不等尺寸分块的海量数据并行体绘制方法与流程

文档序号:17794115发布日期:2019-05-31 20:37阅读:203来源:国知局
一种基于不等尺寸分块的海量数据并行体绘制方法与流程

本发明是关于一种基于不等尺寸分块的海量数据并行体绘制方法,属于海量标量场数据处理及可视化领域。



背景技术:

基于图形硬件的直接三维体数据可视化方法最早是于1993年提出的,其中论证了交互式体数据重建和体绘制算法通过硬件提供的3d纹理实现加速的可行性。但是,这些方法均只能够在大型的图形工作站上实现,成本过高。随着消费级的图形处理器的高速发展,越来越多的体绘制研究转向基于图形处理器的领域。

研究人员将早期光线终止、空体素的跳过方法应用于基于gpu(图形处理器)的体绘制中,进一步提高了绘制速度。然而,这些经典的基于光线投射的体绘制算法在绘制时需要将原始体数据全部装入内存,而在面向海量数据的情况下,目前的硬件水平还无法实现。于是,针对海量数据体绘制算法的相关研究,研究人员提出了一种方法,将两张slab(切片)构成一个slab,将按光线计算的顺序改为按切片计算,避免投射光线时对原始数据场的随机访问,从而可以在不将所有切片导入内存的情况下进行高效的光线投射体绘制,以及提出一种自适应超采样方法对原始数据作更细致的采样。现有技术公开了一种半自适应分块的方法对原始数据进行分块,不但没有影响分块速度,且得到了很好的分块效果,并进一步使用图形硬件加速算法,运用纹理分块映射,通过层次八叉树编码细分体纹理,然后通过映射信息剔除空数据块,完成实时交互绘制。

上述这些基于分块的硬件体绘制算法虽然取得了一定的效果,但并未考虑分块与视点之间的位置关系,即在已知视点位置下,分块与分块之间存在潜在的并行关系,且现有技术中还没有用于处理自适应或半自适应分块处理后的三维标量场数据,实现快速体绘制的基于不等尺寸分块的海量数据并行体绘制方法。



技术实现要素:

针对上述问题,本发明的目的是提供一种能够实现快速体绘制的针对自适应或半自适应分块处理后三维标量场数据的基于不等尺寸分块的海量数据并行体绘制方法。

为实现上述目的,本发明采取以下技术方案:一种基于不等尺寸分块的海量数据并行体绘制方法,其特征在于,包括以下步骤:1)遍历采用自适应或半自适应分块处理后三维标量场数据中的不等尺寸分块,建立不等尺寸分块之间的相邻关系;2)根据三维标量场数据体绘制的传递函数、当前视点位置和不等尺寸分块之间的相邻关系,遍历不等尺寸分块中的非空分块,绘制三维标量场数据中非空分块的全局遮挡关系图;3)对绘制的全局遮挡关系图进行拓扑排序,得到三维标量场数据中非空分块的并行分组队列;4)依次对并行分组队列中每一并行分组的非空分块进行并行体绘制渲染,得到三维标量场数据的并行体绘制渲染结果;5)判断是否结束体绘制过程,若结束,则输出本次三维标量场数据的并行体绘制渲染结果;若不结束,则进入步骤2),重新绘制非空分块的全局遮挡关系图,直至得到新的三维标量场数据的并行体绘制渲染结果。

进一步地,所述步骤1)的具体过程为:1.1)建立采用自适应或半自适应分块处理后三维标量场数据中不等尺寸分块的数据结构,并获取不等尺寸分块的空间位置和分块编号;1.2)对于每一不等尺寸分块,根据建立的数据结构,顺序遍历所有其他不等尺寸分块,建立不等尺寸分块之间的相邻关系;1.3)根据不等尺寸分块之间的相邻关系,将所有不等尺寸分块的相邻块节点编号数组存入三维标量场数据中不等尺寸分块的数据结构。

进一步地,所述不等尺寸分块的数据结构包括外存中的数据文件序号、分块尺寸、分块的包围盒和分块包围盒6个面上的相邻块节点编号。

进一步地,所述步骤1.2)的具体过程为:两个不等尺寸分块的相邻关系判断准则包括:假设当前不等尺寸分块为b,其6个边界值分别为b.bound[i],其中,i表示边界编号,编号顺序为左右下上前后;如果有不等尺寸分块b′,其边界值满足:

b.bound[2]<b′.bound[3]andb.bound[3]>b′.bound[2]

b.bound[4]<b′.bound[5]andb.bound[5]>b′.bound[4]

b.bound[1]-b′.bound[0]<1

则不等尺寸分块b′是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的左边界,则将不等尺寸分块b′的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[0]中;如果有不等尺寸分块b′,其边界值满足:

b.bound[2]<b′.bound[3]andb.bound[3]>b′.bound[2]

b.bound[4]<b′.bound[5]andb.bound[5]>b′.bound[4]

b′.bound[0]-b.bound[1]<1

则不等尺寸分块b′是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的右边界,则将不等尺寸分块b′的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[1]中;如果有不等尺寸分块b′,其边界值满足:

b.bound[0]<b′.bound[1]andb.bound[1]>b′.bound[0]

b.bound[4]<b′.bound[5]andb.bound[5]>b′.bound[4]

b.bound[2]-b′.bound[3]<1

则不等尺寸分块b′是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的下边界,则将不等尺寸分块b′的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[2]中;如果有不等尺寸分块b′,其边界值满足:

b.bound[0]<b′.bound[1]andb.bound[1]>b′.bound[0]

b.bound[4]<b′.bound[5]andb.bound[5]>b′.bound[4]

b′.bound[2]-b.bound[3]<1

则不等尺寸分块b′是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的上边界,则将不等尺寸分块b′的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[3]中;如果有不等尺寸分块b′,其边界值满足:

b.bound[0]<b′.bound[1]andb.bound[1]>b′.bound[0]

b.bound[2]<b′.bound[3]andb·bound[3]>b′.bound[2]

b′.bound[4]-b.bound[5]<1

则不等尺寸分块b′是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的前边界,则将不等尺寸分块b′的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[4]中;如果有不等尺寸分块b′,其边界值满足:

b.bound[0]<b′.bound[1]andb.bound[1]>b′.bound[0]

b.bound[2]<b′.bound[3]andb.bound[3]>b′.bound[2]

b.bound[4]-b′.bound[5]<1

则不等尺寸分块b′是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的后边界,则将不等尺寸分块b′的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[5]中;依次判断不等尺寸分块b′是否与不等尺寸分块b的6个边界面相邻,若不等尺寸分块b′与不等尺寸分块b在某一边界面相邻,则跳过剩下边界面的判断过程,直接将不等尺寸分块b′的编号放入不等尺寸分块b该边界面的相邻块节点编号数组中。

进一步地,所述步骤2)的具体过程为:2.1)将不等尺寸分块划分为空分块和非空分块两类;2.2)判断三维标量场数据体绘制的传递函数是否改变,若传递函数没有改变,则直接进入步骤2.3);若传递函数改变,则重新对不等尺寸分块的空分块和非空分块进行划分,进入步骤2.3);2.3)判断当前视点位置是否改变,若改变,则进入步骤2.4);若没有改变,则进入步骤4);2.4)根据当前视点位置和不等尺寸分块之间的相邻关系,遍历不等尺寸分块中的非空分块,绘制三维标量场数据中非空分块的全局遮挡关系图。

进一步地,所述步骤2.4)的具体过程为:2.4.1)任取一个未访问的非空分块b0,在全局遮挡关系图中建立一个对应结点,并将其加入队列;2.4.2)判断队列是否为空,是则进入步骤2.4.7),否则进入步骤2.4.3);2.4.3)从队列中取出非空分块b,依次检查非空分块b的6个边界面,若有边界面未访问,则进入步骤2.4.4);若没有边界面未访问,则进入步骤2.4.2);2.4.4)检查与非空分块b的未访问边界面邻接的所有非空分块,若还有未访问的非空分块,则进入步骤2.4.5);若没有未访问的非空分块,则进入步骤2.4.3);2.4.5)取出与非空分块b的未访问边界面邻接的未访问非空分块bi,并将其加入队列;2.4.6)标记非空分块bi为“已访问”,在全局遮挡关系图中创建一个对应非空分块bi的结点,并根据当前视点位置,判断非空分块bi与非空分块b之间的遮挡关系,若非空分块b遮挡非空分块bi,则在全局遮挡关系图中创建一条非空分块b到非空分块bi的边;若非空分块b没有遮挡非空分块bi,则在全局遮挡关系图中创建一条非空分块bi到非空分块b的边;2.4.7)判断是否还有未访问的非空分块,若还有未访问的非空分块,则进入步骤2.4.1);若没有未访问的非空分块,则完成全局遮挡关系图的绘制,进入步骤4)。

进一步地,判断非空分块间遮挡关系的准则为:从当前视点到当前非空分块1的中心构成向量i1,垂直于非空分块1与非空分块2的接触面且指向非空分块2的向量为i2;当i1·i2>0时,非空分块1遮挡非空分块2;否则,非空分块1不遮挡非空分块2。

进一步地,所述步骤3)的具体过程为:3.1)判断全局遮挡关系图中是否有入度为0的结点,若有入度为0的结点,则进入步骤3.2);若没有入度为0的结点,则输出当前并行分组,进入步骤3.3);3.2)从全局遮挡关系图中取出当前入度为0的结点加入当前并行分组中,进入步骤3.1);3.3)将当前并行分组加入并行分组队列中,将当前并行分组中的结点在全局遮挡关系图中指向的结点入度减1,并将当前并行分组中的结点从全局遮挡关系图中删除,进入步骤3.4);3.4)判断全局遮挡关系图中是否还有没加入并行分组队列的剩余结点,若没有剩余结点,则得到三维标量场数据中非空分块的并行分组队列,进入步骤4);若还有剩余结点,则进入步骤3.1)。

进一步地,所述步骤4)的具体过程为:4.1)创建一个固定大小的三维纹理缓存,将三维纹理划分为等尺寸的若干子三维纹理,每一子三维纹理的尺寸均为对应并行分组内n个非空分块的最大宽度、高度和深度;4.2)获取每一并行分组内n个非空分块的体数据,放入对应子三维纹理中;4.3)采用改进的光线投射法,将三维纹理传入片段着色器中,依次对并行分组队列r中每一并行分组p的非空分块进行并行体绘制渲染,得到三维标量场数据的并行体绘制渲染结果。

进一步地,所述步骤4.3)的具体过程为:4.3.1)绘制当前并行分组中n个非空分块的后表面,得到每一非空分块的光线出点,将其作为三通道颜色值记录在一二维纹理中,同时,将每一非空分块的分块编号作为颜色值写入另一二维纹理中;4.3.2)绘制当前并行分组中n个非空分块的前表面,在片段着色器中并行处理每一条光线,根据当前片段着色器处理的光线入点在最终投影图像中的位置,访问两个二维纹理,得到当前片段着色器处理的光线出点和非空分块的分块编号;4.3.3)根据非空分块的分块编号,在包含当前并行分组中n个非空分块的子三维纹理中找到当前光线所在非空分块的位置,得到当前光线对应的分块数据场;4.3.4)根据当前光线对应的分块数据场,从当前非空分块的光线入点和光线出点之间按照预设的步长进行采样,并获取每一采样点的颜色值与不透明度值;4.3.5)采用改进的采样合成公式,根据每一采样点的颜色值与不透明度值,依次对并行分组队列中每一并行分组的非空分块进行并行体绘制渲染,得到三维标量场数据的并行体绘制渲染结果,其中,所述改进的采样合成公式为:

cn+1=cn+rn*α(sn)*c(sn)

其中,αn+1和cn+1分别表示累加合成的不透明度和颜色值;α(sn)和c(sn)分别表示光线sn处采样所得三维纹理的不透明度和颜色值;rn表示剩余不透明度,且rn=1-α(sn)。

本发明由于采取以上技术方案,其具有以下优点:1、本发明针对采用自适应或半自适应分块处理后的三维标量场数据中的不等尺寸分块,相比于统一尺寸的分块可以去除更多的空体素区域,绘制效率有所提升。2、本发明通过同时对多个分块进行并行渲染,能够加速三维标量场数据的渲染过程,可以实现对整个三维标量场数据的快速体绘制渲染,保证在对原始的海量三维标量场数据进行全尺寸高分辨率体绘制渲染的基础上,面对各种不同的分块策略均能够极大地提高体绘制渲染的整体效率,可以广泛应用于海量标量场数据处理及可视化领域中。

附图说明

图1是本发明方法的流程图;

图2是本发明方法中建立全局遮挡关系图的流程图;

图3是本发明方法中在当前视点位置下的相邻分块遮挡关系判断示意图;

图4是本发明方法中对全局遮挡关系图进行拓扑排序后非空分块的并行分组示意图;

图5是本发明实施例中对实际医学影像数据实施的体绘制结果示意图,其中,图5(a)为关闭光照效果的体绘制结果示意图,图5(b)为打开光照效果的体绘制结果示意图。

具体实施方式

以下结合附图来对本发明进行详细的描绘。然而应当理解,附图的提供仅为了更好地理解本发明,它们不应该理解成对本发明的限制。

如图1所示,本发明提供的基于不等尺寸分块的海量数据并行体绘制方法,包括以下步骤:

1)遍历采用自适应或半自适应分块处理后三维标量场数据中的不等尺寸分块,建立不等尺寸分块之间的相邻关系,具体为:

1.1)建立采用自适应或半自适应分块处理后三维标量场数据中不等尺寸分块的数据结构,并获取不等尺寸分块的空间位置和分块编号等信息,其中,数据结构为原始数据场经过自适应或半自适应分块处理后每分块数据信息在内存中的存储结构,包括外存(磁盘)中的数据文件序号、分块尺寸(长、宽、高三个方向的采样点数)、分块的包围盒(包含xyz三个方向的最小最大坐标)和分块包围盒6个面上的相邻块节点编号。

1.2)对于每一不等尺寸分块,根据建立的数据结构,顺序遍历所有其他不等尺寸分块,建立不等尺寸分块之间的相邻关系。

两个不等尺寸分块的相邻关系判断准则如下:

假设当前不等尺寸分块为b,其6个边界值分别为b.bound[i](i∈[0,5]),其中,i表示边界编号,编号顺序为左右(坐标轴x方向)下上(坐标轴y方向)前后(坐标轴z方向),即左边界为bound[0],右边界为bound[1],以此类推。

如果有不等尺寸分块b',其边界值满足:

则不等尺寸分块b'是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的左边界(x轴方向),则将不等尺寸分块b'的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[0]中。

如果有不等尺寸分块b',其边界值满足:

则不等尺寸分块b'是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的右边界(x轴方向),则将不等尺寸分块b'的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[1]中。

如果有不等尺寸分块b',其边界值满足:

则不等尺寸分块b'是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的下边界(y轴方向),则将不等尺寸分块b'的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[2]中。

如果有不等尺寸分块b',其边界值满足:

则不等尺寸分块b'是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的上边界(y轴方向),则将不等尺寸分块b'的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[3]中。

如果有不等尺寸分块b',其边界值满足:

则不等尺寸分块b'是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的前边界(z轴方向),则将不等尺寸分块b'的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[4]中。

如果有不等尺寸分块b',其边界值满足:

则不等尺寸分块b'是不等尺寸分块b的相邻不等尺寸分块,其接触面为不等尺寸分块b的后边界(z轴方向),则将不等尺寸分块b'的编号放入不等尺寸分块b左边界面的相邻块节点编号数组b.adjnode[5]中。

依次判断不等尺寸分块b'是否与不等尺寸分块b的6个边界面相邻,若不等尺寸分块b'与不等尺寸分块b在某一边界面相邻,则跳过剩下边界面的判断过程,直接将不等尺寸分块b'的编号放入不等尺寸分块b该边界面的相邻块节点编号数组中。

1.3)根据不等尺寸分块之间的相邻关系,将所有不等尺寸分块的相邻块节点编号数组存入三维标量场数据中不等尺寸分块的数据结构。

2)根据三维标量场数据体绘制的传递函数、当前视点位置和不等尺寸分块之间的相邻关系,遍历不等尺寸分块中的非空分块,绘制三维标量场数据中非空分块的全局遮挡关系图,具体为:

2.1)将不等尺寸分块划分为空分块和非空分块两类。

2.2)判断三维标量场数据体绘制的传递函数是否改变,若传递函数没有改变,则直接进入步骤2.3);若传递函数改变,则重新对不等尺寸分块的空分块和非空分块进行划分,进入步骤2.3)。

传递函数是体绘制的一个概念,它将体数据场(标量场)中每一采样点的标量值映射为不透明度和颜色,如果某一个数据块中所有采样点经过传递函数映射,其不透明度均为0,则可以认为该数据块是完全透明的(不可见),即对绘制结果不会产生任何贡献,所以不需要处理,这里将其称之为“空块”;除此之外的其他数据块则称为“非空分块”。因为“空块”与“非空分块”的分类与体绘制的传递函数有关,所以一旦传递函数发生变化,就需要重新进行不等尺寸分块的分类过程。

2.3)判断当前视点位置是否改变,若改变,则进入步骤2.4);若没有改变,则进入步骤4)。

2.4)如图2所示,根据当前视点位置和不等尺寸分块之间的相邻关系,遍历不等尺寸分块中的非空分块,绘制三维标量场数据中非空分块的全局遮挡关系图,具体为:

2.4.1)任取一个未访问的非空分块b0,在全局遮挡关系图g中建立一个对应结点,并将其加入队列q,即每一非空分块均对应一个结点。

2.4.2)判断队列q是否为空,是则进入步骤2.4.7),否则进入步骤2.4.3)。

2.4.3)从队列中取出非空分块b,依次检查非空分块b的6个边界面,若有边界面未访问,则进入步骤2.4.4);若没有边界面未访问,则进入步骤2.4.2)。

2.4.4)检查与非空分块b的未访问边界面f邻接的所有非空分块,若还有未访问的非空分块,则进入步骤2.4.5);若没有未访问的非空分块,则进入步骤2.4.3)。

2.4.5)取出与非空分块b的未访问边界面f邻接的未访问非空分块bi,并将其加入队列q。

2.4.6)标记非空分块bi为“已访问”,在全局遮挡关系图g中创建一个对应非空分块bi的结点,并根据当前视点位置,判断非空分块bi与非空分块b之间的遮挡关系,若非空分块b遮挡非空分块bi,则在全局遮挡关系图g中创建一条非空分块b到非空分块bi的边;若非空分块b没有遮挡非空分块bi,则在全局遮挡关系图g中创建一条非空分块bi到非空分块b的边。

如图3所示,判断非空分块之间遮挡关系的准则为:

从当前视点v到当前非空分块1的中心构成向量i1,垂直于非空分块1与非空分块2的接触面且指向非空分块2的向量为i2,当i1·i2>0时,认为非空分块1遮挡非空分块2;否则,认为非空分块1不遮挡非空分块2。图3中在当前视点位置下,非空分块1遮挡非空分块3而不遮挡非空分块2。

2.4.7)判断是否还有未访问的非空分块,若还有未访问的非空分块,则进入步骤2.4.1);若没有未访问的非空分块,则完成全局遮挡关系图g的绘制,进入步骤4)。

3)对绘制的全局遮挡关系图进行拓扑排序,得到三维标量场数据中非空分块的并行分组队列,如图4所示,具体为:

3.1)判断全局遮挡关系图g中是否有入度为0的结点,若有入度为0的结点,则进入步骤3.2);若没有入度为0的结点,则输出当前并行分组p,进入步骤3.3)。

3.2)从全局遮挡关系图g中取出当前入度为0的结点加入当前并行分组p中,进入步骤3.1)。

3.3)将当前并行分组p加入并行分组队列r中,将当前并行分组p中的结点在全局遮挡关系图g中指向的结点入度减1,并将当前并行分组p中的结点从全局遮挡关系图g中删除,进入步骤3.4)。

3.4)判断全局遮挡关系图g中是否还有没加入并行分组队列的剩余结点,若没有剩余结点,则得到三维标量场数据中非空分块的并行分组队列,进入步骤4);若还有剩余结点,则进入步骤3.1)。

4)依次对并行分组队列r中每一并行分组p的非空分块进行并行体绘制渲染,得到三维标量场数据的并行体绘制渲染结果,具体为:

4.1)创建一个固定大小的三维纹理缓存,为一次绘制更多的非空分块,将三维纹理划分为等尺寸的若干子三维纹理,每一子三维纹理的尺寸均为对应并行分组p内n个非空分块的最大宽度、高度和深度。

4.2)获取每一并行分组内n个非空分块的体数据,放入对应子三维纹理中(若三维纹理的尺寸不够放入n个非空分块,则先渲染一个三维纹理尺寸的非空分块)。

4.3)采用改进的光线投射法,将三维纹理传入片段着色器中,依次对并行分组队列r中每一并行分组p的非空分块进行并行体绘制渲染,得到三维标量场数据的并行体绘制渲染结果。

传统的光线投射法主要是分别绘制体数据包围盒的前表面(6个边界面中朝向观察者可以被看到的边界面)和后表面(6个边界面中背向观察者不能被看到的边界面),得到光线的入点(进入体数据场的点)和出点(离开体数据场的点),进一步得到光线在体数据场内前进的方向与长度,然后在片段着色器中推进光线,本发明对传统的光线投射法进行改进,得到改进的光线投射法,并采用改进的光线投射法,依次对每一并行分组中的非空分块进行并行体绘制渲染:

4.3.1)绘制当前并行分组p中n个非空分块的后表面,得到每一非空分块的光线出点,将其作为三通道颜色值(对应三维点坐标)记录在一二维纹理t1中,同时,将每一非空分块的分块编号作为颜色值写入另一二维纹理t2中。

4.3.2)绘制当前并行分组p中n个非空分块的前表面,在片段着色器中并行处理每一条光线,当前片段着色器处理的片段颜色即为所处理的光线入点,根据光线入点在帧缓存(最终投影图像)中的位置,访问二维纹理t1和t2,得到当前片段着色器处理的光线出点和非空分块的分块编号。

4.3.3)根据非空分块的分块编号,在包含当前并行分组p中n个非空分块的子三维纹理中找到当前光线所在非空分块的位置,得到当前光线对应的分块数据场。

4.3.4)在分块数据场中投射光线,即根据当前光线对应的分块数据场,从当前非空分块的光线入点和光线出点之间按照预设的步长进行采样,并获取每一采样点的颜色值与不透明度值;

4.3.5)采用改进的采样合成公式,根据每一采样点的颜色值与不透明度值,依次对并行分组队列r中每一并行分组p的非空分块进行并行体绘制渲染,得到三维标量场数据的并行体绘制渲染结果。

由于每次绘制多个非空分块,绘制结果与所有待绘制的分块数据有关,在每一非空分块绘制后不能马上将非空分块作为像素值输出,需要对像素值进行保留,因此需要改进采样合成公式,具体为每次渲染一个非空分块后记录非空分块的“剩余不透明度”,将非空分块的“剩余不透明度”按照改进的采样合成公式与当前缓存中对应的像素点进行混合,同时将“剩余不透明度”传递至后续非空分块进行绘制,其中,改进的采样合成公式为:

cn+1=cn+rn*α(sn)*c(sn)(7)

其中,αn+1和cn+1分别表示累加合成的不透明度和颜色值;α(sn)和c(sn)分别表示光线sn处采样所得三维纹理的不透明度和颜色值;rn表示剩余不透明度,且rn=1-α(sn),存放于临时的二维纹理中,以减少片段着色器进行合成时的计算量,提高体绘制的速度。

5)判断是否结束体绘制过程,若结束,则输出本次三维标量场数据的并行体绘制渲染结果;若不结束,则进入步骤2.2),重新对不等尺寸分块的空分块和非空分块进行划分,进而重新绘制非空分块的全局遮挡关系图,直至得到新的三维标量场数据的并行体绘制渲染结果。是否结束体绘制过程是根据用户的决定进行的,若用户决定结束体绘制过程,则直接输出本次三维标量场数据的并行体绘制渲染结果,若用户决定不结束体绘制过程,则将重复体绘制过程,一遍一遍地进行并行体绘制渲染。

为验证本发明方法的有效性和实用性,下面通过具体实施例详细说明本发明的基于不等尺寸分块的海量数据并行体绘制方法:

下表1对比了现有技术中面向等尺寸分块的海量数据并行体绘制方法(a1)与本发明方法(a2)在不同大小的三维标量场数据集d1、d2、d3下的绘制速度,其中,d1的尺寸为208×256×225×8bit(11.43mb),d2的尺寸为512×512×1714×16bit(857mb),d3的尺寸为3000×2400×1900×16bit(24.48gb)。其中,以d2为例采用本发明方法得到的三维可视化体绘制结果如图5所示:

表1:两种体绘制方法速度对比

可以看出,本发明的方法不仅可以处理基于自适应或半自适应分块产生的不等尺寸分块数据,并且在各种大小的标量场数据集上绘制速度都要优于目前最快的面向等尺寸分块的并行体绘制方法。

上述各实施例仅用于说明本发明,其中各部件的结构、连接方式和制作工艺等都是可以有所变化的,凡是在本发明技术方案的基础上进行的等同变换和改进,均不应排除在本发明的保护范围之外。

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