CN109492069B - 一种基于射线计算单元的移动立方体并行计算方法及系统 - Google Patents
一种基于射线计算单元的移动立方体并行计算方法及系统 Download PDFInfo
- Publication number
- CN109492069B CN109492069B CN201811302909.7A CN201811302909A CN109492069B CN 109492069 B CN109492069 B CN 109492069B CN 201811302909 A CN201811302909 A CN 201811302909A CN 109492069 B CN109492069 B CN 109492069B
- Authority
- CN
- China
- Prior art keywords
- data
- cube
- marked
- scalar field
- ray
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种基于射线计算单元的移动立方体并行计算方法及系统,本发明将立方体体素边上的等值点位置计算的基本计算单元从整个立方体体素改变为立方体的一个顶点及其发出的三条射线,并通过并行编程,实现了快速提取三维标量场体数据的等值面。本发明有效的解决了现有移动立方体算法所存在的冗余计算问题,能为三维标量场体数据快速有效地提取等值面,以适应大规模三维标量场的空间分析,实现三维标量场体数据的可视化表达,为高性能三维计算提供支持。
Description
技术领域
本发明涉及高性能计算技术领域,尤其涉及一种三维标量场体数据等值面生成的高性能并行计算方法及系统。
背景技术
科学计算可视化是计算机图形学研究领域中一个非常活跃的课题,被广泛应用于医学检查、空间科学探测、地质勘探、地理信息分析、流体力学、分子模型构造、有限元分析等领域,许多数据场中的可视化都可以归纳为等值面的提取和绘制,移动立方体算法就是一种典型的等值面提取方法。在地理信息分析领域,三维标量场体数据的可视化有助于地理分析计算,但由于移动立方体算法本身缺少对矢量信息的提取,且地理计算的数据规模较大,使得传统的移动立方体算法难以快速有效地表达地理三维空间数据。
现有移动立方体算法以立方体体素为基本计算单元提取等值面,一条立方体的边由其相邻四个立方体体素所共同拥有,因此每条边上的等值点位置会重复计算四次,造成冗余计算。
发明内容
本发明针对现有技术中所存在的冗余计算问题,提供一种基于射线计算单元的移动立方体并行计算方法及系统,该算法对立方体体素的每条边仅进行一次计算,解决了冗余计算问题,能为三维标量场体数据快速有效地提取等值面,以适应大规模三维标量场的空间分析,实现三维标量场体数据的可视化表达,为高性能三维计算提供支持。
本发明解决其技术问题所采用的技术方案是:构造一种基于射线计算单元的移动立方体并行计算方法,包括以下步骤:
(1)由主进程读取三维标量场的元数据并发送给各从进程;
(2)各从进程接收到元数据后,并行读取三维标量场体数据并发送给主进程;其中,每个从进程分别读取三维标量场体数据中的不同部分;
(3)主进程将所有从进程发送来的数据所形成的整个标量场按照用户设置的任务数量将整个标量场分割为多个数据块,每个数据块包含若干体数据层,然后根据任务请求每次向各从进程发送一个分割后形成的标量场体数据块;
(4)各从进程接收到分割后形成的标量场体数据块后,分别将标量场体数据层中的立方体体素的顶点与等值点进行对比生成立方体的查找索引,对照查找表标记出等值点所在的立方体边的端点;
(5)各从进程将标记好的数据分别传递回主进程对标量场的分割边缘标记值进行统一,再由主进程将统一后的与各个所述标记好的数据对应的体数据层分别分配给各从进程;
(6)各从进程接收到统一后的体数据层后,分别以立方体的一点及该点发出的三条射线为计算单元进行多线程计算,根据射线端点及沿射线方向相邻端点的坐标值计算等值点的坐标,并根据所得坐标计算出三角形面片顶点的法线值;
(7)各从进程将所有计算结果发送回主进程进行结果输出。
进一步地,在本发明的基于射线计算单元的移动立方体并行计算方法中,所述元数据文件包含原点坐标、三个方向上的数据个数,每个方向上相邻数据间隔的距离,数据总个数及数据类型。
进一步地,在本发明的基于射线计算单元的移动立方体并行计算方法中,步骤(3)中,整个标量场被分割成为的数据块的块数等于所述任务数量。
进一步地,在本发明的基于射线计算单元的移动立方体并行计算方法中,步骤(3)中,每次发送至从进程的分割后形成的标量场体数据层不相同。
进一步地,在本发明的基于射线计算单元的移动立方体并行计算方法中,步骤(4)中索引的具体生成原理如下:
将立方体体素的八个顶点依次排序后,比较给定的等值与每个顶点的数值,如果顶点数值大于或等于给定的等值,则将该顶点标记为1,代表该点在待求的等值面里或等值面上;若顶点值小于给定的等值,则将该顶点标记为0,表示该点在待求的等值面外;八个顶点的标记值按照同样的顺序排列即组成查找索引。
进一步地,在本发明的基于射线计算单元的移动立方体并行计算方法中,步骤(4)中所述对照查找表标记出等值点所在的立方体边的端点中,查找表标记出等值点的原理如下:
一个立方体体素有8个顶点,每个顶点有两种状态,即标记值有0或1两种,因此查找索引有28=256种,即等值面与立方体体素的相交情况有256种组合;建立了一个查找表以对应每一种相交的情况,即一个标记索引对应了一个三角面片在立方体体素中构造情况,这里三角面片的顶点即为等值点,这些等值点一定在立方体体素的边上,边可以由其两个端点确认,因此只记录其等值点所在边的端点,因此输入立方体体素8个顶点的查找索引即可标记等值点所在的立方体边的端点。
进一步地,在本发明的基于射线计算单元的移动立方体并行计算方法中,步骤(5)中,分割边缘标记值进行统一的原理如下:
一个立方体体素需要由上下两层数据所组成,即n层数据只能组成n-1层立方体体素,假设数据场中共有奇数K层数据L1~LK,则只能组成K-1层立方体体素C1~CK-1,此时进行数据场的分割时,将边缘的数据层分配两次,即相当于按照L1、L2、…、L(K+1)/2一组,L(K+1)/2、…、LK-1、LK一组分割,此时可以计算(K-1)/2+(K-1)/2层立方体体素;但在两组任务中对L(K+1)/2的标记可能存在不同,即在步骤(4)中L(K+1)/2层中的数据可能在一个任务中进行了标记,标记值为1,而另一个任务中没有进行标记,标记值为0,因此将L(K+1)/2发送回主进程中进行统一,都标记为1。
本发明还提供了一种存储设备,所述存储设备存储指令及数据用于上述任一项所述的基于射线计算单元的移动立方体并行计算方法。
本发明还提供了一种基于射线计算单元的移动立方体并行计算系统,包括:处理器及存储设备;所述处理器加载并执行所述存储设备中的指令及数据用于实现上述任一项所述的基于射线计算单元的移动立方体并行计算方法。
本发明产生的有益效果是:本发明有效的解决了现有移动立方体算法所存在的冗余计算问题,能为三维标量场体数据快速有效地提取等值面,以适应大规模三维标量场的空间分析,实现三维标量场体数据的可视化表达,为高性能三维计算提供支持。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的方法流程图;
图2是采用本发明提取的等值面示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
参考图1,本发明的基于射线计算单元的移动立方体并行计算方法包括以下步骤:
(1)由主进程读取三维标量场的元数据并发送给各从进程。元数据是形容数据场的属性信息,包含原点坐标、三个方向上的数据个数,每个方向上相邻数据间隔的距离,数据总个数及数据类型。由主进程读取元数据文件,然后将元数据发送给每一个从进程,所有从进程接收到的元数据相同,体数据由离散的规则数据点所组成,每个数据点保存了数值,体数据和元数据一般保存在同一个文件中。步骤(2)中读取的是每一个数据的数据值大小,相当于将数据场分为多块,每个从进程读取一块。
(2)各从进程接收到元数据后,各从元数据并行读取三维标量场体数据并发送给主进程;其中,每个从进程分别读取体数据中的不同部分。
(3)主进程将所有从进程发送来的数据所形成的整个标量场按照用户设置的任务数量按层分割标量场,将整个标量场分割为多个数据块,每个数据块包含若干个体数据层,然后根据任务请求每次向各从进程发送一个分割后形成的标量场体数据块。任务数量可以理解为将整个数据场分割为多少块,一个任务即为一个数据块,其中可能包含多层数据。例如一个数据场包含24层数据,任务数量可以设置为6,则每个数据块中包含4层数据。整个标量场被分割成为的数据块的块数等于所述任务数量。每次发送至从进程的分割后形成的标量场体数据层不相同,即一个数据层被发送后不再重复发送。这里的任务请求即从进程在完成当前任务后会发送一个信号给主进程,代表已完成当前任务,主进程接收到该信号后会发送新的数据层给该从进程。
(4)各从进程接收到分割后形成的标量场体数据块后,分别将将标量场体数据层中的立方体体素的顶点与等值点进行对比生成立方体的查找索引,对照查找表标记出等值点所在的立方体边的端点。标量场指仅用其大小就可以完整表征的场,没有方向,体数据由体素组成,即由立方体体素所组成。数据场(即元数据)是由离散的规则数据点所组成的,数据场三个方向上,同一方向相邻的两个点距离相等。因此若将数据场中每个数据点与其在三个方向上的相邻点相连的话,整个数据场就可以看作是a*b*c个立方体紧密排列,每个立方体可以作为一个体素,其8个顶点即代表8个数据点,保存了数值。数据场中每个位置都有一个数值,该数值是随着位置不断变化的,且是无穷的,因此不能记录数据场中无穷个数值,因此只能用离散的规则数据点近似表达这个数据场,并可以用立方体体素保存这些数据点,此时数据场可以抽象看作由立方体骨架构成。等值面是数据场中所有数值大小相等的点所组成的面,这样的点同样有无穷多个,无法表达,但构成数据场的立方体骨架一定有边穿过此等值面,因此我们可以计算立方体边与等值面的交点,这些交点是有限的,并用这些交点连接成三角面片近似表达等值面。
索引的具体生成原理如下:
将立方体体素的八个顶点依次排序后,比较给定的等值与每个顶点的数值,如果顶点数值大于或等于给定的等值,则将该顶点标记为1,代表该点在待求的等值面里或等值面上;若顶点值小于给定的等值,则将该顶点标记为0,表示该点在待求的等值面外;八个顶点的标记值按照同样的顺序排列即组成查找索引。
查找表标记出等值点的原理如下:
一个立方体体素有8个顶点,每个顶点有两种状态,即标记值有0或1两种,因此查找索引有28=256种,即等值面与立方体体素的相交情况有256种组合;建立了一个查找表以对应每一种相交的情况,即一个标记索引对应了一个三角面片在立方体体素中构造情况,这里三角面片的顶点即为等值点,这些等值点一定在立方体体素的边上,边可以由其两个端点确认,因此只记录其等值点所在边的端点,因此输入立方体体素8个顶点的查找索引即可标记等值点所在的立方体边的端点。
分割边缘标记值进行统一的原理如下:
一个立方体体素需要由上下两层数据所组成,即n层数据只能组成n-1层立方体体素,假设数据场中共有奇数K层数据L1~LK,则只能组成K-1层立方体体素C1~CK-1,此时进行数据场的分割时,将边缘的数据层分配两次,即相当于按照L1、L2、…、L(K+1)/2一组,L(K+1)/2、…、LK-1、LK一组分割,此时可以计算(K-1)/2+(K-1)/2层立方体体素;但在两组任务中对L(K+1)/2的标记可能存在不同,即在步骤(4)中L(K+1)/2层中的数据可能在一个任务中进行了标记,标记值为1,而另一个任务中没有进行标记,标记值为0,因此将L(K+1)/2发送回主进程中进行统一,都标记为1。
例如:之前的计算都是以立方体体素为单位进行的,一个立方体体素需要由上下两层数据所组成,即n层数据只能组成n-1层立方体体素,假设数据场中共有5层数据(L1~L5),则只能组成4层立方体体素(C1~C4)。此时进行数据场的分割时,若按照L1、L2、L3一组,L4、L5一组的话,则只能进行2+1层立方体体素的计算,因此在分割的时候我们将边缘的数据层分配两次,即相当于按照L1、L2、L3一组,L3、L4、L5一组分割,此时可以计算2+2层立方体体素。但在两组任务中对L3的标记可能存在不同,因此将其发送回主进程中进行统一。步骤(4)中已经对照查找表标记出等值点所在的立方体边的端点,此时L3层中的数据可能在一个任务中进行了标记(标记值为1),而另一个任务中没有进行标记(标记值为0),因此这一步即主进程对照两个任务对L3进行的标记,若标记值不同,则都标记为1。
(5)各从进程将标记好的数据分别传递回主进程对标量场的分割边缘标记值进行统一,再由主进程将统一后的与各个所述标记好的数据对应的体数据层分别分配给各从进程。这里在从进程完成标记后,将该任务中的数据发送回主进程,主进程将分割边缘的数据进行统一,此时数据场中原先分割的任务数量及每个任务中包含的数据不变。主进程完成统一后,将发送原先分割好的任务给各从进程,即原先分割好的数据块。
(6)各从进程接收到统一后的体数据层后,分别以立方体的一点及该点发出的三条射线为计算单元进行多线程计算,根据射线端点及沿射线方向相邻端点的坐标值计算等值点的坐标,并根据所得坐标计算出三角形面片顶点的法线值。数据场中的立方体体素及立方体骨架只是抽象的表达,实际上程序是按照x、y、z的顺序依次保存数据点数据,因为顺序存储,所以可以计算出一个立方体体素八个顶点存储的位置,即可得到这个立方体,所以程序实际上存储的只有数据点。这里的射线指的是整个数据场的三个方向,因此每个线程可以从不同的点开始,计算这个点沿着数据场三个方向上的等值点。因为计算的单元主要是一个点与三个方向,因此可以看作是射线单元。
(7)各从进程将所有计算结果发送回主进程进行结果输出。
本发明最明显的不同在于将立方体体素边上的等值点位置计算的基本计算单元从整个立方体体素改变为立方体的一个顶点及其发出的三条射线,并通过并行编程,实现了快速提取三维标量场体数据的等值面。
为了更清晰的说明本发明的思想,下面以地理信息系统中常用的文本数据为实施例进行进一步的说明,本实施例使用的文本数据及其结果如下表所示,其提取的三维标量场体数据的等值面如图2所示。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (5)
1.一种基于射线计算单元的移动立方体并行计算方法,其特征在于,包括以下步骤:
(1)由主进程读取三维标量场的元数据并发送给各从进程;
(2)各从进程接收到元数据后,并行读取三维标量场体数据并发送给主进程;其中,每个从进程分别读取三维标量场体数据中的不同部分;
(3)主进程将所有从进程发送来的数据所形成的整个标量场按照用户设置的任务数量将整个标量场分割为多个数据块,每个数据块包含若干体数据层,然后根据任务请求每次向各从进程发送一个分割后形成的标量场体数据块;
(4)各从进程接收到分割后形成的标量场体数据块后,分别将标量场体数据层中的立方体体素的顶点与等值点进行对比生成立方体的查找索引,对照查找表标记出等值点所在的立方体边的端点;
(5)各从进程将标记好的数据分别传递回主进程对标量场的分割边缘标记值进行统一,再由主进程将统一后的与各个所述标记好的数据对应的体数据层分别分配给各从进程;
(6)各从进程接收到统一后的体数据层后,分别以立方体的一点及该点发出的三条射线为计算单元进行多线程计算,根据射线端点及沿射线方向相邻端点的坐标值计算等值点的坐标,并根据所得坐标计算出三角形面片顶点的法线值;
(7)各从进程将所有计算结果发送回主进程进行结果输出;
步骤(4)中索引的具体生成原理如下:
将立方体体素的八个顶点依次排序后,比较给定的等值与每个顶点的数值,如果顶点数值大于或等于给定的等值,则将该顶点标记为1,代表该点在待求的等值面里或等值面上;若顶点值小于给定的等值,则将该顶点标记为0,表示该点在待求的等值面外;八个顶点的标记值按照同样的顺序排列即组成查找索引;
步骤(4)中所述对照查找表标记出等值点所在的立方体边的端点中,查找表标记出等值点的原理如下:
一个立方体体素有8个顶点,每个顶点有两种状态,即标记值有0或1两种,因此查找索引有28=256种,即等值面与立方体体素的相交情况有256种组合;建立了一个查找表以对应每一种相交的情况,即一个标记索引对应了一个三角面片在立方体体素中构造情况,这里三角面片的顶点即为等值点,这些等值点一定在立方体体素的边上,边由其两个端点确认,因此只记录其等值点所在边的端点,因此输入立方体体素8个顶点的查找索引即可标记等值点所在的立方体边的端点;
步骤(5)中,分割边缘标记值进行统一的原理如下:
一个立方体体素需要由上下两层数据所组成,即n层数据只能组成n-1层立方体体素,数据场中共有奇数K层数据L1~LK,则只能组成K-1层立方体体素C1~CK-1,此时进行数据场的分割时,将边缘的数据层分配两次,即相当于按照L1、L2、…、L(K+1)/2一组,L(K+1)/2、…、LK-1、LK一组分割,此时计算(K-1)/2+(K-1)/2层立方体体素;但在两组任务中对L(K+1)/2的标记可能存在不同,即在步骤(4)中L(K+1)/2层中的数据可能在一个任务中进行了标记,标记值为1,而另一个任务中没有进行标记,标记值为0,因此将L(K+1)/2发送回主进程中进行统一,都标记为1。
2.根据权利要求1所述的基于射线计算单元的移动立方体并行计算方法,其特征在于,所述元数据文件包含原点坐标、三个方向上的数据个数,每个方向上相邻数据间隔的距离,数据总个数及数据类型。
3.根据权利要求1所述的基于射线计算单元的移动立方体并行计算方法,其特征在于,步骤(3)中,整个标量场被分割成为的数据块的块数等于所述任务数量。
4.根据权利要求1所述的基于射线计算单元的移动立方体并行计算方法,其特征在于,步骤(3)中,每次发送至从进程的分割后形成的标量场体数据层不相同。
5.一种基于射线计算单元的移动立方体并行计算系统,其特征在于:包括:处理器及存储设备;所述处理器加载并执行所述存储设备中的指令及数据用于实现权利要求1~4任一项所述的基于射线计算单元的移动立方体并行计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811302909.7A CN109492069B (zh) | 2018-11-02 | 2018-11-02 | 一种基于射线计算单元的移动立方体并行计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811302909.7A CN109492069B (zh) | 2018-11-02 | 2018-11-02 | 一种基于射线计算单元的移动立方体并行计算方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109492069A CN109492069A (zh) | 2019-03-19 |
CN109492069B true CN109492069B (zh) | 2020-06-26 |
Family
ID=65693686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811302909.7A Active CN109492069B (zh) | 2018-11-02 | 2018-11-02 | 一种基于射线计算单元的移动立方体并行计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109492069B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110009734B (zh) * | 2019-04-11 | 2022-12-09 | 中国人民解放军国防科技大学 | 一种基于稀疏划分的等值面时空优化提取方法与系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976465A (zh) * | 2010-10-27 | 2011-02-16 | 浙江大学 | 基于立方体棱边共享等值点的加速改进算法 |
CN103236058A (zh) * | 2013-04-25 | 2013-08-07 | 内蒙古科技大学 | 获取四维心脏图像感兴趣体积的方法 |
CN107895364A (zh) * | 2017-10-31 | 2018-04-10 | 哈尔滨理工大学 | 一种用于虚拟手术术前规划的三维重建系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7445347B2 (en) * | 2005-11-09 | 2008-11-04 | Avery Dennison Corporation | Metallized cube corner retroreflective sheeting having a high measured daytime luminance factor |
-
2018
- 2018-11-02 CN CN201811302909.7A patent/CN109492069B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976465A (zh) * | 2010-10-27 | 2011-02-16 | 浙江大学 | 基于立方体棱边共享等值点的加速改进算法 |
CN103236058A (zh) * | 2013-04-25 | 2013-08-07 | 内蒙古科技大学 | 获取四维心脏图像感兴趣体积的方法 |
CN107895364A (zh) * | 2017-10-31 | 2018-04-10 | 哈尔滨理工大学 | 一种用于虚拟手术术前规划的三维重建系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109492069A (zh) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4120199A1 (en) | Image rendering method and apparatus, and electronic device and storage medium | |
US9396512B2 (en) | Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit | |
US9721320B2 (en) | Fully parallel in-place construction of 3D acceleration structures and bounding volume hierarchies in a graphics processing unit | |
Weiss et al. | Simplex and diamond hierarchies: Models and applications | |
Fugacci et al. | Persistent Homology: a Step-by-step Introduction for Newcomers. | |
JPH0683978A (ja) | 等値サーフェイスを効率的に生成し等値サーフェイス画像データ及び表面等値線画像データをディスプレイするための方法及び装置 | |
Zhou et al. | A virtual globe-based vector data model: quaternary quadrangle vector tile model | |
US20190066372A1 (en) | Computing representative shapes for polygon sets | |
Yuan et al. | Feature preserving multiresolution subdivision and simplification of point clouds: A conformal geometric algebra approach | |
Kovalerchuk | Visualization of multidimensional data with collocated paired coordinates and general line coordinates | |
CN105913475A (zh) | 一种时空变化过程动态可视化方法 | |
Jankun-Kelly et al. | Scalability considerations for multivariate graph visualization | |
CN109492069B (zh) | 一种基于射线计算单元的移动立方体并行计算方法及系统 | |
CN104050719A (zh) | 生成抗锯齿体素数据 | |
CN117540552A (zh) | 基于网格剖分的仿真空间通视分析方法、装置和设备 | |
Scherzinger et al. | Interactive exploration of cosmological dark-matter simulation data | |
CN115935034A (zh) | 一种基于众核处理器集群的等值面图可视化方法及系统 | |
Zhou et al. | Rendering interior-filled polygonal vector data in a virtual globe | |
Li et al. | Efficient data modeling and querying system for multi-dimensional spatial data | |
Franklin et al. | Calculating the area of overlaid polygons without constructing the overlay | |
US10877948B1 (en) | Method and computer program product for geospatial binning | |
Haimes | Techniques for interactive and interrogative scientific volumetric visualization | |
Shakaev et al. | View-Dependent Level of Detail for Real-Time Rendering of Large Isosurfaces | |
Gong et al. | A generic method to organize boundaries of complex polygons for embedded devices | |
Guo et al. | A mapreduce algorithm for polygon retrieval in geospatial analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |