(local, model) space =>
world space =>
(view, camera, eye) space =>
(clip, projection) space (원근 or 직교 투영) =>
(view port, window, screen) space (모니터)
(local, model) space => world space
로컬 좌표를 월드 공간으로 변환 시 사용하는 변환 행렬은 모두 다름
=>
월드의 객체는 모두 자신의 크기, 각도, 위치가 있음
보통 캐릭터가 바라보는 앞쪽 방향을 look vector, 위 방향을 up vector, 오른쪽 방향을 right vector라 함
로컬 스페이스 객체 x W = 월드 스페이스 객체
객체의 위치가 로컬 스페이스의 원점에 있다가 월드 스페이스의 특정 좌표로 변환한 것과 같음
=>
T 변환 한 것과 같음
=>
객체가 월드 스페이스에서 어떻게 놓여야할 지 알고
로컬 스페이스에서 위치가 (0,0,0) 각도가 0, 크기 비율이 1이었다고 가정하면
어떤 SRT를 곱하면 월드 스페이스에서의 위치, 각도, 크기가 되는지 알 수 있음
=>
로컬 스페이스 객체에 W 변환 행렬을 곱하거나 SRT 행렬을 곱하여 월드 스페이스 변환
역으로 W 변환 행렬을 안다면 역으로 위치, 각도, 크기를 추정할 수 있음
역행렬로 월드 공간에서 로컬 공간으로 변환 가능
world space => (view, camera, eye) space
카메라는 자신의 로컬 공간을 가지고 있음
=>
1. 월드 공간의 좌표를 카메라 로컬 공간 좌표로 변환
카메라는 월드 공간에 배치되어 있고, 월드 좌표를 가짐
=>
2. 카메라를 월드 공간으로 배치하는 W 행렬의 역행렬을 이용
XMMatrixLookAtLH
LH => Left Hand
DirectXMath 헤더에서 함수 지원
[in] FXMVECTOR EyePosition, => 카메라 월드 좌표
[in] FXMVECTOR FocusPosition, => 카메라가 바라보는 점
[in] FXMVECTOR UpDirection => 월드 좌표 기준 카메라의 up 방향