Применение двух матриц на мир

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Применение двух матриц на мир

Сообщение KDima » 14.07.2004 (Ср) 23:19

Допустим у меня есть *.х файл...
Он должен двигаться и вращаться...
Но работает только матрица, которую я применял последней:

Dim i As Long

Dim matWorld As D3DMATRIX

D3DXMatrixTranslation matWorld, mX, mY, mZ
D3DDevice.SetTransform D3DTS_WORLD, matWorld

D3DXMatrixRotationY(MatWorld, Timer * 4)
D3DDevice.SetTransform D3DTS_WORLD, matWorld

For i = 0 To mDrawing.NumMaterials - 1
D3DDevice.SetMaterial mDrawing.MeshMaterials(i)
mDrawing.Model.DrawSubset i
Next

Как подружить их?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 15.07.2004 (Чт) 16:26

Чтобы суммировать трансформации, соответствующие матрицы нужно перемножать.

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 15.07.2004 (Чт) 19:22

Как перемножить?
Пишет: Типы несовпадают :roll:

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 16.07.2004 (Пт) 9:37

Код: Выделить всё
  D3DXMatrixTranslation Mtrx, 0, 5, 0
  d3dDevice.SetTransform D3DTS_WORLD, Mtrx
  D3DXMatrixScaling Mtrx, 2, 2, 2
  d3dDevice.MultiplyTransform D3DTS_WORLD, Mtrx

При рендере предметы будут увеличены вдвое и подняты вверх на 5 единиц.


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

    TopList