原文地址:http://ogldev.atspace.co.uk/www/tutorial41/tutorial41.html
背景知识:
运行模糊是高速3D游戏中常用的技术,它的目的是在运动的物体上加入模糊效果。这个增加了玩家的真实体验感。运动模糊可以使用多种方式实现。基于模糊的摄像机,它的焦点在移动的摄像机,还有一种方式是基于模糊的物体。本节我们使用一种技术来实现后者。
运动模糊背后的原理是,我们可以计算一个运动的向量,叫做为运动向量,它是在两帧之间对渲染的像素进行运动。从当前的颜色缓冲中沿着这个向量采样,然后对结果进行平均,结果就会得到像素,它代表了潜在的运动的物体。这就是运动模糊的全部。让我们详细的介绍下。下面就是介绍需要的步骤,介绍这个之后,将会重新回顾下代码。
1、技术被分为两个部分-渲染通道和运动模糊通道。
2、在渲染通道中,我们渲染两个缓冲-正常的颜色缓冲和一个运动向量缓冲。颜色缓冲包含了原始图片,他是没有运动模糊的渲染原始图片。运动向量包含了一个向量,针对的是每个像素,它代表了当前帧和之前帧的屏幕移动方向。
3、运动向量的计算是提供前一帧的WVP矩阵给vs。我们使用当前的WVP矩阵对局部坐标空间的每个顶点进行变换,然后利用前一帧的WVP矩阵用于裁剪空间,然后把两个结果传给FS。在FS中对裁剪空间的位置进行插值,然后除以W坐标得到NDC坐标。这就完成了把坐标映射到屏幕,所以我们可以用当前点位置减去前一阵的位置而得到运动向量。这个运动向量存储于一个纹理。
4、
OGL(教程41)——物体运动模糊
最新推荐文章于 2024-07-28 17:30:00 发布