2017-01-11 2 views
0

Спасибо за помощь заранее.Three.js - отправка лучей с объекта на камеру

Класс Three.js Raycaster позволяет передавать лучи от камеры к объекту. Я хочу добиться обратной операции. Представьте себе, что у нас есть плоскость в сцене, которая представляет собой наш экран для проекции. У нас также есть объект (сетка), который будет проецироваться. Я пытаюсь найти, где будет отображаться вершина на экране.

Практически для вершины, если мы проецируем луч от вершины к камере, нам нужно найти ее пересечение с плоскостью экрана. Обратите внимание, что все здесь в 3D. Поэтому мой экран (камера) также находится в трехмерных координатах.

Советую решить эту проблему?

ответ

0

Я думаю, что вы ищете проекцию объекта3d на позицию экрана. Он ответил здесь:

answer

тогда вы будете иметь vector2d с х, у координаты экрана.

Если вы хотите, чтобы точка на фактической 3d-плоскости, вы можете сделать луч от камеры до этой позиции на экране, добавить к лучу пересечения только тот самолет, который вы находите в передней части камеры, а затем получить точка пересечения:

rayCaster.setFromCamera(vector2d, camera); 
    var aIntersects = rayCaster.intersectObject(planeInFrontOfCamera); 
    if (aIntersects.length > 0) { 
     var positionOnPlane = aIntersects[0].point. 
    }