● 摘要
光的色散现象是我们生活中常见的自然现象,其光学效果在视景仿真领域有着广泛的应用和需求。色散效果的逼真绘制对提升虚拟场景的逼真性具有十分重要的意义。在绘制具有真实感的色散效果时,一般利用光子映射全局光照算法。但光子映射算法的计算量非常大,生成图片的效率很低。为提高色散效果图片的绘制效率,本文提出了线光子模型来代替普通光子映射算法中的点光子模型。此模型利用光谱两端光子就可以直接求出中间颜色光子的信息,而不需要去跟踪这些光子在场景中的传播路径,因此可以大幅减少计算量,提高绘制效率。随着图形硬件的发展,特别是GPU编程语言的发展,使得大量并行过程可以移植得到GPU中进行并行计算,提高图片绘制速度。本文的主要研究内容和创新点为:1. 在物理模型上,给出了完整的线光子构建方法。从光源选择和色彩体系的介绍中总结出如何把D65光源发出大的白光分解成7段,并将各段光能转化为GRB形式表示;利用光的传播模型,计算出光线在进过折射后的偏移量,进而推出利用红紫光子计算中间颜色光子入射位置和入射方向的方法,构建完整的线光子模型。2. 线光子在光子映射中实现。光子映射算法是根据点光子模型计算的,要将线光子模型在光子映射中实现,需要对此算法进行一些改进。在光子跟踪阶段,当线光子遇上透明物体表面时,只会进行折射。这样就保证了线光子两端红紫光子传播的一致性。在光子图排序阶段,我们把线光子中间颜色光子的信息全部计算出来,然后将这些光子以点光子形式保存在光子图中进行排序,这样就可以成熟的算法进行搜索,提高渲染阶段的绘制效率。3. 利用CUDA对光子映射算法加速。光子映射算法中有些步骤有很强的并行特点,适合利用GPU进行并行计算加速。在整个程序中,除了场景的预计算和把最后的颜色计算结果呈现到屏幕的工作是由CPU完成的以外,其他大量的工作如光子追踪,光子图排序,渲染等工作都是由GPU完成的。