@s2sk

Как перевести 3D в 2D?

Привет.

У меня есть координаты объекта в игре, представим A(x, y, z);
Есть координаты где стоит игрок B(x, y, z);
Есть координаты куда игрок смотрит C(x, y, z);

Исходя из этих данных мне нужно получить точку на мониторе 2D где находится объект, т.е. перевести все эти 3D координаты в 2D. Как это можно сделать? Размер экрана если что статический, 640x480
  • Вопрос задан
  • 5046 просмотров
Решения вопроса 1
lxsmkv
@lxsmkv
Test automation engineer
похоже "проекция точки на плоскость" это то, что вы ищете.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Если кустарно, то нужно сдвинуть и повернуть весь мир так, чтобы плоскость глаза игрока совпала с плоскостью монитора (т.е. с началом координат в центре монитора). После чего воспользоваться нехитрой формулой перевода из параллельной проекции в перспективную:

X_на_мониторе = X_из_3D / Z_из_3D
Y_на_мониторе = Y_из_3D / Z_из_3D

Так я делал 15 лет назад, когда интернета и книжек у меня не было :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы