ModelView и проекционная матрица WebGL - PullRequest
0 голосов
/ 02 мая 2018

Я немного запутался по поводу различий между этими матрицами. Я не знаю, понял ли я, как они работают.

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

Матрица проекции определяет другие функции камеры, такие как пространство клипа, способ проецирования и поле обзора.

Это правильно? Спасибо

1 Ответ

0 голосов
/ 02 мая 2018

Это немного сбивает с толку. Матрица просмотра перемещает весь мир относительно камеры. Матрица камеры (обратная матрица вида) помещает камеру в мир.

Есть несколько способов сделать матрицу вида. Хотя обычно используется функция «lookAt», которая напрямую генерирует матрицу представления. На самом деле гораздо чаще ставить камеру в мире, как и любой другой объект. У вас была бы иерархия сцен и все в мире, камни, деревья, дома, машины, люди, камера. Затем вы вычисляете мировую матрицу для камеры, которая является «матрицей камеры», затем берете обратную величину, и вы получаете «матрицу просмотра». Так работают практически все 3d движки: Unity, Unreal, Maya, 3DSMax и т. Д.

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

Вот статья о матрицах проекций . Вот еще одна камера и матрицы просмотра

...