Предыдущая Следующая
Как уже упоминалось, мировое преобразование вершин объекта может состоять из любых комбинаций вращения, трансляции и масштабирования. В математической записи вращение вершины по оси Х выглядит следующим образом:
где £ — угол вращения в радианах.
Вращение вершины вокруг оси У выглядит так:
260 Основы программирования трехмерной графики
Матричные преобразования 261
А вращение вокруг оси Z происходит по следующей формуле:
Трансляция вершины позволяет переместить эту самую вершину с координатами х, у, ъ в новую точку с новыми координатами х1, у1, ъ1. В математической записи это выглядит так:
х1=х + Тх УІ=У + Ту ъ1=ъ + Тъ.
Трансляция вершины в матричной записи выглядит следующим образом:
где Тх, Ту и Тъ — значения смещения по осям X, У и 2.
Масштабировать вершину в пространстве (удалять или приближать) с координатами х, у, ъ в новую точку с новыми значениями х1, у1, ъ1 можно посредством следующей записи:
х1=х х Б у1=у х Б ъ1=ъ х Б.
В матричной записи это выражается следующим образом:
где Sx, Sy, Sz — значения коэффициентов растяжения или сжатия по осям X, Y, Z.
Все перечисленные операции можно делать в исходном коде программы вручную, то есть вычислять приведенные записи так, как мы их только что описали. Но, естественно, так никто не делает (почти никто), потому что в XNA Framework имеется огромное количество методов, которые сделают все вышеприведенные операции за «один присест». В дальнейшем, когда мы начнем работать с объектами, вы познакомитесь с этими методами вплотную и на практике.
76.5.2. Матрица вида
Матрица вида - задает местоположение камеры в пространстве, это вторая по счету матрица, на которую умножаются вершины объекта. Эта матрица способствует определению направления просмотра трехмерной сцены. Трехмерная сцена - это все то, что вы видите на экране монитора. Это как в театре, где вы сидите в портере или на галерке и наблюдаете за действиями на сцене. Так вот, в портере у вас будет одно местоположение камеры, а на галерке - уже совсем другое.
Фактически эта матрица даже позволяет определять жанр игры. Например, игра DOOM от первого лица - это, можно сказать, первые ряды портера в театре, тогда как игра Warcraft - это галерка, причем высоко на балконе. Матрица вида предназначена для определения положения камеры в пространстве, где вы можете смещать позицию камеры влево, вправо, вверх, вниз, удалять, приближать ее и т. д.
16.5.3. Матрица проекции Предыдущая Следующая
|