В настоящее время я работаю с использованием кривых и поверхностей Безье, чтобы нарисовать знаменитый чайник Юты. Используя пятна Безье из 16 контрольных точек, я смог нарисовать чайник и отобразить его с помощью функции "от мира к камере", которая дает возможность вращать полученный чайник, и в настоящее время я использую орфографическую проекцию.
В результате у меня есть "плоский" чайник, который ожидается, поскольку целью орфографической проекции является сохранение параллельных линий.
Однако я хотел бы использовать перспективную проекцию, чтобы дать глубину чайника. Мой вопрос в том, как взять верную 3D xyz, возвращенную из функции "мир в камеру", и преобразовать ее в двумерную координату. Я хочу использовать плоскость проекции при z = 0 и позволить пользователю определять фокусное расстояние и размер изображения с помощью клавиш со стрелками на клавиатуре.
Я программирую это в java и устанавливаю все обработчики входных событий, а также написал матричный класс, который обрабатывает базовое умножение матрицы. Некоторое время я читал википедию и другие ресурсы, но я не могу понять, как это выполняется.