RTTNW-ch1:Motion Blur

Peter Shirley有三本光线追踪的书:

《Ray Tracing In The Weekend》:用两天学光线追踪

《Ray Tracing The Next Week》:用一周学光线追踪

《Ray Tracing The Rest Of Your Life》:用余生学光线追踪

 

接下来的一系列笔记是第二本书,这篇讲动态模糊。

 

在现实生活中,我们拍照时相机会打开一段时间,在其期间会因为摄像机抖动或拍摄物体运动而造成相片模糊,我们来实现一下这种效果。

首先要使我们的射线能存储这段时间:

现在将我们的摄像机在time1到time2的随机时间生成射线,相机不需要移动,只需要在一段时间内发出射线:

我们还需要一个移动的物体, 我将创建一个以线性为中心的球体类从time0的center0到time1的center1, 在这段时间之外它不需要配合相机光圈的开合。

我们也可以让所有的物体都实现动态模糊,给他们相同的开始点和结束点。在hit函数里将”center” 替换成 “center(r.time())“

将漫反射球在time0时刻的center位置移动到time1时刻的center+vec3(0,0.5*drand48(), 0)位置:

调整摄像机:

最终效果:

 

参考书籍:《Ray Tracing The Next Week》

RTTNW系列项目地址:GitHub