Deo koda izgleda ovako:
Ovako odredjujem koordinate centra mesh-a i odredjujem koliko ga treba smanjiti.
D3DXVECTOR3* pData;
g_pMesh->LockVertexBuffer( 0, (LPVOID*) &pData );
float g_fObjectRadius;
D3DXComputeBoundingSphere( pData, g_pMesh->GetNumVertices(),
D3DXGetFVFVertexSize( g_pMesh->GetFVF() ), &g_vObjectCenter,
&g_fObjectRadius );
g_pMesh->UnlockVertexBuffer();
ar = R / g_fObjectRadius; // R je precnik lopte u koju zelim da mesh stane
D3DXMatrixScaling( &matScale, ar, ar, ar );
Ovako koliko treba da pomerim mesh
D3DXMatrixTranslation( &matTrans, X - g_vObjectCenter.x,
Y - g_vObjectCenter.y,
Z - g_vObjectCenter.z );
Zatim te matrice pomnozim i postavim ih kao World matricu
D3DXMatrixMultiply( &matWorld, &matTrans, &matScale );
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
I sad kad postavim sledece matrice
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f );
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );
D3DXVECTOR3 vEyePt( X , Y + 4, Z );
D3DXVECTOR3 vLookatPt( X , Y, Z );
D3DXVECTOR3 vUpVec( 0.0f, 0.0f, 1.0f );
D3DXMATRIX matView;
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );
g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );
i postavim X = 0.0f, Y = 0.0f, Z = 5.0f, R = 0.2f na ekranu se ne vidi mesh... vidi se negde na otprilike 0, 0, 0 + nesto malo.
Probao sam i da matrice sa skaliranje i translaciju mnozim drugim redosledom, ali se i onda mesh ne nalazi tamo gde treba... ili mozda ne znam kako treba da postavim kameru i perspektivu.