Показать сообщение отдельно
Старый 26.08.2011, 19:21   #17
Mind
ПроЭктировщик
 
Аватар для Mind
 
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений
(для 18 пользователей)
Ответ: передвижение с помощью матриц

Как я понял матрицы нужны для конечного результата, а двигать объекты надо через вектора...
Объясните простой пример:
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;
}
Как можно обратьться к любой вершине загруженного объекта??
(Offline)
 
Ответить с цитированием