OpenGL
에서는 좌표를 표현하기 위해 ( x, y, z, w )
를 기준으로 좌표를 표현한다.
여기서 x, y, z 는 3D 공간 상의 좌표를 의미하며 w는 좌표의 변환행렬을 위한 값으로 쓰인다.
이는 ( x, y, z, 1)
로 표현 했을 때, 즉 w가 1일 때 이동 변환, 스케일링 등에 영향을 받게 되어 공간 좌표를 뜻하게 되고 ( x, y, z, 0 )
즉, w 가 0 일 때는 변환이나 스케일링 등에 영향을 받지 않고 방향 만을 표현하게 된다.
또한 w를 이용한 동차좌표계를 통해 projection divide
가 가능하다는 것을 확인할 수 있다.
즉 w는 사물의 원근감을 표현하기 위해 사용될 수 있다는 것이다. ( 직교 투영을 의미 )

위 그림의 두 점 a(-2,-2) , b(2,-2) 를 보자.
GL의 동차좌표계를 적용하여 두 점의 z와 w는 0과 1로 가정하겠다 ( 2D 평면이므로 z=0)
만약 두 점을 바라보는 시각이 점점 멀어진다면 원근 표현상 두 점은 그림 상 0,2에 가까워질 것이다. 이러한 원근감을 표현하기 위해 projection by w
라는 방법이 쓰인다.
w로 모든 좌표를 정규화하면 위치가 나오는데 이 때 w 값이 원금감을 표현하기 위한 상수로 생각해보자
만약 a와 b가 나
로 부터 멀어져 w가 2가 되괴 이를 정규화하나면 a'는 (-2,-1) b'는 (1,-1)이 된다. 이와 같이 projection by w
는 w 값으로 현재 좌표에 대해 원금감을 표현하는 상수로 쓰는 것이다.
'Graphics And Media > OpenGL' 카테고리의 다른 글
렌더링 파이프라인의 좌표 공간과 좌표 변환 (0) | 2021.08.12 |
---|---|
OpenGL 3D Object file (0) | 2021.07.18 |
Getting started OpenGL ES with EGL (0) | 2021.05.10 |