[发明专利]基于GPU的构建BVH树并行光线追踪方法有效
申请号: | 201210441051.9 | 申请日: | 2012-11-07 |
公开(公告)号: | CN103021018A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 吴哲夫;虞鸿;何熊熊;陈滨 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06T15/06 | 分类号: | G06T15/06 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;黄美娟 |
地址: | 310014 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 gpu 构建 bvh 并行 光线 追踪 方法 | ||
技术领域
本发明属于计算机图形学领域,具体涉及一种利用GPU构建BVH树进行并行光线追踪方法的方法,该技术能够大大降低传统CPU光线追踪的计算时间。
背景技术
光线追踪算法是真实感图形学领域中的重要算法,它通过模拟光线在传播过程中的反射、折射现象,将光线的颜色与物体的材质属性结合建模,能对复杂的三维物体做出较好的仿真,适合绘制表面光洁度高或具有透明表面和镜面的场景。在整个算法中,计算量最大的就是光线与场景图形元的求交过程。若考虑动态光线追踪,还需要加上整个场景空间结构的建立。随着GPU性能正以每年翻倍的速度发展,动态光线追踪生成动画越来越成为工业界的趋势。
在对场景进行空间划分的方法中,最常用的就是KD-tree和BVH-tree。这两种方法都可以完成光线追踪,但是在动态场景当中,BVH-tree性能更加优于KD-tree。同时,实验研究已经表明表面积启发SAH方法可以生成高质量的生成树,但却需要极大的时间开销,这阻碍了BVH-tree的快速构建,且即使通过优化SAH机制还是无法达到动态光线追踪的效果。但是如果利用GPU完成BVH-tree的建立,并用GPU计算SAH函数,就可以大大加快光线追踪前期准备速度,而且利用GPU并行处理求交还可以很好弥补CPU串行计算求交的低效性。
发明内容
本发明要克服先有光线跟踪方法效率较低的缺点,提出一种在GPU上快速高效建立BVH-tree进行并行光线追踪的方法。该方法通过在GPU上高效地建立BVH-tree来加快光线追踪速度,并利用GPU并行计算光射线与图形元相交处的信息,从而提高光线追踪效率。
本发明的技术方案为:
基于GPU的构建BVH树并行光线追踪方法,其步骤为:
1)读取3D场景模型,设置三角形的模型图形元,将这些数据存储在GPU显存中。
2) 创建一个动态增长存储BVH节点的空间。
3) 根据模型图形元,分别求X轴、Y轴和Z轴的跨度,并计算出最大值,以这个最大值的坐标轴使用SAH机制划分空间。
4) 判断由步骤3)分割的子节点当中的三角形数目是否大于1,若大于1则返回到3)。
5) BVH-tree构造完毕,输出线性结构BVHlist数组。
6)根据视点和投影面构造射线。
7)构造一个BVH元素的堆栈,声明变量stackoffset=0。
8)取当前射线与当前所指BVHlist节点做相交测试。
9)如果当前射线与这个BVH节点不相交,而且如果stackoffset为0,表明当前光线与场景无相交,则结束当前射线的光线追踪;反之stackoffset大于0,那么stackoffset减1,并且把当前节点设置为堆栈中偏移量为stackoffset的节点,返回步骤8);如果当前射线与这个BVH节点相交转移到步骤10)。
10)判断该BVH节点中是否有图形元三角形,如果有,说明当前射线与一个BVH树的叶子节点正方体有相交,并继续测试该射线与节点内的三角形是否相交,如果相交就把当前的节点和三角形序号交给该射线。若stackoffset大于0就减1, 并且把当前节点设置为堆栈中偏移量为stackoffset的节点,返回步骤8)。如果BVH节点没有图形元三角形就转移到步骤11)。
11)根据当前节点的右节点标记变量,把右节点序号放入堆栈中,然后stackoffset加1,把当前节点设置为之前节点的左节点,返回步骤8)。
本发明的效果如下:首次在GPU上对3D模型实现了高质量的BVH-Tree的并行构建方法,每次划分空间采用SAH划分机制,这极大提高了BVH-Tree的平衡性。并且通过对光线与模型做并行相交运算,大大减少了原先串行计算的复杂度。
附图说明
图1为本发明的算法流程图
图2为本发明的BVH空间划分图
图3为本发明的射线与正方体求交方法图
图4 为本发明的BHV-tree保存结构图
具体实施方式
以下实施方式结合附图对本发明进行详细的描述,参照附图,本发明包括以下步骤:
1) 读取3D场景模型,并设置三角形的模型图形元,这些数据存储在GPU显存中。这些数据是以DirectX规定的SRV格式保存的,一共有两个SRV。第一个SRV中保存用于遍历的图形元三角形序号数组。第二个SRV中保存图形元三角形的顶点数组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210441051.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电动工具
- 下一篇:星载可重构协处理单元