220621) Space(Matrix), view, projection, NDC, viewport

Space (Matrix적 의미)

오브젝트를 '공간'에 잡아두기 위한 행렬을 일컫는다. 모든 오브젝트는 각자 'SRT Transform'이 포함된 고유의 Space를 가지고 있는데, 하나의 오브젝트를 구성하는 작은 부품들은 Local Space를 중심으로 구성되어있으며, 구성된 오브젝트는 장면을 구성하는 World Space를 중심으로 배치될 위치가 결정된다. 장면이 완성되면 View Space에서 장면 내 오브젝트들을 바라보는 시선(방향)이 결정되며, Projection Space를 통해 우리들의 눈에 어떻게 투영될 지를 결정한다. 이렇게 완성된 Clip SpaceViewport변환을 통해 어디까지 윈도우에 표현할 지를 결정할 수 있다.

---
View Matrix

World Space를 바라볼 위치를 결정하는 행렬이다. View Matrix는 카메라에 비유되고, View Space는 카메라로 바라본 세계에 해당한다.


---
Projection Matrix

카메라로 바라본 세계를 어떻게 투영할 지를 결정하는 행렬이다. Projection하는 방법으로는 크게 'Orthographic projection', 'Perspective projection'이 있다.

Perspective : 원근법이 적용되는 3D 화면에서 주로 사용됨.
Orthographic : 직각 투영, 원근법이 없는 2D 화면에서 주로 사용됨.

---
NDC (Normalize Device Coordinate) [Clip Space]

사용자가 모니터 속 게임의 화면을 볼때, 3D로 이루어진 공간이 렌더링을 통해 2D로 변환된 화면을 바라보게 되는데, 이것을 투영이라 부른다.

이때, 사용자가 모니터에 비친 2D의 상을 바라봤을 때 2D투영 평면이 가지는 좌표계를 NDC, 또는 Clip Space라고 한다. 위 사진처럼 [-1~1]의 범위를 가진다.

---
Viewport

Clip Space를 모니터에 표시하기 위한 틀이다. 정해진 틀에 의해 일정 영역만을 잘라내 사용자에게 보여주며, 영역 밖 공간은 그리지 않도록 한다.

이 블로그의 인기 게시물

내일배움캠프 사전캠프 - 사전캠프설 연휴 커피 파밍 이벤트 작품 [ EXTREMITY ]

내일배움캠프 29일차 - 커리어데이 2일차 : 클라이언트 프로그래머로서 포트폴리오, 입사준비팁