1 분 소요

좌표계

3D 렌더링에는 여러 ‘좌표계’가 사용되며
‘좌표 변환’이 필요할 때가 있음

  • 1차원 좌표계
    Image

    하나의 ‘축’을 따라 수치의 이동을 표현
    (‘축’이 하나이기에 별도의 축을 언급하지 않음)
    ex : 김씨는 15미터를 걸어갔다

  • 2차원 좌표계 (데카르트 좌표계)
    Image
    2개의 ‘축’을 따라 ‘이동’을 표현할 수 있음
    축이 2개이기에 원점도 2개이며
    그 이동한만큼의 수치를 통해 ‘좌표’를 표현할 수 있음
    ex : 김씨는 동쪽으로 12미터를, 북쪽으로 3미터를 걸어갔다
    (12,3)
  • 3차원 좌표계
    Image
    3개의 축을 통해 ‘좌표’를 표시
    3차원 공간에서 사용하는 좌표계이다
    ex : 김씨는 김씨는 동쪽으로 12미터를, 북쪽으로 3미터를 걸어간 후,
    땅을 5미터 정도 파서 그 안에 들어갔다
    (12,3,-5)
    (보통 높이를 표시하는 것은 게임에서 y축이지만
    축은 ‘임의’로 설정할 수 있다는 걸 알아두자)

화면 좌표계

화면 좌표는 2차원 좌표계(데카르트 좌표계)와 유사하지만
중심(원점)이 이미지의 ‘왼쪽 위 모서리’에 있다는 점이 다르다
Image

화면과 이미지에 따라서 총 ‘넓이’와 ‘높이’ 가 달라지기에
자주 쓰이는 좌표는 아니다
(각각의 화면이나 이미지마다 좌표가 달라질 수 있기에
다른 화면에서 볼 때, 그 모양이 달라질 수 있음)

정규화 장치 좌표(NDC)

Image

위의 ‘화면 좌표’ 대신 주로 사용되는 좌표계
화면(모니터)의 ‘상대적 위치’를 측정하는데 사용되며
-1부터 1까지의 값으로 지정된다

Image

‘상대적’ 이기에, 실제 픽셀의 좌표를 계산할때
NDC를 적용하면 달라지는 화면에서의 좌표에서 색을 지정할 수 있음

좌표 변환

래스터화 기반의 렌더링 파이프라인에서 ‘좌표 변환’은 크게 5단계로 진행된다
‘모델 좌표계’ -> ‘월드 좌표계’ -> ‘뷰/카메라 좌표계’ -> ‘클립 좌표계’ -> ‘정규화 장치 좌표계(NDC)’ -> ‘스크린/ 픽셀 좌표계’

단계 좌표계 변환 내용 역할
1️⃣ 모델 공간 (Model Space) 개별 3D 객체의 로컬 기준 좌표 모델링 시 기준 (ex: 캐릭터 발 위치는 (0,0,0))
2️⃣ 월드 공간 (World Space) 모델 → 월드 위치로 이동 객체들이 동일한 세계에 존재하도록 위치·회전·스케일 적용
3️⃣ 카메라 공간 (View Space) 월드 → 카메라 기준으로 변환 카메라 위치에서의 상대 위치로 변환
4️⃣ 클립 공간 (Clip Space) 투영행렬 적용 원근(Perspective) 또는 직교(Orthographic) 투영
5️⃣ NDC (Normalized Device Coordinates) 동차 좌표 나눗셈(w로 나누기) (-1, -1)~(1, 1) 범위로 정규화
6️⃣ 스크린 공간 (Screen Space) 해상도 기반 픽셀 좌표 변환 화면 픽셀 위치로 최종 매핑

참고

댓글남기기