Raycaster即使它应该也找不到相交

时间:2017-07-23 07:57:58

标签: three.js

我正在使用raycaster将一个点投射到脸上。但不知何故,这似乎不起作用。即取点(25,25,300)和方向(0,0,-1),raycaster找不到并与位于(0,0,0)的大小(30,30,30)的盒子相交。我做错了吗?

var geometry = new THREE.BoxGeometry(30, 30, 30);
var material = new THREE.MeshBasicMaterial( );
var mesh = new THREE.Mesh(geometry, material);
var dir = new THREE.Vector3(0,0,-1);
var p = new THREE.Vector3(25,25,300);
var raycaster = new THREE.Raycaster(p, dir);
var intersects = raycaster.intersectObjects(mesh); // returns an empty array

1 个答案:

答案 0 :(得分:2)

您的示例有两个问题,首先是您使用的方法raycaster.intersectObjects将数组作为参数,当您应该使用raycaster.intersectObject时需要一个对象。

其次,你错过了网格。

请尝试使用以下值:var p = new THREE.Vector3(15,15,300);。下图说明了问题..

enter image description here