1、 什么是运动模糊(MotionBlur)?
当人眼在观察快速运动的物体时,看到的物体是模糊的,这种现象就是运动模糊(MotionBlur)。
2、 为什么用运动模糊(MotionBlur)?
没有采用运动模糊的计算机动画,当物体快速移动时,缺乏连贯性和真实感。添加了运动模糊特效后使运动变得更平滑,场景更逼真。
3、 怎么添加运动模糊(MotionBlur)?
运动模糊关键是要得到两帧之间物体运动的速度,再根据此速度作为参数来进行模糊处理。
这里以DXSDK MotionBlur Sample为例:
1) 第一个Pass: 通过MRT,把整个场景渲染到颜色纹理,同时把每个像素的速度值存储到另一张纹理(速度值得计算是在VS中进行,分别用前一帧和当前帧的WorldViewProjection矩阵变换顶点,然后再计算两者之差,把此per-vertex velocity传道PS中作为per-pixel velocity)
2) 第二个Pass:后处理(PostProcess),渲染屏幕大小的矩形,然后再采样第一步得到的速度纹理,得到当前像素的速度,利用速度来模糊颜色纹理,得到最终结果。
具体的细节可参加DXSDK Sample PixelMotionBlur.
4, 参考文献
1) DXSDK Sample PixelMotionBlur.
2) http://http.developer.nvidia.com/GPUGems3/gpugems3_ch27.html