来自相机中心的Three.js光线投射

时间:2015-07-04 13:05:22

标签: three.js

我从几周开始尝试从透视摄像机的中心进行光线投射。没有event.client.x和y,因为我使用的是设备方向:

var raycaster = new THREE.Raycaster();
var vector = new THREE.Vector3( 0, 0, 0 ); // instead of event.client.x and event.client.y
var direction = new THREE.Vector3( 0, 0, -1 ).transformDirection( camera.matrixWorld );
raycaster.set( vector, direction );
var intersects = raycaster.intersectObjects(objects);

我在(0,0,0)上有一个perspectivecamera ...我使用设备方向而不是键盘和鼠标来获得旋转...并且想要从我的摄像头中心发送的光线投射击中一个立方体。我尝试了很多关于three.js光线投射的例子,但没有成功。

我的光线投影到底是怎么回事????

2 个答案:

答案 0 :(得分:1)

对于你的光线投射矢量和方向,请使用相机世界矢量:

raycaster.set( camera.getWorldPosition(), camera.getWorldDirection() );

答案 1 :(得分:1)

使用简单:

raycaster.setFromCamera( new THREE.Vector2(), camera );  

http://jsfiddle.net/gLbkg21e/