CN104463940A - 一种基于gpu的混合树并行构建方法 - Google Patents

一种基于gpu的混合树并行构建方法 Download PDF

Info

Publication number
CN104463940A
CN104463940A CN201410810135.4A CN201410810135A CN104463940A CN 104463940 A CN104463940 A CN 104463940A CN 201410810135 A CN201410810135 A CN 201410810135A CN 104463940 A CN104463940 A CN 104463940A
Authority
CN
China
Prior art keywords
node
dough sheet
queue
division
tree
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.)
Granted
Application number
CN201410810135.4A
Other languages
English (en)
Other versions
CN104463940B (zh
Inventor
程翔
何桃
杨子辉
龙鹏程
胡丽琴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Institutes of Physical Science of CAS
Original Assignee
Hefei Institutes of Physical Science of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei Institutes of Physical Science of CAS filed Critical Hefei Institutes of Physical Science of CAS
Priority to CN201410810135.4A priority Critical patent/CN104463940B/zh
Publication of CN104463940A publication Critical patent/CN104463940A/zh
Application granted granted Critical
Publication of CN104463940B publication Critical patent/CN104463940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于GPU的混合树并行构建方法,在需要进行渲染的模型空间的三个坐标轴中选取一个面片分布方差最大的坐标轴,计算切割平面垂直于该坐标轴上的位置点坐标,使得基于该位置点的切面两边的面片数相等,对模型空间中的场景数据逐级进行KD树划分,然后对划分后的叶节点依次进行八叉树划分。在对模型空间进行划分的过程中,运用了GPU技术进行加速处理,大大提高了场景划分的速度。本发明由于先在三个维度上进行基于KD树的选择划分,使得划分后的场景达到三个维度上的面片分布均匀的特点,为后续的八叉树快速划分提供了质量的保证,大大减少了无效遍历和相交操作,尤其适合非均匀的复杂场景的可见性计算。

Description

一种基于GPU的混合树并行构建方法
技术领域
本发明涉及图形实时渲染技术领域,尤其涉及一种基于GPU的混合树并行构建方法。
背景技术
虚拟现实技术(Virtual Reality-VR)技术,也称灵境技术或人工环境,20世纪八十年代由美国Jaron Lanier教授首次提出这一概念。主要是利用计算机模拟产生一个三维空间的虚拟世界、提供使用者关于视觉、听觉、触觉等感官的模拟,是计算机对复杂数据进行可视化操作与交互的一种技术。
光线跟踪技术是一种在图形绘制领域广泛应用的技术。它的最大的优势是产生高质量的图像,绘制出高真实感的平滑的反射、折射、软影等全局光照效果,但是它的计算量很高,因此以往这种技术只能应用在非实时绘制领域中。可见性判断及剔除技术。该技术是在三角形面片被送往渲染管线之前,通过算法或者硬件支持,提前判断出面片的可见性,并将不可见的部分剔除,以减轻渲染管线的工作量,达到加速绘制的效果。但是场景中的面片数通常都要达到百万量级,实时的对场景中的面片进行可见性判断几乎无法完成。为了提高虚拟现实中一些算法的执行效率,提出了场景划分技术。
场景划分技术的组织通常是层次结构的。宽泛地说,就是最高层次包含它下面的层次,后者又包含再下面的层次,如此类推。因此,这种结构具有嵌套和递归的特点。使用层次结构的原因是,可以明显地提高不同类型的查询速度,计算复杂度通常从O(n)提高到O(logn)。同时需要注意,大多数场景管理技术的构造开销都比较大,虽然也可以在实时过程中进行渐进更新,但是通常需要作为一个预处理过程来完成。不同类型的空间数据结构有:包围体层次(BVH)、各种二元空间分割树(BSP)、多维空间的二叉树(KD),以及八叉树(Octree)等。
GPU(Graphic Processing Unit)最初应用于图形显示的加速,GPU的单指令多数据流(SIMD:Single Instruction Multiple Data)的处理方式可并行地对大规模的数据进行操作,可大大缩短计算时间。GPU上的可编程语言出现以后,研究人员将一部分运算交由GPU来执行,以加快程序运行的速度。基于该思路,使用GPU进行场景节点的面片分布计算,可以有效的提高场景划分的速度。
传统的八叉树构造根据三个垂直坐标轴x、y、z方向上对象的中间位置对场景进行划分,这种划分方式尽管简单快速,但其粗糙的质量造成了大量无效的遍历和相交操作,也造成了大量的空节点而浪费存储空间,使得八叉树逐渐被构建质量更高的KD树所取代。而KD树的划分虽然具有高效的结构特征,但其划分的计算复杂度远却远高于八叉树,导致划分的预处理时间难以满足动态场景的实时光线跟踪计算要求。另一方面,当前的GPU架构包含多个多核处理器,需要同时运行上万个线程才能充分利用这些处理器的计算能力,而KD树等加速结构在其构建过程中节点的产生速度慢,大大浪费了GPU的计算资源,进而影响构造速度。
发明内容
本发明提供一种基于GPU的混合树并行构建方法,构建高质量的加速结构,同时充分利用硬件的并行计算能力,提高加速结构的构造速度,以达到动态场景计算的实时性。
本发明采用的技术方案为:一种基于GPU的混合树并行构建方法,在需要进行渲染的模型空间的X、Y、Z三个坐标轴方向中选取一个面片分布方差最大的,计算该坐标轴的垂直切面位置,使得切面两边的面片数相等,对模型空间中的场景数据逐级进行KD树划分,然后对划分后的叶节点依次进行八叉树划分;其中划分场景数据的具体步骤如下:
步骤a)、在存储区域中建立两个队列,一个存放等待处理的场景节点数据,一个存放已经处理过后的场景节点数据,一个存放等待处理的八叉树根节点;
步骤b)、将第一个队列中的场景节点数据依次取出,如果节点数据满足停止划分的条件,则将节点放入第三个队列中;否则进行KD树的空间划分,将处理后生成的孩子节点放入第二个队列中;
当前节点的深度为k,则该节点的孩子节点的编号为10k+i(i=1,2)(其中如果是左节点,则i=1;如果是右节点,则i=2;
步骤c)、当第一个队列中的所有场景节点处理完毕后,将第一队列清空,逐个处理第二队列中的场景节点,并将生成的孩子节点放入第一个队里中;
步骤d)、循环步骤b)、步骤c),直至完成所有场景节点的KD划分;
步骤e)、将第三队列中的节点放入第一队列中,并清空第三队列,然后进行八叉树的划分。依次取出第一队列中的节点进行八叉树划分,其具体过程与KD树类似,其中节点的编号为10k+i(i=1,2,...8)。
进一步的,KD树停止划分的条件为三个坐标轴的面片分布方差接近相等,即最小的方差值大于最大的方差值的80%,或者是节点内的面片数为全场景的面片总数的(如果KD树为第二种情况停止划分,则不再进行八叉树的划分);八叉树停止划分的条件为节点内的面片数为全场景的面片总数的
进一步的,对每一个场景节点进行划分时,GPU的每一个线程块分别处理一个场景节点,在相互对应的线程块和场景节点中,线程块中的每一线程计算节点中不同面片离中心位置的距离,最后通过硬件支持的归约操作,得到场景的面片分布方差。
进一步的,场景的面片在p方向上的分布方差
n为节点中的面片总数;
p方向为x、y、z三个方向;
xi为第i个面片的中心点在p方向上的位置值;
x为场景中的所有面片的中心点在p方向上的位置值的平均。
附图说明
图1为本发明一种基于GPU的混合树并行构建方法的流程图示意图;
图2为本发明中KD树划分流程图;
图3为本发明中八叉树划分流程图。
具体实施方式
下面介绍本发明的具体实施方式。
一种基于GPU的混合树并行构建方法,在需要进行渲染的模型空间的X、Y、Z三个坐标轴方向中选取一个面片分布方差最大的,计算该坐标轴的垂直切面位置,使得切面两边的面片数相等,对模型空间中的场景数据逐级进行KD树划分,然后对划分后的叶节点依次进行八叉树划分;其中划分场景数据的具体步骤如下:
步骤a)、在存储区域中建立两个队列,一个存放等待处理的场景节点数据,一个存放已经处理过后的场景节点数据,一个存放等待处理的八叉树根节点;
步骤b)、将第一个队列中的场景节点数据依次取出,如果节点数据满足停止划分的条件,则将节点放入第三个队列中;否则进行KD树的空间划分,将处理后生成的孩子节点放入第二个队列中;
当前节点的深度为k,则该节点的孩子节点的编号为10k+i(i=1,2)(其中如果是左节点,则i=1;如果是右节点,则i=2;
步骤c)、当第一个队列中的所有场景节点处理完毕后,将第一队列清空,逐个处理第二队列中的场景节点,并将生成的孩子节点放入第一个队里中;
步骤d)、循环步骤b)、步骤c),直至完成所有场景节点的KD划分;
步骤e)、将第三队列中的节点放入第一队列中,并清空第三队列,然后进行八叉树的划分。依次取出第一队列中的节点进行八叉树划分,其具体过程与KD树类似,其中节点的编号为10k+i(i=1,2,...8)。
进一步的,KD树停止划分的条件为三个坐标轴的面片分布方差接近相等,即最小的方差值大于最大的方差值的80%,或者是节点内的面片数为全场景的面片总数的(如果KD树为第二种情况停止划分,则不再进行八叉树的划分);八叉树停止划分的条件为节点内的面片数为全场景的面片总数的
进一步的,对每一个场景节点进行划分时,GPU的每一个线程块分别处理一个场景节点,在相互对应的线程块和场景节点中,线程块中的每一线程计算节点中不同面片离中心位置的距离,最后通过硬件支持的归约操作,得到场景的面片分布方差。
进一步的,场景的面片在p方向上的分布方差
n为节点中的面片总数;
p方向为x、y、z三个方向;
xi为第i个面片的中心点在p方向上的位置值;
x为场景中的所有面片的中心点在p方向上的位置值的平均。
本发明采用的构造方式可以迅速产生出大量数据供成千上万的GPU线程使用,使它们一直保持满负荷工作状态;其次,由于我们先在三个维度上进行KD树划分,使得划分后的节点在三个维度上的面片分布越来越均匀。
借助硬件强大的并行计算能力,本发明采用的混合树加速结构凝结了传统加速结构的优点:第一,与传统的八叉树加速技术相比,本发明提出的方法,在前期的场景划分的过程中采用的是KD树的划分策略,使得每个孩子节点中的面片分布均匀,为后期的八叉树划分提供了质量的保证,其结果是大大减少了无效遍历和相交操作;第二、与传统的KD树加速技术相比,本发明提出的方法,在后期的场景划分的过程中采用的是八叉树的划分策略,其一是加速了加速结构的生成速度,其二是大大减少了层次结构的深度,为应用阶段的节点判断节省了大量时间。另外,在KD树的划分过程中需要进行庞大的计算开销,传统的方法是基于CPU的串行计算,计算效率低。而GPU具有高效的浮点运算能力,并且KD树每个节点的计算具有高度的独立性,本发明提出的方法利用GPU的高效并行处理能力,有效地提高了KD树划分的效率。
本发明未详细阐述部分属于本领域技术人员的公知技术。

Claims (4)

1.一种基于GPU的混合树并行构建方法,其特征在于,在需要进行渲染的模型空间的X、Y、Z三个坐标轴方向中选取一个面片分布方差最大的,计算该坐标轴的垂直切面位置,使得切面两边的面片数相等,对模型空间中的场景数据逐级进行KD树划分,然后对划分后的叶节点依次进行八叉树划分;其中划分场景数据的具体步骤如下:
步骤a)、在存储区域中建立两个队列,一个存放等待处理的场景节点数据,一个存放已经处理过后的场景节点数据,一个存放等待处理的八叉树根节点;
步骤b)、将第一个队列中的场景节点数据依次取出,如果节点数据满足停止划分的条件,则将节点放入第三个队列中;否则进行KD树的空间划分,将处理后生成的孩子节点放入第二个队列中;
当前节点的深度为k,则该节点的孩子节点的编号为10k+i(i=1,2)(其中如果是左节点,则i=1;如果是右节点,则i=2;
步骤c)、当第一个队列中的所有场景节点处理完毕后,将第一队列清空,逐个处理第二队列中的场景节点,并将生成的孩子节点放入第一个队里中;
步骤d)、循环步骤b)、步骤c),直至完成所有场景节点的KD划分;
步骤e)、将第三队列中的节点放入第一队列中,并清空第三队列,然后进行八叉树的划分。依次取出第一队列中的节点进行八叉树划分,其具体过程与KD树类似,其中节点的编号为10k+i(i=1,2,...8)。
2.如权利要求1所述的基于GPU的混合树并行构建方法,其特征在于,KD树停止划分的条件为三个坐标轴的面片分布方差接近相等,即最小的方差值大于最大的方差值的80%,或者是节点内的面片数为全场景的面片总数的(如果KD树为第二种情况停止划分,则不再进行八叉树的划分);八叉树停止划分的条件为节点内的面片数为全场景的面片总数的
3.如权利要求1所述的基于GPU的混合树并行构建方法,其特征在于,对每一个场景节点进行划分时,GPU的每一个线程块分别处理一个场景节点,在相互对应的线程块和场景节点中,线程块中的每一线程计算节点中不同面片离中心位置的距离,最后通过硬件支持的归约操作,得到场景的面片分布方差。
4.如权利要求1所述的基于GPU的混合树并行构建方法,其特征在于,场景的面片在p方向上的分布方差 s 2 = 1 n Σ i = 1 i = n ( x i - x ) 2 ;
n为节点中的面片总数;
p方向为x、y、z三个方向;
xi为第i个面片的中心点在p方向上的位置值;
x为场景中的所有面片的中心点在p方向上的位置值的平均。
CN201410810135.4A 2014-12-23 2014-12-23 一种基于gpu的混合树并行构建方法 Active CN104463940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410810135.4A CN104463940B (zh) 2014-12-23 2014-12-23 一种基于gpu的混合树并行构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410810135.4A CN104463940B (zh) 2014-12-23 2014-12-23 一种基于gpu的混合树并行构建方法

Publications (2)

Publication Number Publication Date
CN104463940A true CN104463940A (zh) 2015-03-25
CN104463940B CN104463940B (zh) 2016-02-17

Family

ID=52909922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410810135.4A Active CN104463940B (zh) 2014-12-23 2014-12-23 一种基于gpu的混合树并行构建方法

Country Status (1)

Country Link
CN (1) CN104463940B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573834A (zh) * 2015-12-16 2016-05-11 复旦大学 于异构平台的面向高维数据的词汇树构建方法
CN108038118A (zh) * 2017-11-01 2018-05-15 华东师范大学 一种位置优先并维护最小外接矩形的kd树构建方法
WO2019183868A1 (en) * 2018-03-29 2019-10-03 Intel Corporation Methods, systems, articles of manufacture and apparatus to improve resource utilization for binary tree structures

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100079451A1 (en) * 2008-09-30 2010-04-01 Microsoft Corporation Ray tracing on graphics hardware using kd-trees
CN102426710A (zh) * 2011-08-22 2012-04-25 浙江大学 图形处理器上的表面积启发式构建kd树并行方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100079451A1 (en) * 2008-09-30 2010-04-01 Microsoft Corporation Ray tracing on graphics hardware using kd-trees
CN102426710A (zh) * 2011-08-22 2012-04-25 浙江大学 图形处理器上的表面积启发式构建kd树并行方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573834A (zh) * 2015-12-16 2016-05-11 复旦大学 于异构平台的面向高维数据的词汇树构建方法
CN108038118A (zh) * 2017-11-01 2018-05-15 华东师范大学 一种位置优先并维护最小外接矩形的kd树构建方法
WO2019183868A1 (en) * 2018-03-29 2019-10-03 Intel Corporation Methods, systems, articles of manufacture and apparatus to improve resource utilization for binary tree structures
US11534917B2 (en) 2018-03-29 2022-12-27 Intel Corporation Methods, systems, articles of manufacture and apparatus to improve resource utilization for binary tree structures

Also Published As

Publication number Publication date
CN104463940B (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
CN102157008B (zh) 一种大规模虚拟人群实时绘制方法
CN110411464B (zh) 三维点云地图生成方法、装置、设备及存储介质
CN107665269B (zh) 基于地理信息的快速人群疏散仿真方法和装置
CN105787865A (zh) 基于游戏引擎和gpu并行处理的分形图生成与渲染方法
CN104851126B (zh) 基于广义圆柱体的三维模型分割方法及装置
Westwood A GPU accelerated spring mass system for surgical simulation
Guo et al. Meshless thin-shell simulation based on global conformal parameterization
CN102193837B (zh) 一种基于前线的包围盒碰撞检测方法
CN104463940B (zh) 一种基于gpu的混合树并行构建方法
CN106875492A (zh) 一种面向gpu包围盒碰撞检测方法
Cirne et al. Marching cubes technique for volumetric visualization accelerated with graphics processing units
CN107102991A (zh) 一种三维gis系统中的杆塔参数化建模方法
CN102253862B (zh) 一种基于SIMD的k-DOP包围盒碰撞检测方法
CN115018992A (zh) 发型模型的生成方法、装置、电子设备及存储介质
JP2020533685A (ja) Quador:格子用の回転二次曲面ビーム
CN111047684A (zh) 一种基于三维模型特征的模型简化方法
何晖光 et al. A 3D medical imaging surface reconstruction scheme based on segmentation
CN102663674B (zh) 并行化实时无标记人体运动跟踪方法
Doyle et al. Evaluation of a BVH construction accelerator architecture for high-quality visualization
Fletcher et al. Challenges and perspectives of procedural modelling and effects
Su et al. View frustum culling algorithm based on optimized scene management structure
CN110379018A (zh) 一种基于异构并行架构的运载器安控管道呈现方法
CN105205289A (zh) 一种基于人脑变形仿真的快速连续碰撞检测方法
Levus et al. Using software agents in a distributed computing system for procedural planetoid terrain generation
RU2611892C1 (ru) Способ трехмерного моделирования заданного гидрогеологического объекта, реализуемый в вычислительной системе

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant