본문 바로가기
DirectX/[Inflearn_rookiss] Part2: DirectX12

11. World, View 변환 행렬

by 헛둘이 2023. 1. 22.

좌표변환의 순서

Local  ->  World  ->  View  ->  Projection  ->  Screen

(Projection과 Screen은 다음 글에서 작성 예정)

 

로컬은 말 그대로 물체 A를 기준으로 한 좌표계를 의미한다.

 

월드행렬은 물체마다 다 따로 따로 있음

어떤 행렬의 좌표를 나타내는 것은 월드행렬이며, 따라서 물체마다 독립적으로 존재한다

 

어떤 물체 A의 로컬에 월드행렬을 곱하면 내가 원하는 위치와 각도, 크기로 배치가 된다.

카메라의 경우도 월드행렬을 곱해서 월드에 위치하게 해준다.

 

뷰 행렬이란

카메라의 기준을 원점으로 잡고 카메라가 찍는 방향을 Z로 잡는 뷰 행렬을 연산해주게 된다.

 


1. Local

- 모델러가 만들어주는 기본 좌표계

- 모델들의 구조를 잡는 좌표

 

2. World

- 월드의 좌표에 이 물체를 놓기 위해 사용하는게 월드 행렬

- 물체에다가 월드 행렬을 곱하면 월드에 위치가 되는 행렬

 

출처 : https://pgr21.com/freedom/59393

 

- 한마디로 정리해서 로컬 좌표에 있는 물체 A에 크기, 회전, 이동 행렬을 거치면 월드 행렬이 된다.

 

3. View

- World -> View (View 행렬로 변환)

- 카메라를 원점으로 잡고 카메라가 바라보는 방향을 Z축으로 잡는 새로운 좌표계

- 카메라를 월드에 배치시킨 후 카메라의 역행렬을 구해서 다시 카메라의 로컬로 돌아가는 것도

- 로컬 -> 월드 -> 뷰의 순서로 변환되었다고 볼 수 있다.

Translation의 역행렬은 순전히 이동량이므로 그 이동량에 마이너스 부호를 붙이면 해결되고,

Rotation의 역행렬은 Rotation 행렬이 직교행렬이다보니 역행렬 = 전치행렬이기 때문에 행렬을 전치하면 쉽게 구할 수 있다.

 

 

 

 

4.Projection

- 카메라가 찍는 영역 안에 들어가 있는 물체들을 프레임마다 잡아주는 단계

- 이 안에는 -1 ~ +1 사이읭 값으로 찍히게 된다 (NDC 좌표계)

 

5. Screen

- NDC 좌표를 스크린 좌표에 맞게 출력해주는 부분

 

 

'DirectX > [Inflearn_rookiss] Part2: DirectX12' 카테고리의 다른 글

13. Translation 정리 & Camera 클래스 추가  (0) 2023.01.24
12. Projection, Screen 변환 행렬  (2) 2023.01.23
10. 좌표계 변환 행렬  (0) 2023.01.22
9. SRT 변환 행렬  (0) 2023.01.21
8. 행렬  (0) 2023.01.19

댓글