Конкретное название того, что я пытаюсь сделать, - «отменить проект» = сопоставить точку экрана с трехмерным миром.
Итак, я нашел этот сайт, на котором есть простые уравнения для отображения 3D-координат на 2D-экране:
http://www.petesqbsite.com/sections/tutorials/tuts/perspective.html
Я широко использовал эти уравнения, но теперь я хочу иметь возможность взаимодействовать с трехмерным миром, наводя курсор на экран.
Вместо того, чтобы связывать 2D-координаты с 3D-объектами, я хотел найти уравнение, которое сопоставляет экранные точки с реальными. Я попытался реконструировать следующие 2 уравнения, чтобы попытаться найти ответ:
screenPoint.x = (int) ((eye.z * (realPoint.x-eye.x)) / (eye.z + realPoint.z) + eye.x);
screenPoint.y = 480 - (int) ((eye.z * (realPoint.y-eye.y)) / (eye.z + realPoint.z) + eye.y);
Однако мне это не удалось (не математически возможно).
Любая помощь будет принята с благодарностью!
Спасибо!