论文部分内容阅读
光线跟踪算法相较于光栅化渲染方法而言,其更加贴合实际的光作用过程,采用的是更加真实的全局光照,因此其渲染效果更加逼真和具有质感。但是由于光线跟踪算法计算量巨大,导致传统基于CPU的渲染方法不能满足高效渲染的要求。随着近几年来GPU用于通用计算的逐渐推广,场景管理方法的不断更新与成熟,光线跟踪算法的加速问题又成为当下的一个热点。 本文利用光线跟踪算法其特点,并根据CUDA的优势与局限性,设计并实现了一个基于CUDA并行架构下的光线跟踪渲染系统。该系统从软件和硬件两个方面对基于光线跟踪的渲染进行了加速。软件部分采用场景管理优化的方法,对场景进行分割,减少光线与面片的求交计算量。硬件加速体现在利用CUDA的并行架构,以每个像素点为一个独立线程,满足大规模多线程的并行运算。 针对光线跟踪算法和CUDA的特点,考虑到通用性、可扩展性、交互性等几个方面,利用分层设计的思想不同模块分别划分到CPU、GPU中执行,模块之间通过接口进行通信和数据交换,保证了模块的相对独立性。通过考虑CPU和GPU的性能,发挥CPU具有强大的逻辑判断能力,GPU高效的并行计算处理能力的特点,CPU端实现了模型导入模块、KD树生成模块,GPU端实现了光线生成模块、基于KD树遍历加速优化的光线求交计算。分层设计与模块化程序相结合,最大程度的发挥了CPU和GPU的长处。最后进行了反射、折射等渲染效果分析,对比了传统CPU渲染方法和本文实现方法的渲染速度,实验数据表明,通过基于CUDA的光线跟踪算法可以比传统方法快近200倍的效率。