2
나는 카메라의 애니메이션을 가지고 있고, 나는 2d 스프라이트 쉐이더에 움직임의 각도를 전달하고자한다. 나는이 두 벡터를 카메라에 투영 한 다음 각도를 계산해야한다고 생각하지만 작동하지 않습니다.카메라의 움직임 벡터의 각도를 얻는 방법
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);
}
는 몇 번 초당 당신의 새로운'Vector3's를 인스턴스화하는거야? 하나 또는 두 개를 만들고 다시 사용하십시오. 또한,'vec.copy (camera.position)'를 사용할 수 있습니다. – WestLangley
'requestAnimationFrame'을 호출합니다. 그렇기 때문에 약간 성능이 떨어질 수 있습니다. 팁 주셔서 감사! – RED