CN102682106B - 动态三维场景中加速数据结构的构建方法 - Google Patents
动态三维场景中加速数据结构的构建方法 Download PDFInfo
- Publication number
- CN102682106B CN102682106B CN201210137431.3A CN201210137431A CN102682106B CN 102682106 B CN102682106 B CN 102682106B CN 201210137431 A CN201210137431 A CN 201210137431A CN 102682106 B CN102682106 B CN 102682106B
- Authority
- CN
- China
- Prior art keywords
- dynamic
- model
- static
- data structure
- scene
- 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.)
- Expired - Fee Related
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明涉及计算机图形处理技术领域,本发明公开了一种动态三维场景中加速数据结构的构建方法,其具体包含以下步骤:步骤(1),接收场景数据,将将场景数据标记成静态模型和动态模型;步骤(2),将所有的静态模型建立一个静态加速数据结构;步骤(3),将所有的动态模型建立一个动态加速数据结构;步骤(4),遍历结构接收静态结构和动态结构的划分结果。与现有技术相比,本发明提出的技术方案有如下有益效果:上述动态三维场景中加速数据结构的构建方法,既能在静态部分获得空间划分的查找优势,同时又能在动态部分获得层次图的重建和更新优势,使得数据结构在整体上效率获得提升。
Description
技术领域
本发明属于计算机图形处理技术领域,尤其涉及一种动态三维场景中加速数据结构的构建方法。
背景技术
随着计算机技术的日益发展,传统的光栅化渲染已经无法满足用户的需求。光线跟踪作为一种新的渲染方式替代光栅化渲染已成为大势所趋。光线跟踪的原理为采用光的可逆性,将光从视点发射,进入场景后引起一系列的光的折射和反射,经过多次迭代之后返回这一系列过程的一个和值,这个和值就是此视点观察场景的像素值。光线跟踪真实的模拟了光传播的过程,可以真实的还原场景,但是由于模拟过程计算量太大,需要使用辅助加速结构对场景进行划分,加速查找光线与场景交点的过程。
目前针对光线跟踪的辅助加速结构主要以下三种:
1.Kd-tree
Kd-tree是一种经典的高维空间划分结构。特点在于无论空间的维数是多少,都可以将空间划分成为一颗二叉树。在相同的数据规模下,二叉树具有较低的查找代价。但是,二叉树的构建代价也是相当大的。使用Kd-tree作为辅助加速结构的光线跟踪,在静态场景下由于二叉树较低的查找代价,使得光线跟踪总体性能很好,但是在动态场景下需要频繁的重建二叉树,并且重建二叉树的代价很大,使得其性能低下。所以Kd-tree常用于静态场景的光线跟踪。
2.BVH
BVH全称为层次包围体,是一种在碰撞检测中常使用的数据结构。特点在于包围体的形状多变,可以根据需要对包围体进行修改,从而合适的覆盖整个空间。BVH在查找时的代价较高,但是重建时所需要的代价很低。使用BVH作为辅助加速结构的光线跟踪,与Kd-tree正好相反。所以BVH常用于动态场景的光线跟踪。
3.Grid
Grid是一种在并行计算中常用的方式,将空间划分成为一个个等大的格子。并行计算的每一个线程负责其中一个或者多个格子的计算。在一个分布均匀的场景中,Grid可以获得很好的性能。如果场景过于集中,将导致局部线程负荷过大,在局部形成瓶颈,使整个程序效率降低为串行。由于性能不稳定,使得Grid成为当前光线跟踪使用较少的方法。
发明内容
针对现有技术中针对光线跟踪辅助的加速数据结构存在的性能低下或者不稳定的技术问题,本发明提供了一种动态三维场景中加速数据结构的构建方法。
本发明的技术方案如下:
一种动态三维场景中加速数据结构的构建方法,其具体包含以下步骤:
步骤(1),接收场景数据,将将场景数据标记成静态模型和动态模型;
步骤(2),将所有的静态模型建立一个静态加速数据结构,所述静态加速数据结构采用空间分割的方法,将空间划分为两部分;
步骤(3),将所有的动态模型建立一个动态加速数据结构,所述动态加速数据结构采用层次结构的方法,首先构造底层的单个模型的层次结构,然后利用已经构造好的底层层次结构,每次选取最相似的特征向量所在的模型合并,构造大的层次结构节点,依次递归,直到整个场景的动态模型都已合并完毕;
步骤(4),遍历结构接收静态结构和动态结构的划分结果,同时接收待查找的数据,将待查找的数据在静态和动态结构中进行比对,并将比对的结果返回。
优选地,所述动态场景发生变化时,重复步骤(3)。
优选地,所述空间分割的方法具体为:根据松弛表面重叠启发函数,选取最优的划分位置与坐标轴,不断地将空间结构划分为两部分。
优选地,所述层次结构的构建方法具体为:底层的层次模型为单个模型的层次结构,此模型利用图元紧密启发函数,选取最优的划分平面,将父节点的层次包围盒划分为左右两个子包围盒,并且在构建过程中选取子节点的特征向量,根据子节点的特征向量构建父节点的特征向量,并且将节点的平移变换矩阵置为单位矩阵,此构建依次递归下去直到包围盒内的面片数小于一定阈值或者表面积小于一定阈值;当单个模型的层次结构构建结束之后,利用已经构建好的底层层次结构,每次选取最相似的特征向量所在的模型合并,构建大的层次结构节点,依次递归,直至所有动态模型都被加入。
优选地,当动态模型发生改变时,根据图元重叠代价函数评估此情况下数据结构的质量下降代价与重建代价;若质量下降代价小于重建代价,则利用动态模型的变换矩阵,自下而上的重置变换矩阵与特征向量,否则,根据动态数据结构的构建过程重新构建。
优选地,所述遍历结构包括辅助查找结构,所述辅助查找结构用于记录上一次查找的结果;当辅助查找结构为空时,直接进行一次查找;当辅助查找结构不为空时,首先判断辅助查找结构中的信息是否满足光线要求且动态加速结构未发生重建,条件满足,返回辅助查找结构信息;否则,置辅助查找结构为空,按辅助查找结构为空的情况直接进行一次查找。
优选地,当辅助查找结构为空时,直接进行一次查找,其具体为:如果辅助查找结构为空,根据输入数据的法向量和位置,在静态模型和动态模型数据结构中同时进行查找;如果动态模型和静态模型均未查找到相应节点,进行下一个数据的处理;如果动态模型和静态模型中一种查找到相应节点,记录下此节点位置并标记其属于哪个模型,进行下一个数据的处理;如果动态模型和静态模型中均找到相应节点,记录下离目标节点近的位置并标记其属于哪个模型,进行下一个数据的处理。
与现有技术相比,本发明提出的技术方案有如下有益效果:上述动态三维场景中加速数据结构的构建方法,既能在静态部分获得空间划分的查找优势,同时又能在动态部分获得层次图的重建和更新优势,使得数据结构在整体上效率获得提升。
附图说明
图1为本发明动态三维场景中加速数据结构的构建方法流程图。
图2为光线击中动态加速结构,未击中静态加速结构。
图3为光线击中静态加速结构,未击中动态加速结构。
图4为光线同时击中静态加速结构和动态加速结构。
图5为光线未击中动态加速结构和静态加速结构。
图6为数据结构的数据域。
具体实施方式
以下结合附图和实施例,对本发明进行进一步的详细说明。图1为本发明动态三维场景中加速数据结构的构建方法的流程图。本发明公开了一种动态三维场景中加速数据结构的构建方法,其具体包含以下步骤:
步骤(1),接收场景数据,将将场景数据标记成静态模型和动态模型;
步骤(2),将所有的静态模型建立一个静态加速数据结构,所述静态加速数据结构采用空间分割的方法,将空间划分为两部分;
步骤(3),将所有的动态模型建立一个动态加速数据结构,所述动态加速数据结构采用层次结构的方法,首先构造底层的单个模型的层次结构,然后利用已经构造好的底层层次结构,每次选取最相似的特征向量所在的模型合并,构造大的层次结构节点,依次递归,直到整个场景的动态模型都已合并完毕;
步骤(4),遍历结构接收静态结构和动态结构的划分结果,同时接收待查找的数据,将待查找的数据在静态和动态结构中进行比对,并将比对的结果返回。
上述动态三维场景中加速数据结构的构建方法,既能在静态部分采用空间分割,获得空间划分的查找优势,同时又能在动态部分采用层次结构的方法,获得层次图的重建和更新优势,使得数据结构在整体效率上获得提升。
优选地,所述动态场景发生变化时,重复步骤(3)。在动态部分充分获得层次图的重建和更新优势。
优选地,所述空间分割的方法具体为:根据松弛表面重叠启发函数,选取最优的划分位置与坐标轴,不断地将空间结构划分为两部分。
优选地,所述层次结构的构建方法具体为:底层的层次模型为单个模型的层次结构,此模型利用图元紧密启发函数,选取最优的划分平面,将父节点的层次包围盒划分为左右两个子包围盒,并且在构建过程中选取子节点的特征向量,根据子节点的特征向量构建父节点的特征向量,并且将节点的平移变换矩阵置为单位矩阵,此构建依次递归下去直到包围盒内的面片数小于一定阈值或者表面积小于一定阈值;当单个模型的层次结构构建结束之后,利用已经构建好的底层层次结构,每次选取最相似的特征向量所在的模型合并,构建大的层次结构节点,依次递归,直至所有动态模型都被加入。动态结构的构建方法为两层结构,底层结构为每一个模型建立节点,根据图元紧密启发函数法,选取最优的划分节点与划分坐标轴,以此为基准建立左右孩子节点,并根据左右孩子节点的最小包围盒建立父节点的最小包围盒并根据左右孩子节点的特征向量建立父节点的特征向量,将节点的变换矩阵置为单位矩阵;顶层结构利用已经构建好的底层结构,根据每个模型节点的特征向量,每次选取最相似的节点对,以此建立新的节点,并根据子节点对的特征向量,建立新节点的特征向量,直至所有动态模型都被加入为止。
优选地,当动态模型发生改变时,根据图元重叠代价函数评估此情况下数据结构的质量下降代价与重建代价;若质量下降代价小于重建代价,则利用动态模型的变换矩阵,自下而上的重置变换矩阵与特征向量,否则,根据动态数据结构的构建过程重新构建。进一步加快了数据结构的整体效率。
优选地,所述遍历结构包括辅助查找结构,所述辅助查找结构用于记录上一次查找的结果;当辅助查找结构为空时,直接进行一次查找;当辅助查找结构不为空时,首先判断辅助查找结构中的信息是否满足光线要求且动态加速结构未发生重建,条件满足,返回辅助查找结构信息;否则,置辅助查找结构为空,按辅助查找结构为空的情况直接进行一次查找。在实际的光线追踪过程中,由于连续追踪的光线在空间上具有一定的连续性。可以通过记录上一次追踪结果的方式对下一次进行预测,如果预测成功,则继续进行下一次预测。如果预测失败,将重新对光线进行一次追踪。所以,我们首先在光线追踪结构上附加一个辅助查找结构,用于记录上次查找的结果。进一步加快了数据结构的整体效率。
优选地,当辅助查找结构为空时,直接进行一次查找,其具体为:如果辅助查找结构为空,根据输入数据的法向量和位置,在静态模型和动态模型数据结构中同时进行查找;如果动态模型和静态模型均未查找到相应节点,进行下一个数据的处理;如果动态模型和静态模型中一种查找到相应节点,记录下此节点位置并标记其属于哪个模型,进行下一个数据的处理;如果动态模型和静态模型中均找到相应节点,记录下离目标节点近的位置并标记其属于哪个模型,进行下一个数据的处理。当辅助查找结构为空时,直接进行一次查找。可能发生的情况如图2至图5所示四种情况。如图2的情况时,光线击中动态加速结构,未击中静态加速结构。在动态加速结构中查找击中节点,返回节点信息,并将结果记录到辅助查找结构。如图3的情况时,光线击中静态加速结构,未击中动态加速结构。在静态加速结构中查找击中节点,返回节点信息,并将结果记录到辅助查找结构中。如图4的情况时,光线同时击中静态加速结构和动态加速结构,在两个加速结构中同时查找击中节点,然后比对两个节点,选择离光线近的节点,返回节点信息,并将结果记录到辅助查找结构中。如图5的情况时,光线未击中动态加速结构和静态加速结构,返回空值,并置辅助查找结构为空。当辅助查找结构不为空时,首先判断辅助查找结构中的信息是否满足光线要求,且动态加速结构未发生重建,如果满足,返回辅助查找结构信息。如果不满足,置辅助查找结构为空,按辅助查找结构为空的情况直接进行一次查找。
这里已经通过具体的实施例子对本发明进行了详细描述,提供上述实施例的描述为了使本领域的技术人员制造或适用本发明,这些实施例的各种修改对于本领域的技术人员来说是容易理解的。本发明并不限于这些例子,或其中的某些方面。本发明的范围通过附加的权利要求进行详细说明。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (6)
1.一种动态三维场景中加速数据结构的构建方法,其具体包含以下步骤:
步骤(1),接收场景数据,将场景数据标记成静态模型和动态模型;
步骤(2),将所有的静态模型建立一个静态加速数据结构,所述静态加速数据结构采用空间分割的方法,将空间划分为两部分;
步骤(3),将所有的动态模型建立一个动态加速数据结构,所述动态加速数据结构采用层次结构的方法,首先构造底层的单个模型的层次结构,然后利用已经构造好的底层层次结构,每次选取最相似的特征向量所在的模型合并,构造大的层次结构节点,依次递归,直到整个场景的动态模型都已合并完毕;
步骤(4),遍历结构接收静态结构和动态结构的划分结果,同时接收待查找的数据,将待查找的数据在静态和动态结构中进行比对,并将比对的结果返回;
所述遍历结构包括辅助查找结构,所述辅助查找结构用于记录上一次查找的结果;当辅助查找结构为空时,直接进行一次查找;当辅助查找结构不为空时,首先判断辅助查找结构中的信息是否满足光线要求且动态加速结构未发生重建,条件满足,返回辅助查找结构信息;否则,置辅助查找结构为空,按辅助查找结构为空的情况直接进行一次查找。
2.如权利要求1所述的动态三维场景中加速数据结构的构建方法,其特征在于动态场景发生变化时,重复步骤(3)。
3.如权利要求2所述的动态三维场景中加速数据结构的构建方法,其特征在于所述空间分割的方法具体为:根据松弛表面重叠启发函数,选取最优的划分位置与坐标轴,不断地将空间结构划分为两部分。
4.如权利要求3所述的动态三维场景中加速数据结构的构建方法,其特征在于所述层次结构的具体构建方法为:底层的层次模型为单个模型的层次结构,此模型利用图元紧密启发函数,选取最优的划分平面,将父节点的层次包围盒划分为左右两个子包围盒,并且在构建过程中选取子节点的特征向量,根据子节点的特征向量构建父节点的特征向量,并且将节点的平移变换矩阵置为单位矩阵,此构建依次递归下去直到包围盒内的面片数小于一定阈值或者表面积小于一定阈值;当单个模型的层次结构构建结束之后,利用已经构建好的底层层次结构,每次选取最相似的特征向量所在的模型合并,构建大的层次结构节点,依次递归,直至所有动态模型都被加入。
5.如权利要求1所述的动态三维场景中加速数据结构的构建方法,其特征在于当动态模型发生改变时,根据图元重叠代价函数评估此情况下数据结构的质量下降代价与重建代价;若质量下降代价小于重建代价,则利用动态模型的变换矩阵,自下而上的重置变换矩阵与特征向量,否则,根据动态数据结构的构建过程重新构建。
6.如权利要求1所述的动态三维场景中加速数据结构的构建方法,其特征在于当辅助查找结构为空时,直接进行一次查找,其具体为:如果辅助查找结构为空,根据输入数据的法向量和位置,在静态模型和动态模型数据结构中同时进行查找;如果动态模型和静态模型均未查找到相应节点,进行下一个数据的处理;如果动态模型和静态模型中一种查找到相应节点,记录下此节点位置并标记其属于哪个模型,进行下一个数据的处理;如果动态模型和静态模型中均找到相应节点,记录下离目标节点近的位置并标记其属于哪个模型,进行下一个数据的处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210137431.3A CN102682106B (zh) | 2012-05-07 | 2012-05-07 | 动态三维场景中加速数据结构的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210137431.3A CN102682106B (zh) | 2012-05-07 | 2012-05-07 | 动态三维场景中加速数据结构的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102682106A CN102682106A (zh) | 2012-09-19 |
CN102682106B true CN102682106B (zh) | 2014-10-15 |
Family
ID=46814031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210137431.3A Expired - Fee Related CN102682106B (zh) | 2012-05-07 | 2012-05-07 | 动态三维场景中加速数据结构的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102682106B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103679791A (zh) * | 2013-12-19 | 2014-03-26 | 广东威创视讯科技股份有限公司 | 三维场景分屏更新方法和系统 |
US9984492B2 (en) * | 2015-04-02 | 2018-05-29 | Qualcomm Incorporated | Efficient hierarchy traversal in ray tracing applications |
CN108304229B (zh) * | 2018-01-30 | 2019-02-19 | 北京市安全生产科学技术研究院 | 一种安全生产vr实训关卡模型动态加载生成方法和系统 |
CN118196278A (zh) * | 2024-01-21 | 2024-06-14 | 深圳艾迪普信息技术有限公司 | 一种基于三维场景的物件模型动态生成和销毁方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346918A (zh) * | 2011-09-30 | 2012-02-08 | 长春理工大学 | 一种只包含物体变化的三维动画场景的绘制方法 |
-
2012
- 2012-05-07 CN CN201210137431.3A patent/CN102682106B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346918A (zh) * | 2011-09-30 | 2012-02-08 | 长春理工大学 | 一种只包含物体变化的三维动画场景的绘制方法 |
Non-Patent Citations (4)
Title |
---|
《Rendering System for Large-Scale Grass》;Hang Qiu等;《Computational Intelligence and Software Engineering, 2009. CiSE 2009. International Conference on》;20091213;1-4 * |
《三维态势图中标绘箭头的实时约束变形》;张嵘,蔡洪斌,白忠建;《成都信息工程学院学报》;20080831;第23卷(第4期);380-383 * |
Hang Qiu等.《Rendering System for Large-Scale Grass》.《Computational Intelligence and Software Engineering, 2009. CiSE 2009. International Conference on》.2009,1-4. |
张嵘,蔡洪斌,白忠建.《三维态势图中标绘箭头的实时约束变形》.《成都信息工程学院学报》.2008,第23卷(第4期),380-383. |
Also Published As
Publication number | Publication date |
---|---|
CN102682106A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hou et al. | Memory-scalable GPU spatial hierarchy construction | |
CN103970960B (zh) | 基于gpu并行加速的无网格伽辽金法结构拓扑优化方法 | |
CN105389850A (zh) | 一种大规模三维场景的新型可见性生成方法 | |
CN107408312A (zh) | 光线追踪应用中的有效层次结构遍历 | |
US9355491B2 (en) | Ray tracing apparatus and method | |
US20100073400A1 (en) | Parallel grid population | |
CN102306180A (zh) | 一种基于海量激光雷达栅格点云数据的建模方法 | |
CN107590853A (zh) | 一种城市建筑群震害高真实度展示方法 | |
CN103871102B (zh) | 一种基于高程点和道路轮廓面的道路三维精细建模方法 | |
CN102074049A (zh) | 基于运动视点的大范围地形调度简化方法 | |
CN102682106B (zh) | 动态三维场景中加速数据结构的构建方法 | |
CN103413297A (zh) | 基于一体化三维gis模型的切割方法 | |
JP2017188095A (ja) | 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット | |
CN106446351A (zh) | 一种面向实时绘制的大规模场景组织与调度技术及仿真系统 | |
CN102193837B (zh) | 一种基于前线的包围盒碰撞检测方法 | |
CN106355640A (zh) | 一种地上地下三维一体化空间的处理方法和系统 | |
Aguilar et al. | On the performance and scalability of an HPC enhanced multi agent system based evacuation simulator | |
CN104699946A (zh) | 一种游戏场景的管理方法及装置 | |
Chen et al. | Improvements in the reliability and element quality of parallel tetrahedral mesh generation | |
CN104090945B (zh) | 一种地理空间实体构建方法及系统 | |
KR20090020924A (ko) | 3차원 광선 추적 시스템에서 적응형 다중 계층 케이디-트리구조 알고리즘을 이용한 광선 추적 방법 및 장치 | |
CN111659123A (zh) | 导航数据的处理方法及装置、存储介质、电子设备 | |
CN112464335B (zh) | 高大空间复杂建筑结构内危险品爆炸可视化仿真分析方法 | |
Sturtevant | A sparse grid representation for dynamic three-dimensional worlds | |
Koh | Voxel synthesis for architectural design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141015 Termination date: 20180507 |
|
CF01 | Termination of patent right due to non-payment of annual fee |