好的,问题在于:我使用PerspectiveCamera作为Object3d的子进程来追逐它。
...
player.add(backCamera);
backCamera.position.set(0, 10, -80);
backCamera.lookAt(player.position);
...
现在我正在尝试使用Raycaster找到相机和播放器之间的物体并让它们不可见,但我需要相机位置和相机方向。
感谢question我能够找到像这样的“真实”相机位置:
...
player.updateMatrixWorld();
var vector = new THREE.Vector3();
var temp = vector.setFromMatrixPosition(backCamera.matrixWorld);
...
但我仍然需要找到“真正的”相机方向。我试图遵循this approach以及该问题中链接的方法。
...
var pLocal = new THREE.Vector3( 0, 0, -1 );
var pWorld = pLocal.applyMatrix4(backCamera.matrixWorld);
var direction = pWorld.sub(backCamera.position).normalize();
raycaster.set(temp, direction);
...
但似乎光线未正确定向,可能是因为方向相对于父对象。
答案 0 :(得分:1)
了解相机正在查看的目标位置(例如,TP,目标位置),并且您知道相机位置(例如,VRP,查看参考点),相机方向简单地通过以下方式给出:
TP-VRP
您可能也想要正常化。