Я пытался поместить сферу в трехмерное пространство из выбранной пользователем точки в двухмерном пространстве экрана. Для этого я пытаюсь вычислить 3D-точку из 2D-точки, используя приведенную ниже технику, и эта техника не дает правильного решения.
mousePosition.x = ((clickPos.clientX - window.left) / control.width) * 2 - 1;
mousePosition.y = -((clickPos.clientY - window.top) / control.height) * 2 + 1;
затем я умножаю mousePosition
на Inverse of MVP matrix
. Но в результате получается случайное число.
для расчета матрицы MVP:
osg::Matrix mvp = _camera->getViewMatrix() * _camera->getProjectionMatrix();
Как я могу продолжить? Спасибо.