[发明专利]一种基于动态任务调度的层次包围盒构建方法有效
申请号: | 201710514892.0 | 申请日: | 2017-06-29 |
公开(公告)号: | CN107346527B | 公开(公告)日: | 2020-03-10 |
发明(设计)人: | 何发智;张正昌;黎明丽;陈壹林 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06T1/00 | 分类号: | G06T1/00;G06F9/48;G06F9/54 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 动态 任务 调度 层次 包围 构建 方法 | ||
本发明涉及一种层次包围盒构建方法,属于计算机图形处理技术领域,具体是涉及一种基于动态任务调度的层次包围盒构建方法。发明遍历BVH时将一个线程对应叶子结点,在聚类幼树重构时一个Warp对应2个内部结点,使得BVH构建算法在单个主机上的并行度进一步的提高,相比当前通用的方法BVH构建速度提升了大约25%。
技术领域
本发明涉及一种层次包围盒构建方法,属于计算机图形处理技术领域,具体是涉及一种基于动态任务调度的层次包围盒构建方法。
背景技术
光线跟踪(Ray Tracing)是一种在平面图像中通过跟踪视点与像素平面上的像素连线形成的射线,并计算该射线与场景中物体的交点来设置像素属性的技术,由Appe在1968年提出。该技术通常生成比典型的扫描线渲染方法质量更高的图片,但需要更高的计算成本。这使得光线跟踪更适用于如电影和电视视觉效果、静止图像等离线渲染方面而不适合在如游戏等实时渲染领域。此外,光线跟踪还可用于模拟诸如反射、折射、闪射和色散等光学效果。
BVH是一种以几何物体为对象的树结构,该树的叶子结点为与轴平行的可包围几何物体的最小立方体盒子。这些叶子结点被组合为一些集合并被更大的立方体盒子即内部结点所包围,直到最后的根结点。BVH可以有效地支持几何对象的一些操作如碰撞检测、光线跟踪加速等。
发明内容
本发明的目的是优化原有的基于GPU的计算方法,调整其并行架构使之并行效率更高,设计出一套改进的CUDA并行架构方式,利用GPU加速执行使得BVH构建速度在单个主机上的并行度进一步提高,相比当前通用方法BVH构建速度大约提升25%。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种基于动态任务调度的层次包围盒构建方法,包括以下步骤:
步骤1:初始化GPU中的全局变量g_optimizecounter,所述g_optimizecounter用于表示当前已处理任务数目;
步骤2:根据全局变量g_optimizecounter值和场景三角元片数目为线程分配任务;
步骤3:结合任务ID自顶向上遍历BVH,并读取幼树重构所需数据到局部变量;
步骤4:当warp中有符合预定条件的线程时使用warp级编程用聚类方法进行幼树重构;
步骤5:重复执行步骤2-4直到达到设定的结束条件,GPU输出计算结果。
优选的,上述的基于动态任务调度的层次包围盒构建方法,所述步骤4中所述的预定条件为warp中存在的至少一个线程的内部结点下有9个叶子结点。
优选的,上述的基于动态任务调度的层次包围盒构建方法,所述步骤2具体包括:
步骤2.1:计算当前warp中空闲的线程数目;
步骤2.2:在warp第一个空闲线程中通过获取g_optimizecounter值得到当前已处理的任务数,并放入共享变量中;若所有任务都已完成则结束循环;
步骤2.3:结合共享变量中的任务数目和当前线程在warp中空闲线程的序号,进行任务分配。
优选的,上述的基于动态任务调度的层次包围盒构建方法,所述步骤3中,终止第一个到达父结点的线程以保证处理内部结点时该结点下的所有子结点都已经处理完毕。
优选的,上述的基于动态任务调度的层次包围盒构建方法,所述步骤4中,具体包括以下子步骤:
步骤4.1:判断当前warp中是否有9个及以上线程满足条件,若没有则跳转到步骤2,若有则执行步骤4.2;
步骤4.2:从当前结点开始向下寻找9个叶子结点形成幼树;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710514892.0/2.html,转载请声明来源钻瓜专利网。