Показать сообщение отдельно
Старый 02.09.2010, 00:13   #263
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Да, костями самое простое, их можно вращать, масштабировать и смещать без проблем.

Матрицы трансформаций на прямую для многих задач в юнити не используются. Они имеют обертку в виде Transform. У Transform есть два матричный поля, с помощью которых можно выполнят трансформации в локальные и глобальные координаты.

В общем матрица 4х4 элемента представляет собой матрицу трансформаций вращения позиции и масштаба. Каждый элемент матрицы может вычисляться по спец формулам. Суммарные трансформации получаются путем умножения матриц.

например матрица смещения:
[ 1 0 0 0 ]
[ 0 1 0 0 ] 
[ 0 0 1 0 ]
[ X Y Z 1 ]

матрица масштабирования
[ X 0 0 0 ]
[ 0 Y 0 0 ] 
[ 0 0 Z 0 ]
[ 0 0 0 1 ]

матрица поворота вокруг оси x:

  [ 1    0      0    0 ]

  [ 0  cos α  sin α  0 ]

  [ 0 -sin α  cos α  0 ]

  [ 0    0      0    1 ]
матрица поворота вокруг оси y:

  [ cos α  0 -sin α  0 ]

  [   0    1    0    0 ]

  [ sin α  0  cos α  0 ]

  [   0    0    0    1 ]
матрица поворота вокруг оси z:

  [ cos α  sin α  0  0 ]

  [-sin α  cos α  0  0 ]

  [   0      0    1  0 ]

  [   0      0    0  1 ]
и т.д.

Все формулы создания таких матриц наверняка есть уже в классе матриц юнити. Так что помнить их не нужно.

Вот ссылка на википедию
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Illidan (03.09.2010)