threeJS Raycaster.set()没有检测到交叉点

时间:2016-09-02 20:29:52

标签: three.js

在投射Raycast.set()时检测交叉点时遇到问题。当我使用Raycast.setFromCamera()方法时,一切正常。

以下是我的一些代码:

var mesh = 'some mesh';

var raycast = new THREE.Raycaster();
var from = new THREE.Vector3(0, 0, 300);
var to = new THREE.Vector3(0, -100, 300);
raycast.set(from, to);

var intersection = raycast.IntersectObject(mesh);
if(intersection.lenght < 0) {
   alert('Intersection!');
}

我做错了吗?光线肯定与网格相交,我也使用ArrowHelper来确保,但是我总是得到0个交叉点。

1 个答案:

答案 0 :(得分:1)

raycaster.set( origin, direction );

directionVector3,必须进行规范化,即长度等于1。

您可以将Vector3标准化为:

vector.normalize();

three.js r.80