1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | void CustomLookAtLH( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt, CONST D3DXVECTOR3 *pUp ) { //*pOut : 출력될 결과물(행렬) //*pEye : 월드 내에서의 카메라의 현재 위치 행렬 //*pAt : 월드 내에서의 카메라가 바라보고 있는 한 지점(한 정점이라고 생각하면 된다.) //*pUp : 월드의 업벡터 D3DXVECTOR3 xAxis; //x축 벡터 정의 D3DXVECTOR3 yAxis; //y축 벡터 정의 D3DXVECTOR3 zAxis; //z축 벡터 정의 zAxis = *pAt - *pEye; //z축 = 카메라가 바라보는 지점 - 카메라의 위치 D3DXVec3Normalize(&xAxis, &xAxis); //x축 벡터 단위화 D3DXVec3Normalize(&zAxis, &zAxis); //z축 벡터 단위화 D3DXVec3Cross(&xAxis, pUp, &zAxis); //x축 결과 리턴 = 업벡터 X(외적) z축 D3DXVec3Cross(&yAxis, &zAxis, &xAxis); //y축 결과 리턴 = z축 X(외적) x축 *pOut = D3DXMATRIX( //리턴할 결과물 (행렬) xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, -D3DXVec3Dot(&xAxis, pEye), -D3DXVec3Dot(&yAxis, pEye), -D3DXVec3Dot(&zAxis, pEye), 1 ); } | cs |
'DirectX 3D > DirectX9' 카테고리의 다른 글
27. D3DXPlaneFromPoints 함수 (0) | 2016.09.02 |
---|---|
26. IDirect3DDevice9::SetTexture 메서드 (0) | 2016.08.25 |
25. D3DTEXTUREFILTERTYPE 열거형 (0) | 2016.08.21 |
24. D3DSAMPLERSTATETYPE 열거형 (0) | 2016.08.21 |
23. IDirect3DDevice9::SetSamplerState 메서드 (0) | 2016.08.21 |