Make Unreal REAL.
article thumbnail
이득우의 게임 수학

 

NDC는 2차원 평면의 좌표지만, 원근 투영 행렬을 사용하도록 계산 과정을 두 단계로 구분하고 사용하는 벡터의 값도 한 차원 높였다.

  • 이렇게 한 차원 높인 벡터를 사용하는 것을 게임 제작에서는 동차 좌표계(Homogeneous coordinate system)를 사용한다고 표현한다.

 

동차 좌표계의 동차는 모든 차수가 같음을 의미하는 수학 용어다.

 

 

원근 투영을 위해 하나의 점으로 모이는 사각뿔의 사영 공간과 동차 좌표계가 어떤 연관이 있는지 알아보자.

 

3차원 사영 공간에서 Z축에 평행하게 점을 이동시키면, 투영된 점은 사영 공간의 점이 카메라로부터 가까울수록 원점에서 멀어지고, 카메라로부터 멀어질수록 원점에 가까워지는 반비례 관계를 가진다.

 

 

3차원 사영 공간의 점은 (x', y', 'z)로 표기하고 해당 점이 투영된 NDC 좌표를 (x, y)라고 해보자.

 

NDC 좌푯값은 사영 공간의 마지막 차원 값 z'에 반비례하므로, 다음과 같은 관계가 성립한다.

 

 

화면에 보이는 NDC 공간의 직선 y = ax + b가 사영 공간의 점들이 투영되어 만들어졌다고 가정해보자.

 

 

이 직선의 방정식을 사용 공간의 좌표로 표현해보면 다음과 같다.

 

 

이 식의 양변에 z'을 곱하면 상수가 사라지고 세 미지수의 차수가 모두 1차식으로 동일한 동차 방정식(Homogeneous equation)이 된다.

  • 그래서, 사영 공간이 사용하는 좌표계를 동차 좌표계라고 한다.

 

 

원근 투영 행렬 P를 설계하기 위해 계산 과정을 두 단계로 나눠 진행했는데, 첫 번째 단계로 구한 좌표를 클립 좌표라고 하며 이는 투영 되기 전의 사영 공간의 좌표를 의미한다.

  • 따라서 원근 투영 변환에서 사용된 사영 공간 - 클립 공간 - 동차 공간은 모두 동일한 공간을 가리키고, 클립 좌표와 동차 좌표 역시 동일한 좌표계를 가리킨다.

 

사영 공간의 점이 카메라로부터 멀어질수록 투영된 NDC 좌푯값은 소실점(Vanishing point)인 원점(0, 0)에 가까워진다.

 

'게임 수학 > 이득우의 게임 수학' 카테고리의 다른 글

원근 보정 매핑  (0) 2023.05.16
깊이(Depth)  (0) 2023.05.15
원근 투영 변환의 원리  (0) 2023.05.13
삼중곱(Triple product)  (0) 2023.05.12
로드리게스 회전 공식  (0) 2023.05.11
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그