Original Post
I'll start with some piece of code:
D3DXMatrixLookAtLH(&matView, &cameraPosition, &D3DXVECTOR3(0.0f, 0.0f, 0.0f), &D3DXVECTOR3(0.0f, 1.0f, 0.0f));
D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI/4, 800.0f/600.0f, 1.0f, 10000.0f);
matrixWVP = matView * matProj;
D3DXVECTOR4 lightPosPPS(cameraPosition.x, cameraPosition.y, cameraPosition.z, 1.0f);
D3DXVec4Transform(&lightPosPPS, &lightPosPPS, &matrixWVP);
The code above computes camera position in PPS's unit cube. I thought I will get some X, Y, Z values == 0.0 and to my surprise I got something like (0.0, -7.3, -1.0). Why is it so?