Programming/DirectX
[김재진] 카메라 시점 자동 설정
알 수 없는 사용자
2010. 7. 6. 17:01
Y값과 Z값은 0.1f 이상이어야 한다. D3DXVECTOR3 DA = D3DXVECTOR3(0.0f, 0.1f, 0.0f); // Object 위치정보를 저장한 Vector Y값 m_fXAngle = D3DXVec3Dot(&DA, &m_vCameraPos); zDA = D3DXVECTOR3(0.1f, 0.0f, 0.0f); // Object 위치정보를 저장한 Vector X값 m_fYAngle = -D3DXVec3Dot(&m_vCameraPos, &DA); // D3DXToDegree : 값 // D3DXToRadian : 각도 // 회전값을 저장한 Quaternion변수에 Rotation값을 저장 D3DXQuaternionRotationYawPitchRoll( &m_qRotation , D3DXToRadian(m_fYAngle) , D3DXToRadian(m_fXAngle) , 0.0f); // 회전과 이동을 곱한 것을 m_qRotation을 행렬변수인 m_matOrientation로 변경 D3DXMatrixAffineTransformation(&m_matOrientation, 1.0f, NULL, &m_qRotation, &m_vCameraPos); /* m_matOrientation을 m_matView에 반대값을 입력 (카메라가 움직이는것이 아닌 월드행렬이 움직이는 것이기 때문에) */ D3DXMatrixInverse( &m_matView, NULL, &m_matOrientation ); 단, 카메라의 위치가 Z축이 0.001보다 낮다면 X와 Y값의 변경 가중치 값을 변경해야 한다. (0.5f 이상 변경해야함) 문제점 많은 오브젝트 시점 바라보게 만드는 코딩임... 해결할 사람 ㄱㄱㄱㄱ |