Ваш вопрос немного двусмысленный.Поэтому я сделаю все возможное, чтобы объяснить, как делать камеры в XNA.
По сути, камера - это просто матрица (как вы, кажется, уже знаете) или набор матриц.Обычно у вас есть матрица просмотра (расположение камеры в мире) и матрица проекта (проекция трехмерных точек мира на 2D-окно просмотра).
Поскольку камеры так же просты, как и раньше, на самом деле нетнужна какая-то всеобъемлющая библиотека камер.Как правило, для игры легче «жестко кодировать» простой класс камер, который выполняет функции, требуемые этой игрой, чем пытаться решить экспоненциально сложную проблему создания какого-то общего класса камер, который будет работать для всех игр.
Для создания полезных матриц для камеры класс XNA Matrix
предоставляет различные методы .Например, CreatePerspective
для матрицы проекции или CreateLookAt
для матрицы вида.
(Таким образом, чтобы создать простой класс камеры, он должен получить информацию о настройке вашей камеры - положение, поле зрения и т. Д. -и выведите необходимые матрицы.)
Чтобы использовать эти матрицы при рисовании, вам необходимо установить их в свой эффект (где они будут использоваться для преобразования вершин в их позиции на экране в вашем вершинном шейдере). XNA 4.0 представляет интерфейсы эффектов , которые обеспечивают согласованный интерфейс для этого.