Exemple #1
0
Dvoid Camera::ViewMatrixCalculate()
{
    Matrix33 rotate;
    rotate.SetColumns(m_vDir[CD_RIGHT], m_vDir[CD_UP], -m_vDir[CD_FRONT]);

    rotate.Transpose();
    m_matCam[CM_VIEW].Rotation(rotate);

    // set translation (rotate into view space)
    Vector3 invEye = -(rotate* m_vPos);
    m_matCam[CM_VIEW](0, 3) = invEye.x;
    m_matCam[CM_VIEW](1, 3) = invEye.y;
    m_matCam[CM_VIEW](2, 3) = invEye.z;
}
Exemple #2
0
	//world -> view
	Matrix44 TransformHelper::CreateView(const Vector3& eye, const Vector3& lookAt, const Vector3& up)
	{				
		// compute view vectors
		Vector3 view = lookAt - eye;
		Vector3 right;
		Vector3 viewUp;
		view.Normalize();
		right = view.Cross(up);
		right.Normalize();
		viewUp = right.Cross(view);
		viewUp.Normalize();

		// now set up matrices
		// base rotation matrix
		Matrix33 rotate;
		rotate.SetColumns(right, viewUp, -view);

		// view->world transform
		// set rotation
		//Matrix44 mViewToWorldMatrix;
		//mViewToWorldMatrix.Rotation(rotate);
		//// set translation (eye position)
		//mViewToWorldMatrix(0, 3) = eye.x;
		//mViewToWorldMatrix(1, 3) = eye.y;
		//mViewToWorldMatrix(2, 3) = eye.z;

		// world->view transform
		// set rotation
		Matrix44 mWorldToViewMatrix;
		rotate.Transpose();
		mWorldToViewMatrix.Rotation(rotate);
		// set translation (rotate into view space)
		Vector3 invEye = -(rotate*eye);
		mWorldToViewMatrix(0, 3) = invEye.x;
		mWorldToViewMatrix(1, 3) = invEye.y;
		mWorldToViewMatrix(2, 3) = invEye.z;
					
		return mWorldToViewMatrix;
	}