Original Post
The translation values of view matrices is not the location of the camera, why is this? DirectX's D3DXMatrixLookAtLH Function is calculated as follows from three vectors, at, eye and up:
zaxis = normal(At - Eye)
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)
xaxis.x yaxis.x zaxis.x 0
xaxis.y yaxis.y zaxis.y 0
xaxis.z yaxis.z zaxis.z 0
-dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) 1
But why isn't the last row simply (eye.x, eye.y, eye.z, 1)? After thinking about it for a minute it seems like the translation values have been transformed into the world coordinate system from the matrices coordinate system - is that correct? and if so..why?