Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

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

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

где £1 — угол вращения в радианах.

Вращение вершины вокруг оси У выглядит так:

270 Основы программирования трехмерной графики

А вращение вокруг оси Z происходит по следующей формуле:

r cosQ sinQ О

- sinQ cosQ О

О 0 1

ч О О О

Трансляция вершины позволяет переместить вершину с координатами x, y, z в новую точку с новыми координатами xl, yl, zl. В математической записи это выглядит так:

xl = x + Tx

yl = У + Ty zl = z + Tz

Трансляция вершины в матричной записи выглядит следующим образом:

' 1 0 0 0 " 0 10 0 0 0 10'

чТх Ту Tz 1

где Tx, Ty и Tz — значения смещения по осям X, Y и Z.

Масштабировать вершину в пространстве (удалять или приближать) с координатами x, y, z в новую точку с новыми значениями xl, yl, zl можно посредством следующей записи:

xl=x x S yl=y x S. zl=z x S

В матричной записи это выражается следующим образом:

'Sx 0 0 0 Л

0 Sy 0 0

0 0 Sz 0 ' к 0 0 0 1 ,

где Sx, Sy, Sz — значения коэффициентов растяжения или сжатия по осям X, Y, Z.

Все перечисленные операции можно делать в исходном коде программы вручную, то есть вычислять приведенные записи так, как мы их только что описали. Но, естественно, так никто не делает (почти никто), потому что в XNA Framework имеется огромное количество методов, которые сделают все вышеприведенные операции за «один присест». В дальнейшем, когда мы начнем работать с объектами, вы познакомитесь с этими методами вплотную и на практике.

Матричные преобразования 271

15.5.2. Матрица вида

Матрица вида - задает местоположение камеры в пространстве, это вторая по счету матрица, на которую умножаются вершины объекта. Эта матрица способствует определению направления просмотра трехмерной сцены. Трехмерная сцена - это все то, что вы видите на экране телевизора. Это как в театре, где вы сидите в портере или на галерке и наблюдаете за действиями на сцене. Так вот, сидя в портере, у вас будет одно местоположение камеры, а сидя на галерке - уже совсем другое.


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz