24, 25번 포스트의 내용을 먼저 숙지하는 것을 권장합니다.

카메라가 월드 좌표계의 원점에 위치하고, 사진과 같이 -z 축을 바라본다고 가정하자.
또 월드 상에 어떤 월드 좌표계상의 점 g가 존재한다고 가정하자.
이 때 카메라가 원점을 벗어나 이리저리 이동하고 회전한다면 카메라는 점 g를 어떻게 그려야 할까?

사실 카메라가 어떤 점을 그리기 위해 필요한 정보는 해당 점이 카메라 자신을 중심으로 한 상대좌표계에서 어디에 위치하고 있는지에 대한 정보뿐이다.
즉, 점 g의 좌표를 카메라의 상대좌표계로 변환한다면 우리는 점 g를 카메라에서 그려낼 수 있다.
(카메라가 물체를 2D 평면에 그리는 세부적인 원리는 여기서는 무시해도 좋다.)
카메라의 공간 정보는 TR Matrix로 표현할 수 있다. (Scaling을 하진 않으니 말이다. T는 카메라가 원점에서 이동한 만큼의 이동행렬이고, R은 처음 방향에서부터의 회전행렬이다.)
점 x는 월드 좌표계이므로, 이 점을 이동한 카메라의 상대좌표계로 표현하려면 25번에서 다룬 내용처럼
x = R^-1 * T^-1 * g
로 구할 수 있다.
이 때 R^-1 * T^-1은 24번에서 다룬 내용을 이용해 빠르게 구할 수 있다.
Why does the camera face the negative end of the z-axis by default?
I am learning openGL from this scratchpixel, and here is a quote from the perspective project matrix chapter: Cameras point along the world coordinate system negative z-axis so that when a point...
stackoverflow.com
카메라가 꼭 -z축을 바라볼 필요는 없지만 통상적으로 그렇게 하는 듯 하다.
'mathematics > game mathematics' 카테고리의 다른 글
[Mathematics] 28. 회전목마 (0) | 2022.08.07 |
---|---|
[Mathematics] 27. 기준점을 중심으로 한 원형 회전 (0) | 2022.08.07 |
[Mathematics] 25. Local vs Global Coordinate System(3D) (0) | 2022.06.23 |
[Mathematics] 24. Fast TR Matrix Inversion (0) | 2022.06.23 |
[Mathematics] 23. Eigenvectors, Eigenvalues (0) | 2022.06.06 |