发明名称 基于GPU的构建BVH树并行光线追踪方法
摘要 本发明公开了一种GPU上的并行构建BVH树进行光线追踪方法,属于计算机图形学领域。图形学中有些在传统CPU上的串行计算方法已经逐渐转移到采用拥有强大并行计算能力的GPU来处理。本发明的方法为:应用GPU并行特性进行BVH空间划分的数据结构设计;采用SAH机制并行划分空间;利用GPU并行计算射线与图形元相交信息,从而提高光线追踪效率。本发明能够在GPU处理器架构上并行高效地构建输入3D模型的高质量BVH空间划分结构,其效率要比传统CPU串行优化指令SIMD高。特别是在动态光线追踪的情形下,其加速效率要远高于目前比较流行的KD-Tree空间划分方法。
申请公布号 CN103021018A 申请公布日期 2013.04.03
申请号 CN201210441051.9 申请日期 2012.11.07
申请人 浙江工业大学 发明人 吴哲夫;虞鸿;何熊熊;陈滨
分类号 G06T15/06(2011.01)I 主分类号 G06T15/06(2011.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 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,则结束当前射线的光线追踪;若stackoffset大于0就减1, 并且把当前节点设置为栈中偏移量为stackoffset的节点,转移到步骤8)。如果BVH节点没有图形元三角形就转移到步骤11);11)根据当前节点的右节点标记变量,把右节点序号放入栈中,然后stackoffset 加1,把当前节点设置为之前节点的左节点,转移到步骤8)。
地址 310014 浙江省杭州市下城区潮王路18号