Я пытаюсь выбрать объекты в сцене, где я использую орфографическую камеру. мой фрагмент кода уже работает, но он не является точным. Я уже нашел ответы на stackoverflow, но они устарели или больше не будут работать. вот мой код OnMouseDown3d.js набор объектов для орфографической камеры
function onDocumentMouseUp(event) {
event.preventDefault();
mouse.x = (event.clientX/window.innerWidth) * 2 - 1;
mouse.y = - (event.clientY/window.innerHeight) * 2 + 1;
var vector = new THREE.Vector3(mouse.x, mouse.y, 0.5);
var pos = camera.position;
var ray = new THREE.Raycaster(pos, vector.unproject(camera).sub(camera.position).normalize());
var intersects = ray.intersectObjects(objects);
if (intersects.length > 0) {
console.log("touched:" + intersects[0]);
}
else {
console.log("not touched");
}
}
см http://jsfiddle.net/ujzpe07t/1/
, если нажать несколько пикселей далеко влево/вправо/выше/ниже куба, он все еще говорит мне, что объект был тронут.
Я использую three.js r69.
любые подсказки были бы очень оценены. спасибо, приветствия!
удивительным, вы зафиксировали мою проблему! Спасибо чувак! – kampfgnu
@WestLangley Я также борюсь с орто камерой и пересекаюсь. Но ваш [другой ответ] (http://stackoverflow.com/a/18553739/1697459) отличается. Почему это, я что-то упускаю? Есть ли официальная документация ThreeJS? – Wilt
@Wilt Обновлен другой ответ. Благодарю. См. Примеры three.js. – WestLangley