Для каких целей мы используем матрицу проекционного представления Model View? Зачем шейдерам нужна матрица проекции проекции?
Цель Матрицы проекционных представлений
Ответ 1
Модельные, проекционные и проекционные матрицы представляют собой три отдельные матрицы. Модель отображает локальное координатное пространство объекта в мировое пространство, вид из космоса мира в пространство камеры, проекцию от камеры к экрану.
Если вы составляете все три, вы можете использовать один результат для сопоставления всего пути от пространства объекта до пространства экрана, что позволяет вам решить, что вам нужно, чтобы перейти к следующему этапу программируемого конвейера от входящего вершины.
В фиксированных функциональных конвейерах старого вы применяете модель и просматриваете вместе, затем обрабатываете освещение, используя другой результат, полученный из них (с некоторыми исправлениями, так что, например, нормали все еще имеют длину единицы, даже если вы применили некоторое масштабирование к объекту), затем примените проекцию. Вы можете видеть, что это отражено в OpenGL, которое никогда не отделяет матрицу модели и представления - сохраняя их как единый стек матрицы modelview. Поэтому вы также иногда видите, что это отражается в шейдерах.
Итак: матрица проекции проектной модели часто используется шейдерами для отображения из вершин, загруженных для каждой модели на экран. Это не требуется, есть много способов достижения одного и того же, это просто обычное, потому что оно допускает все возможные линейные преобразования. Из-за этого меньшая составленная версия этого также была нормой в мире старинного конвейера.
Ответ 2
Потому что матрицы удобны. Матрицы помогают преобразовывать местоположения/направления относительно разных пространств (пространство может быть определено тремя перпендикулярными осями и началом).
Вот пример из книги, указанной в @legendends2k в комментариях.
Жители Cartesia используют карту своего города с происхождением сосредоточенно в центре города и топоры, направленные вдоль кардинальные точки компаса. Жители Дислексии используют карта их города с координатами, центрированными в произвольной точке и оси, движущиеся в некоторых произвольных направлениях, которые, вероятно, казались хорошая идея в то время. Граждане обоих городов вполне довольны с их соответствующими картами, но государственный инженер по транспорту назначена задача поднять бюджет для первой автомагистрали между Cartesia и Dyslexia нужна карта, показывающая детали обоих городов, который поэтому вводит третью систему координат, которая превосходит ему, хотя и не обязательно кому-либо другому.
Вот еще один пример:
Предположим, что вы создали объект автомобиля в игре с его вершинными позициями, используя мировые координаты. Предположим, вы должны использовать этот же автомобиль в какой-либо другой игре в совершенно другом мире, вам нужно снова определить позиции, и вычисления будут сложными. Это связано с тем, что вам снова приходится вычислять позиции окна, капота, фары, колес и т.д. В автомобиле по отношению к новому миру.
Смотрите это видео, чтобы понять концепции модели, представления и проекции. (рекомендуется)
Затем см. this, чтобы понять, как вершины в мире представлены в виде матриц и как они преобразуются.