0

У меня есть две точки, которые описывают строку, проблема в том, что я знаю координаты одного для орфографической матрицы (то есть 150x250x0) и координаты для второй для перспективной матрицы (0.5x0.5x20.0f). Я хотел бы перевести орфографические координаты в перспективу, чтобы я мог нарисовать линию, используя glsl shader :). Как выполнить эту задачу?Перевести ortographic to перспективу

ответ

0

Вам нужно переместить одну из ваших вершин в другое пространство матрицы. Например, давайте переместим 150x250x0 из орфографического в перспективное пространство. Для этого вам нужно преобразовать вершину с помощью инвертированной орфографической матрицы. Я не знаю, какую математическую библиотеку вы используете, может быть, у нее уже есть функция для инверсии матрицы. В противном случае используйте код по этой ссылке: http://www.gamedev.net/topic/180189-matrix-inverse/. После этого шага ваша вершина находится в мировом пространстве.

PS: Матричная инверсия занимает некоторое значительное время для расчетов. Если вы можете отслеживать шаги трансформации (перевод, поворот и масштабирование), проще всего будет инвертировать эти шаги отдельно и составить матрицу после этого.

+0

Я уже понял другое решение, я только что переместил расстояние 150x250 в 0-1, нормализуя его, используя ширину и высоту матрицы. Это было так просто ... :) – ZZZ

Смежные вопросы