I have an animation of camera and I would to pass the angle of movement to 2d sprite shader. I'm guessing I should to project these 2 vectors to camera and then compute the angle, but it doesn't work.
let prevCameraVector = null;
function tick() {
if(prevCameraVector && !prevCameraVector.equals(camera.position)) {
let vector1 = prevCameraVector;
let vector2 = new THREE.Vector3(camera.position.x, camera.position.y, camera.position.z);
vector1.project(camera);
vector2.project(camera);
let angle = vector1.angleTo(vector2);
uniforms.uRotate.value = angle;
}
prevCameraVector = new THREE.Vector3(camera.position.x, camera.position.y, camera.position.z);
}
I found an example with motion blur and took that algorithm. It works now. http://www.zeropointnine.com/blog/motion-blur-shader/