netlib.narod.ru< Назад | Оглавление | Далее >

Трехмерные системы координат и проекция

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

Имея дело с тремя Декартовыми измерениями, вы сталкиваетесь с двумя типами систем координат: левосторонней и правосторонней. Их названия ссылаются на направление оси Z относительно осей X и Y. Чтобы определить это направление, расположите пальцы одной руки вдоль положительного направления оси X, и согните их против часовой стрелки к положительному направлению оси Y. Ваш большой палец показывает направление оси Z. Эту концепцию иллюстрирует рис. 7.1.


Рис. 7.1. Декартовы трехмерные системы координат

Рис. 7.1. Декартовы трехмерные системы координат


Другими словами, в левосторонней системе координат значение Z становится больше (положительное направление), когда вы перемешаетесь от экрана к удаленной от вас точке (предполагается, что оси X и Y расположены на экране компьютера). В правосторонней трехмерной системе координат все наоборот: значения Z увеличиваются по мере приближения к вам от экрана.

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

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

К счастью, XNA делает всю сложную математическую работу для этого отображения, но вы должны понимать концепцию проекции (projection), и как она применяется в XNA, чтобы дать основные инструкции о том, как представлять объекты на экране.

Подобно другим игровым библиотекам, XNA поддерживает два различных вида проекции:

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


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz