Конкретное название того, что я пытаюсь сделать, это «unproject» =, чтобы отобразить точку экрана в трехмерном мире.
Итак, я нашел этот сайт с простыми уравнениями для отображения трехмерных координат на двухмерном экране:
http://www.petesqbsite.com/sections/tutorials/tuts/perspective.html
Я широко использовал эти уравнения, но теперь я хочу иметь возможность взаимодействовать с трехмерным миром, паря над экраном.
Вместо того, чтобы связывать 2D-координаты с трехмерными объектами, я хотел найти уравнение, которое отображает на экране точки с реальными. Я попытался выполнить обратное проектирование следующих 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);
Однако мне не удалось (математически невозможно).
Любая помощь будет принята с благодарностью!
Спасибо!