Я понял!
Перемещение объектов можно осуществлять и без матриц (как в DX7RM было), при помощи перемещения вершин объекта.
Просто создаём свою функцию:
Function Translate(Mesh As D3DXMesh, xPos As Single, yPos As Single, zPos As Single)
Dim count As Long
Dim size As Long
Dim i As Long
Dim verts() As D3DVERTEX
Dim vb As Direct3DVertexBuffer8
Set vb = Mesh.GetVertexBuffer()
size = d3dx.GetFVFVertexSize(Mesh.GetFVF())
count = Mesh.GetNumVertices()
If Mesh.GetFVF() = D3DFVF_VERTEX Then
ReDim verts(count)
D3DVertexBuffer8GetData vb, 0, size * count, 0, verts(0)
For i = 0 To count - 1
verts(i).x = verts(i).x + xPos
verts(i).y = verts(i).y + yPos
verts(i).z = verts(i).z + zPos
Next
D3DVertexBuffer8SetData vb, 0, size * count, 0, verts(0)
End If
End Function
Опа! И всё работает.
И ещё хотел спросить, как бы мне эту функцию в модуль поместить, а то не выходит. Она не может d3dx найти, как мне ссылочку на него сделать. Или мне его и в модуле прописать?