Существуют ли библиотеки камер для XNA? - PullRequest
2 голосов
/ 04 марта 2011

Существуют ли библиотеки разных камер для XNA? Я искал вокруг и нашел много разных классов камер с разными интерфейсами (или вообще без определенного интерфейса), но без общего интерфейса со стандартными определениями камер.

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

1 Ответ

4 голосов
/ 04 марта 2011

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

По сути, камера - это просто матрица (как вы, кажется, уже знаете) или набор матриц.Обычно у вас есть матрица просмотра (расположение камеры в мире) и матрица проекта (проекция трехмерных точек мира на 2D-окно просмотра).

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

Для создания полезных матриц для камеры класс XNA Matrix предоставляет различные методы .Например, CreatePerspective для матрицы проекции или CreateLookAt для матрицы вида.

(Таким образом, чтобы создать простой класс камеры, он должен получить информацию о настройке вашей камеры - положение, поле зрения и т. Д. -и выведите необходимые матрицы.)

Чтобы использовать эти матрицы при рисовании, вам необходимо установить их в свой эффект (где они будут использоваться для преобразования вершин в их позиции на экране в вашем вершинном шейдере). XNA 4.0 представляет интерфейсы эффектов , которые обеспечивают согласованный интерфейс для этого.

...