Как рассчитать координаты экрана после преобразований? - PullRequest
2 голосов
/ 29 октября 2019

Я пытаюсь решить вопрос, связанный с преобразованием координат в трехмерном пространстве, но не знаю, как к нему приблизиться.

Позволяет указать точку вершины с именем P в начале координат с помощью матрицы преобразования 4x4. ,Затем он просматривает камеру, в которой расположена матрица вида модели, а затем - простую проекционную матрицу преобразования.

Как рассчитать новые экранные координаты P '(x, y, z)?

1 Ответ

1 голос
/ 29 октября 2019

Прежде чем объяснить конвейер, вам необходимо знать, как конвейер выполняет процесс рисования на экране. Все, что находится между процессом, - это просто умножение матрицы на вектор

Модель - Мир - Камера - Проекция (или Нормализованная координата) - Экран

  1. Первый шаг, мы называем это «Пространство модели» из-за(0,0,0) основано на модели.
  2. И нам нужно переместить пространство модели в мировое пространство, потому что мы собираемся поместить модель в мир, поэтому нам нужно сделать преобразование (перевод, вращение,scale) TRS * Model (Vector4), потому что определение мирового преобразования будет другим. После этого, место модели в мире.
  3. Трижды нужно рендерить в пространстве камеры, потому что мы видим через камеру. В мире камера также имеет положение, размер области просмотра и вращение. Она должна проецироваться с камеры. см.

    После выполнения этой работы вы получите номинированную координату, технически 0-1 координаты.

  4. Окончательно, пространство на экране. Предположим, что мы собираемся сделать игру для мобильного телефона. Мобильный телефон имеет большое разрешение экрана. так как это сделать? Простой, масштабировать и перевести, чтобы получить результат в координате пространства экрана. Из-за различий в происхождении и размере экрана.

    Итак, вы должны сделать «шаг 4».

    1. Если вы хотите получить положение экрана P1 из мира, формула будетbe "Матрица экрана * матрица проекции * Матрица камеры * P1"
    2. Если вы хотите получить положение из пространства камеры, это будет "Матрица экрана * матрица проекции * P1".

Есть полезные ссылки для понимания матрицы и расчета, поэтому смотрите ссылки выше.

...