Graphics Review - Space

EHminShoov2J·2023년 3월 9일
0

Spine Navi

목록 보기
3/4
post-thumbnail

본 시리즈에서는 증강현실 어플리 케이션을 만들기 위한 Base를 소개 하고자 한다. 기본적인 graphics의 개념과 3D 게임 엔진인 Panda3D에 대해 정리할 예정이다.

1. 3차원 Rendering이란 무엇인가?

간단하게 말해서 3D 공간에 있는 것들을 사용자의 2D 화면에 그려주는 것을 의미한다. 이때 다양한 Transform이 필요하다.


2. Space

Graphics에서 space란 각각의 물체들이 소유하는 고유 좌표계라고 생각하면 이해가 쉽다. 각각의 물체들은 그들만의 space가 존재하고 각각의 물체들은 World spcae에 배치된다.


3. Graphics Pipeline - Spcae

https://learnopengl.com/Getting-started/Coordinate-Systems
해당 페이지에 Graphics pipe라인에 대한 설명이 잘 나와있으므로, 해당 글을 기반으로 정리해 보도록 하겠다. 배치하고 싶은 각각의 물체들은 위와 같은 과정을 거쳐 World에 배치되고, 우리의 Screen에 전달된다.

1. Local space (Object space)

우리가 Scene에 배치하고 싶은 각각의 사물들이 가지는 고유 좌표계이다. 해당 space는 주로 디자이너의 영역이다.

2. World Space

우리가 배치하고자 하는 물체들을 모두 포함하는 Space로, 각각의 물체들은 해당 Space에 배치되게 된다.

3. View Spcae (Camera Space)

View Space는 World Space를 Camera가 기준인 Space로 변환해준 결과이다. Camera 또한 하나의 물체로서 World Space 상에 배치되어 있기에 Camera의 위치에 따라서 View Sapce가 다르게 정의된다. 위의 이미지를 보면 World Space 상에서 카메라가 파란색 정육면체와, 흰색 사각뿔의 위쪽에 아래쪽을 바라보고 있었기 때문에 두개의 사각형이 그려지게 되는 것을 확인할 수 있다.

4. Clip space (Projection Space)


View Space를 NDC의 형태로 변형한 Space이다. NDC 좌표계에서는 정규화된 좌표를 사용하여 쉽게 렌더링할 수 있다. NDC 좌표계는 x, y, z 축을 모두 -1과 1 사이로 정규화된 상태로 가지고 있다.

NDC란?

Normalized Device Coordinate의 약자. (이때 위의 설명에서는 Clip space와 NDC를 나누어서 설명했는데 뭐가 맞는지 확인이 필요)

5. Screen Space


NDC Space에서 사용자가 사용하는 모니터(Screen)의 coordinate에 맞게 변형해준 Spcae로 사용자의 화면에 매칭되는 Space다.


이번 포스팅에서는 Graphics Pipeline을 Spcae를 기준으로 설명하였다. 다음 포스팅에서는 각각의 Space로 변환시켜주는 matrix를 기반으로 설명해 보도록 하겠다.

0개의 댓글