Передвижение и поворот одновременно

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

Модератор: Mikle

VladPro
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 15.10.2005 (Сб) 23:52

Передвижение и поворот одновременно

Сообщение VladPro » 15.03.2007 (Чт) 2:23

Что-то непонятное. Хочу сделать вращающуюся планету. Код:

Public Sub DrawMeshRoll(ByRef mDrawing As GameMesh, myX As Single, myY As Single, myZ As Single, matObj As D3DMATRIX)

Dim idMat As D3DMATRIX, i As Long
D3DXMatrixRotationY matObj, Timer / 4
idMat=matObj
D3DXMatrixTranslation matObj, myX, myY, myZ
D3DXMatrixMultiply idMat, idMat, matObj
g_D3DDevice.SetTransform D3DTS_WORLD, idMat


'Рисую subset

End Sub

У планеты своя матрица, как и у всех объектов. Всё рисуется, вращается. Но - функция IntersectM перестаёт работать, если вращать меш (при простом перемещении работает нормально). Вывод - В каком-то месте кода с перемещением/вращением матриц ошибка. Вопрос - что я делаю неправильно?

Кстати, код функции IntersectM:
' matObj - матрица конкретного объекта
Function intersectM(m As D3DXMesh, matObj As D3DMATRIX) As Boolean

Dim vista As D3DVIEWPORT8

Dim hit As Long
Dim numFacesI As Long
Dim U As Single
Dim v As Single
Dim dist As Single
Dim chits As Long

g_D3DDevice.GetViewport vista
' vPos - позиция камеры
D3DXVec3Unproject frontV, vPos, vista, matProj, camView, matObj
' vDir - вектор направления камеры
g_D3DX.Intersect m, frontV, vDir, hit, numFacesI, U, v, dist, chits

If hit = 1 Then
intersectM = True
myDist = dist
Else
intersectM = False
myDist = 10000
End If

End Function

Проверьте. Читал что-то о необходимости инвертировать матрицу в этой функции, но не понял.

VladPro
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 15.10.2005 (Сб) 23:52

Сообщение VladPro » 26.03.2007 (Пн) 21:23

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

Но многие детали по экспорту из MAX в собственную сцену непонятны. Расскажите кто как экспортирует, какие настройки моделей важны. Pivot point, например.


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

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

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

    TopList  
cron