获取Object3d子对象的方向



好的,这里是问题:我正在使用一个PerspectiveCamera作为Object3d的子对象来追逐它。

...
player.add(backCamera);
backCamera.position.set(0, 10, -80);
backCamera.lookAt(player.position);
...

现在我正在尝试使用Raycaster来找到相机和玩家之间的对象,并使它们不可见,但我需要相机位置和相机方向。

多亏了这个问题,我才能找到像这样的"真实"相机位置:

...
player.updateMatrixWorld();
var vector = new THREE.Vector3();
var temp = vector.setFromMatrixPosition(backCamera.matrixWorld);
...

但是我仍然需要找到"真实的"相机方向。我试着遵循这个方法以及与那个问题相关的方法。

...
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),那么摄像机的方向可以简单地通过:

TP-VRP

你可能也想标准化。

最新更新