Цель Model View Projection Matrix - PullRequest
       27

Цель Model View Projection Matrix

98 голосов
/ 05 апреля 2011

Для каких целей мы используем матрицу проекций вида модели?Почему шейдерам требуется матрица проекции модели вида?

Ответы [ 2 ]

188 голосов
/ 05 апреля 2011

Матрицы модели, вида и проекции - это три отдельные матрицы.Моделируйте карты из локального координатного пространства объекта в мировое пространство, вид из мирового пространства в пространство камеры, проекцию с камеры на экран.

Если вы сложите все три, вы можете использовать один результат, чтобы отобразить весь путь отпространство объекта до пространства экрана, позволяя вам отработать то, что вам нужно, чтобы перейти к следующему этапу программируемого конвейера из позиций входящих вершин.

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

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

7 голосов
/ 15 марта 2014

Потому что матрицы удобны. Матрицы помогают преобразовывать местоположения / направления относительно различных пространств (пространство может быть определено 3 перпендикулярными осями и началом координат).

Вот пример из книги, указанной @ legends2k в комментариях.

Жители Картезии используют карту своего города с происхождением довольно разумно в центре города и осей, направленных вдоль кардинальные точки компаса. Жители дислексии используют карта их города с координатами в произвольной точке и оси, движущиеся в некоторых произвольных направлениях, хорошая идея в то время. Жители обоих городов вполне довольны с соответствующими картами, но государственный транспортный инженер назначил задачу по сбору бюджета для первой магистрали между Картезия и Дислексия нуждаются в карте, показывающей детали обоих городов, поэтому вводит третью систему координат, которая превосходит ему, но не обязательно кому-либо еще.

Вот еще один пример,

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

См. это видео, чтобы понять концепции модели, изображения и проекции. (настоятельно рекомендуется)

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

...