Пожалуйста, объясните параметр направления Ray.aster
Я пытаюсь получить обнаружение столкновений по сеткам, которые я выкладываю на сцене Three.js. Я не совсем понимаю, как работает Raycaster reallu и правильно ли я понимаю.
Вот скрипка, чтобы описать, с чем у меня проблема
//Add cuba at 40/40
geometry = new THREE.CubeGeometry(20, 20, 20);
material = new THREE.MeshNormalMaterial();
mesh = new THREE.Mesh(geometry, material);
mesh.position.setY(40)
scene.add(mesh);
//Add Ray
var origin = new THREE.Vector3(50, 0, 0),
direction = new THREE.Vector3(-1,0,0),
ray = new THREE.Raycaster(origin, direction),
collisionResults = ray.intersectObjects([mesh]);
if(collisionResults.length!==0){
alert('Ray collides with mesh. Distance :' + collisionResults[0].distance)
}
//Add Arrow to show ray
scene.add( new THREE.ArrowHelper(direction, origin, 50, 0x000000));
Не работает: http://jsfiddle.net/FredricBerling/LwfPL/1/
За работой: http://jsfiddle.net/FredricBerling/LwfPL/3/
По сути, скрипка выкладывает куб, а 50 точек образуют, что я стреляю в луч "направление», Проблема, кажется, в том, что в ней говорится "удар" даже если это не должно
Я выкладываю Arrowhelper, чтобы показать, где я подозреваю, что Raycaster стреляет в свой луч.
Из других тестов кажется, что направление в Raycaster отличается от направления в Arrowhelper. Raycaster, кажется, стреляет лучом в 0,0,0 сцены. я сбит с толку
РЕДАКТИРОВАТЬ!. Роб дал ответ. Мне нужно было убедиться, что сетки были отрисованы так, чтобы были применены матрицы. Fiddle обновлен правильным кодом, который работает для тестирования Raycaster, как и ожидалось.