我试图在我使用透视相机的场景中挑选物体。我的代码片段已经 有效,但不准确。如果将鼠标悬停在多维数据集左/右/上方/下方的某些像素上,它仍会告诉我该对象已被选中(请参阅控制台输出)。
我使用three.js r69。找到我的鼠标移动代码。
function onDocumentMouseMove(event) {
event.preventDefault();
var vector = new THREE.Vector3();
var raycaster = new THREE.Raycaster();
var dir = new THREE.Vector3();
vector.set((event.clientX / width) * 2 - 1, -(event.clientY / height) * 2 + 1, 0.5);
vector.unproject(camera);
raycaster.set(camera.position, vector.sub(camera.position).normalize());
var intersects = raycaster.intersectObjects(scenemodels.children, false);
if (intersects.length > 0) {
console.log('object is selected!');
}
}
请参阅fiddler版本:http://jsfiddle.net/jpremkumar/gbdKF/65/
感谢您对此的支持。
提前谢谢。