게임수학/행렬

게임수학) Chapter6. World,View,Projection,Screen 행렬 (2)

PJNull 2021. 11. 27. 15:46
728x90
반응형

카메라 (Local Local Space ↔ World Space) 변환행렬

 

보통 게임을 제작할 경우 우리가 보고 있는 쪽을 +로 하는 왼손 좌표계를 사용한다. 

 

World변환행렬

위의 식은 Wolrd변환행렬의 일반식이다. S.x/S.y/S.z는 x,y,z의 스케일값(스칼라배수)이며 Right/Up/Look은 Rotation의 행렬에 해당한다.마지막으로 Pos는 Translate에 해당하는 행이다.

하지만 카메라에는 스케일이 필요치 않다. 그러므로 카메라에는 다음과 같은 Wolrd행렬 식이 성립한다.

카메라에 대한 Wolrd변환행렬

 

 

 

 

World Space ↔View Space 변환행렬

 

View Space는 카메라를 원점으로 카메라의 Z축방향을 찍는 좌표계를 의미한다. 즉, 카메라의 Local좌표로 모든 오브젝트들을 데려오면 그것이 카메라의 View Space가 되는것이다. 다른 해석으로는 카메라는 가만히 있으나 각 오브젝트들이 카메라를 기준점으로 공전하거나 이동한다는 해석이 나오게 된다.

즉, 카메라가 30도를 이동하는것과 해당 오브젝트가 카메라를 기준점으로 -30도를 회전하는것이며 카메라가 +10만큼 이동했다면 오브젝트는 -10만큼 이동한것과 같은것이다.

카메라의 World변환행렬의 역행렬을 곱하면 되는데, RT의 식을 이용했다면 아래와 같은 식을 구해야한다.

Wolrd행렬은 Rotation과 Translate행렬로 되어있는데, Rotation행렬은 x,y,z의 직교행렬이다.

전에도 언급했듯이, 직교행렬의 역행렬은 전치행렬과 동일하다.

Rotation역행렬

Translate의 역행렬은 어떠한 방향으로 이동할때 역방향을 표현해주면 역행렬이 된다.

Translate역행렬

이 두행렬을 곱해주면 View Space로의 변환이 된다.

 

정리하자면 View Space변환은 다음과 같은

식을 성립한다.

728x90
반응형