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 이상 변경해야함) 문제점 많은 오브젝트 시점 바라보게 만드는 코딩임... 해결할 사람 ㄱㄱㄱㄱ |
'Programming > DirectX' 카테고리의 다른 글
[임지웅] DX - 법선맵핑 (Normal map) (1) | 2010.06.10 |
---|---|
[서동권] Direct X Cocoa Engine (2) | 2010.06.10 |
[강민수] DirectX-기초수학 (0) | 2010.06.10 |
[손동진] 빌보드 (Billboard) (0) | 2010.06.07 |
[김재진]3D그래픽스의 개념과 렌더링파이프라인 (0) | 2010.05.27 |