World, view 변환 행렬

ㅋㅋ·2022년 7월 21일
0

DirectX12강의

목록 보기
18/39

(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 행렬의 역행렬을 이용

View matrix=Wcam1=(RT)1View\ matrix = W^{-1}_{cam} = (RT)^{-1}

XMMatrixLookAtLH
LH => Left Hand
DirectXMath 헤더에서 함수 지원

[in] FXMVECTOR EyePosition, => 카메라 월드 좌표
[in] FXMVECTOR FocusPosition, => 카메라가 바라보는 점
[in] FXMVECTOR UpDirection => 월드 좌표 기준 카메라의 up 방향

  1. eye와 focus 점들을 이용하여 look vector 생성
    up 방향과 look vector를 이용하여 right vector 생성
    look, right vector 이용하여 up vector 생성

0개의 댓글