如何获得网格的先前位置

时间:2017-06-08 09:11:20

标签: javascript three.js glsl webgl

我正在尝试使用three.js框架编写一个着色器,用于在WebGL中执行motionBlur效果。 我正在尝试为WebGL调整本教程: http://john-chapman-graphics.blogspot.fr/2013/01/per-object-motion-blur.html 并使用GPUComputeRenderer获取速度值。

但我对这一行有疑问:

Position = uModelViewProjectionMat * gl_Vertex;
vPrevPosition = uPrevModelViewProjectionMat * gl_Vertex;

如何获取或计算PrevModelViewProjectionMat?我知道它是projectionMatrice * modelViewMatrix * vec4(位置,1.0),但不知道如何获得之前的projMatrix或之前的modelViewMatrix。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:-1)

除非您修改了相机(near,far,fov),否则之前的投影矩阵可能会相同。

您需要从上一帧计算或保存的先前modelView矩阵。然后将它作为制服提供给着色器,并进行转换。