论文部分内容阅读
近年来随着工业、科研和文化等领域的发展,渲染逼真图像的需求越来越多,人们对用于真实感渲染的光线跟踪算法提出了更高的要求。即在大规模复杂场景和任意光照条件下,能够利用廉价计算平台尽可能快地渲染全局光照效果。而光线跟踪算法在保证图像不失真的前提下,场景规模越大,所需的计算量也越大,通常超出了单机的处理能力。因此对算法在通用平台上的并行化研究,具有重要的现实意义。本文针对大规模场景的真实感渲染,对分布式内存环境下的光线跟踪算法进行研究。主要工作如下:首先分析了光线跟踪算法的基本流程,提出了一种新的基于场景数据并行的光线跟踪任务划分,即每个任务只处理一部分场景数据和一部分处于同一空间区域的跟踪线,并根据场景数据存储位置调度任务,减少了场景和跟踪线在集群网络中的传输开销。其次,为了根据场景分块的空间区域选择相关跟踪线,并减少不必要的求交计算,设计了一种基于网格的空间界定结构,不但能紧密贴合任意场景分块的空间区域,还能利用步进方法选择更可能交于场景块的跟踪线。并通过启发式网格划分、重叠网格整理、跟踪路径的拆分重排等方法,使得每个跟踪任务的求交结果都是有效的,每一条跟踪线的计算都能直接对渲染图像提交贡献,避免了额外的合并求交任务,以及等待整个跟踪路径的递归返回的任务依赖性,从而提高了算法效率,增加了分布式环境下渲染任务的可靠性。最后,为了使大规模场景的数据并行处理具有可伸缩性,实现数据的高可用性和处理任务的可靠执行,使用Hadoop管理分布式渲染集群。本文在该平台上利用MapReduce接口结合CUDA框架设计并实现了改进后的算法。通过与前人算法在多个指标上的比较和分析,本文算法在渲染时间上减少了12%以上,并在可伸缩性、负载均衡、以及容错性上具有良好的表现。