论文部分内容阅读
近年来,随着数字电影、游戏及计算机辅助制造产业的高速发展,人们对于高质量的计算机生成图像的需求越来越迫切。业界人士和研究人员将足以以假乱真的高质量数字图像称作照片级真实感图像。计算机生成照片级真实感图像是一个广泛而又深入的研究课题。渲染是绘制计算机真实感图像的关键,渲染系统的渲染效果直接影响了图像的逼真程度,其速度的快慢制约着整个系统的帧速。传统的离线渲染系统采用逐帧渲染的方式,侧重图像的渲染质量,但是渲染速度较慢。而实时渲染系统侧重系统的可交互性,渲染速度较快,但是渲染的质量相对较差。如何将两者的优点加以结合,避免各自的劣势已经成为研究者关注的焦点。从20世纪末开始,GPU(graphics Processing units,图形处理器)的诞生给高质量的实时渲染系统带了生机和活力。在最近几年的SIGGRAPH、EUROGRAPH等会议上,与基于GPU实时渲染技术相关的论文日趋增多。本文在前人已有工作的基础之上,对基于GPU的光线跟踪和基于GPU的渲染系统进行了深入的研究,并实现了一个完整的GPU渲染系统。完成的主要工作和主要贡献如下:1.在GPU上有效地结合了BVH(Bounding Volume Hierarchies,层次包围体)和kd-tree(k-dimensional tree,k维二叉树)两种空间数据结构,实现了实时的光线跟踪算法。采用GPU统一编程架构,提出了一种新的基于CUDA编程模型的结合BVH和kd-tree的光线跟踪算法。算法中首先对场景进行启发式的层次包围体分割,随后在每一个层次包围体上做启发式的kd-tree剖分,这样就形成了一种新的空间划分,有利于建立高效的空间数据结构,提高光线与场景中物体的求交速度。新设计的算法易于扩展到动态场景的光线跟踪,而且具有更快的渲染速度。2.设计了一个将REYES算法和全局光照算法结合在同一个渲染框架下的高效算法。算法采用两路渲染框架,基于将渲染任务合理地映射到GPU的基础之上,实现了高效的渲染算法。算法首先将扩展后的RLB(RenderMan Interface Bytestream,Renderman接口字节流文件)场景文件读取,对场景进行自适应QMC采样,随后将基于REYES算法计算的部分和基于全局光照引擎计算的部分分别送入多线程任务分配器。多线程任务分配器将计算的任务合理调度送入CUDA,最终在CPU上对所有线程计算的结果进行合成,得到最终渲染的图片。3.实现了一个基于复合结构的GPU渲染系统。在GPU编程平台CUDA上,将REYES算法和全局光照算法融合在一个系统中进行了实现,实验结果表明本渲染系统能够很好地融合两种渲染算法的优缺点,充分利用了GPU的计算能力,在渲染速度和质量之间取得平衡。最后,作者总结了自己在GPU渲染领域的体会,提出了下一步研究的方向。