论文部分内容阅读
光线跟踪算法是一种原理简单、实现方便且能生成高真实感图像的主要渲染算法,已在非实时渲染领域得到了广泛的应用。随着计算机硬件条件的发展和新算法的研究,光线跟踪算法应用于交互系统和动态场景中已取得了较好的渲染效果。但对于动态复杂场景,由于场景物体的复杂性和场景动态更新特性,光线跟踪的实时渲染仍然是研究的热点和难点。针对此问题,本文对动态复杂场景中涉及的多种不同运动类型的物体,依据物体的运动特性,将物体划分为三类:静态物体,局部运动物体,运动物体。为每类物体分别构建合适的加速结构。用全局八叉树来构建场景静态几何的加速结构,并以八叉树的最大深度值来决策终止划分;对局部运动物体构建局部八叉树,其构建可以通过增加全局八叉树深度来实现;对动态几何构建两层层次包围盒结构以有效支持其在场景中的规则运动。本文对动态场景的三种加速结构,引入三层组织方式来进行管理。顶层是组织整个静态场景的全局八叉树;中间层一个是存储局部运动物体的局部八叉树,另一个是存储运动物体的BVH,这两个加速结构信息都存储于全局八叉树结构之上;最底层,是懒惰构建的BVH,此层不显著构建,只有当光线穿过全局八叉树某子空间网格,又进一步穿过运动物体BVH时才构建。最后,利用BART (A Benchmark for Animated Ray Tracing)动态光线跟踪基准提供的动态光线跟踪基准场景数据及其代码框架,进行具体的实验,着重对测试场景Kitchen、Robot进行了测试,并与两层组织方式的BVH+BVH、BVH+Kd-tree树的实现结果进行了比较。分析实验结果数据,得出结论:对动态场景中的物体分类并分别构建恰当的加速结构,用三层组织方式管理三种加速结构,对物体运动类型符合分类标准的动态场景可以取得较好的全局渲染效果,一定程度上解决了动态场景的实时渲染问题。