Get orientation of an Object3d child
好的,问题来了:我使用 PerspectiveCamera 作为 Object3d 的子对象来追逐它。
1 2 3 4 5 | ... player.add(backCamera); backCamera.position.set(0, 10, -80); backCamera.lookAt(player.position); ... |
现在我正在尝试使用 Raycaster 来查找相机和玩家之间的对象并使它们不可见,但我需要相机位置和相机方向。
感谢这个问题,我能够找到这样的"真实"相机位置:
1 2 3 4 5 | ... player.updateMatrixWorld(); var vector = new THREE.Vector3(); var temp = vector.setFromMatrixPosition(backCamera.matrixWorld); ... |
但我仍然需要找到"真实"的相机方向。我试图遵循这种方法以及该问题中链接的方法。
1 2 3 4 5 6 7 | ... 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); ... |
但似乎光线的方向不正确,可能是因为方向是相对于父对象的。
知道相机正在查看的目标位置(例如,TP,Target Position),并且您知道相机位置(例如,VRP,View Reference Point),相机方向简单地由下式给出:
1 | TP-VRP |
你可能也想标准化。