2015-07-29 2 views
0

Я использую OrthographicCamera и простую PlaneBufferGeometry (300, 500), которая вращается. Я использую код ниже, но независимо от того, где я нажимаю мышь, он никогда не пересекается. Я пробовал все, что мог, но все равно не могу заставить его работать.Raytracing with threejs

Вот мой код:

var vector = new THREE.Vector3(); 
var raycaster = new THREE.Raycaster(); 
var dir = new THREE.Vector3(); 
vector.set((event.clientX/$(container).width()) * 2 - 1, - (event.clientY/$(container).height()) * 2 + 1, - 1); // z = - 1 important! 
vector.unproject(camera); 
dir.set(0, 0, - 1).transformDirection(camera.matrixWorld); 
raycaster.set(vector, dir); 
var intersects = raycaster.intersectObjects(objects, true); 

Любые предложения будут высоко оценены

ответ

0

Там, кажется, гораздо более простой способ сделать это:

mouse.x = (event.clientX/window.innerWidth) * 2 - 1; 
mouse.y = - (event.clientY/window.innerHeight) * 2 + 1; 
raycaster.setFromCamera(mouse, camera); 
var intersects = raycaster.intersectObjects(objects); 

Если у вас есть больше проблемы с этим, вот рабочий пример: http://threejs.org/examples/#webgl_interactive_cubes

Надеюсь, я мог бы помочь! =)