좌표계
좌표계
3D 렌더링에는 여러 ‘좌표계’가 사용되며
‘좌표 변환’이 필요할 때가 있음
-
- 1차원 좌표계
-
하나의 ‘축’을 따라 수치의 이동을 표현
(‘축’이 하나이기에 별도의 축을 언급하지 않음)
ex : 김씨는 15미터를 걸어갔다
- 1차원 좌표계
-
- 2차원 좌표계 (데카르트 좌표계)
-
- 2개의 ‘축’을 따라 ‘이동’을 표현할 수 있음
축이 2개이기에 원점도 2개이며
그 이동한만큼의 수치를 통해 ‘좌표’를 표현할 수 있음
ex : 김씨는 동쪽으로 12미터를, 북쪽으로 3미터를 걸어갔다
(12,3)
- 2차원 좌표계 (데카르트 좌표계)
-
- 3차원 좌표계
- 3개의 축을 통해 ‘좌표’를 표시
3차원 공간에서 사용하는 좌표계이다
ex : 김씨는 김씨는 동쪽으로 12미터를, 북쪽으로 3미터를 걸어간 후,
땅을 5미터 정도 파서 그 안에 들어갔다
(12,3,-5)
(보통 높이를 표시하는 것은 게임에서 y축이지만
축은 ‘임의’로 설정할 수 있다는 걸 알아두자)
- 3차원 좌표계
화면 좌표계
화면 좌표는 2차원 좌표계(데카르트 좌표계)와 유사하지만
중심(원점)이 이미지의 ‘왼쪽 위 모서리’에 있다는 점이 다르다
화면과 이미지에 따라서 총 ‘넓이’와 ‘높이’ 가 달라지기에
자주 쓰이는 좌표는 아니다
(각각의 화면이나 이미지마다 좌표가 달라질 수 있기에
다른 화면에서 볼 때, 그 모양이 달라질 수 있음)
정규화 장치 좌표(NDC)
위의 ‘화면 좌표’ 대신 주로 사용되는 좌표계
화면(모니터)의 ‘상대적 위치’를 측정하는데 사용되며
-1부터 1까지의 값으로 지정된다
‘상대적’ 이기에, 실제 픽셀의 좌표를 계산할때
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) | 해상도 기반 픽셀 좌표 변환 | 화면 픽셀 위치로 최종 매핑 |
참고
- GPT의 표정리
- DirectX Tutorial
댓글남기기