Hello eppo,
CameraObject *cam = (CameraObject*) node->EvalWorldState(ip->GetTime()).obj;
Matrix3 atm = node->GetObjectTM(ip->GetTime(), 0);// 4x3 matrix
int ki, kj;
MRow *pcvm = atm.GetAddr();
for (ki = 0; ki < 4; ki++) {
for (kj = 0; kj < 3; kj++) {
d3dViewXform.m[ki][kj] = pcvm[ki][kj];
}
}
// Assign the fourth column (perspective terms)
d3dViewXform.m[0][3] = d3dViewXform.m[1][3] = d3dViewXform.m[2][3] = 0.0f;
d3dViewXform.m[3][3] = 1.0f;
D3DXMATRIX matrixPitch, matrixScale;
D3DXMatrixIdentity(&matrixPitch);
D3DXMatrixIdentity(&matrixScale);
D3DXMatrixRotationYawPitchRoll(&matrixPitch, 0.f, PI * .5f, 0.f);
D3DXMatrixScaling(&matrixScale, 1.f, 1.f, -1.f);
d3dViewXform = matrixPitch * matrixScale * d3dViewXform;
The camera still got distorted. I evaluated this thread again because I want +y to go upward and +z go outward.
Thanks
Jack