Как я понял матрицы нужны для конечного результата, а двигать объекты надо через вектора...
Объясните простой пример:
1)загружаю модель шара("shar.x")
2)создаю матрици мира,вида,проэкции.
3)теперь чтобы передвинуть шар нужно каждую вершину передвинуть на общее/определенное значение. ДА?
Так вот:
....
....
D3DXLoadMeshFromX(L"shar.x",D3DXMESH_SYSTEMMEM,d3d_device,NULL,&pMeshBuffer,NULL,&dwNumber,&pMesh);
D3DXMATRIX matWorld;
D3DXMATRIX matView;
D3DXMATRIX matProj;
matWorld._11 = 1; matWorld._12 = 0; matWorld._13 = 0; matWorld._14 = 0;
matWorld._21 = 0; matWorld._22 = 1; matWorld._23 = 0; matWorld._24 = 0;
matWorld._31 = 0; matWorld._32 = 0; matWorld._33 = 1; matWorld._34 = 0;
matWorld._41 = 0; matWorld._42 = 0; matWorld._43 = -10; matWorld._44 = 1;
d3d-device->SetTransform(D3DTS_WORLD,&matWorld);
matView._11 = 1; matView._12 = 0; matView._13 = 0; matView._14 = 0;
matView._21 = 0; matView._22 = 1; matView._23 = 0; matView._24 = 0;
matView._31 = 0; matView._32 = 0; matView._33 = 1; matView._34 = 0;
matView._41 = 0; matView._42 = 0; matView._43 = 0;matView._44 = 1;
d3d-device->SetTransform(D3DTS_VIEW,&matView);
matProj._11 = 1; matProj._12 = 0; matProj._13 = 0; matProj._14 = 0;
matProj._21 = 0; matProj._22 = 1; matProj._23 = 0; matProj._24 = 0;
matProj._31 = 0; matProj._32 = 0; matProj._33 = 1000/999; matProj._34 = 1;
matProj._41 = 0; matProj._42 = 0; matProj._43 = -1000/999; matProj._44 = 0;
d3d-device->SetTransform(D3DTS_PROJECTION,&matProj);
while(1)
{
....
....
d3d-device->BeginScene();
for(DWORD i=0;i<dwNumber;i++)
{
pMesh->DrawSubset(0);
}
//Что сдесь написать чтобы передвинуть точку/точки в пространстве (Локальном)???
dev->EndScene();
dev->Present(NULL,NULL,NULL,NULL);
....
....
return 0;
}
Как можно обратьться к любой вершине загруженного объекта??