동차좌표 (Homogeneous Coordinates)

OpenGL에서의 동차좌표계는 4x4의 3차원 좌표 행렬을 4개의 수로 줄인 것입니다.


실제로 OpenGL에서는 4차원으로 연산이 이루어지는데 바로,

(x, y, z, w)

- x : x좌표

- y : y좌표

- z : z좌표 (우리가 흔히들 아는)

- w : 점인지 선인지 표현 (0은 벡터, 1은 점)

의 요소로 이루어진 동차좌표계를 사용합니다.

3개의 좌표만으로는 점인지 선인지 알 수 없기 때문에 네번째 요소인 w를 사용하여 4차원으로 구별합니다.



이 동차좌표계는 3차원의 모든 상황들을 표현할 수 있습니다.

1차원 점 : (x, 0, 0, 1)

2차원 점 : (x, y, 0, 1)

3차원 벡터 : (x, y, z, 0)

이런 식으로 표현할 수 있습니다.


동차좌표를 사용하는 이유는 시점으로부터 방향이 중요하기 때문입니다.

- OpenGL에서 표현되는 공간은 우리 눈에 보이지 않더라도 앞과 뒤의 구분이 있다는 것입니다. 그렇기 때문에 점과 벡터의 구분이 필요합니다. -> 동차좌표계 사용

- 동차좌표계가 있음으로 오브젝트의 이동을 행렬간의 곱셈으로 표현할 수 있습니다.

- 제가 써놓고도 읽으시는 분들이 헷갈리실 수 있겠다는 생각이 드네요...


컴퓨터 그래픽스에서는 동차좌표의 마지막 요소를 Scale Factor로 사용할 수 있으며, 만약 어떤 점의 좌표를 (x, y, z, w)로 표현했다면 실제 3차원 좌표의 값은 (x/w, y/w, z/w)로 될 수 있습니다.



동차좌표계를 이용한 이동, 회전, 크기변환

이동변환


크기변환


회전변환

- x축 회전


- y축 회전


- z축 회전


'Graphics > OpenGL' 카테고리의 다른 글

glModelView Matrix  (0) 2014.05.27
glPush, PopMatrix, Ortho 등  (0) 2014.05.27
glutGameModeString, EnterGameMode 등  (0) 2014.05.27
OpenGL 기초 - GLUT : Win32 예제  (0) 2014.05.27
OpenGL 기초 - GLUT : 애니메이션  (0) 2014.05.27
Posted by 긍정왕오킹