출처 : https://m.blog.naver.com/pkk1113/220368225985
OpenGL에는 4개의 공간이 있다.
그중에 하나인
투상 공간
OpenGL의 3D 공간 속에서 어디부터 어디까지만 보이게 하느냐
영역을 정해서, 그 영역 밖으로 나가는 사물들은 잘려 보인다.
그래서 절단 좌표라고도 한다.
glMatrixMode(GL_PROJECTION)
투상 좌표계(GL_PROJECTION)의 공간을 앞으로 계산하겠다는 뜻
투상을 표현하기 전에 선언
glMatrixMode(GL_MODELVIEW)
모델 좌표계와 시점 좌표계(GL_MODELVIEW) 의 공간을 앞으로 계산하겠다는 뜻
사물, 시점을 표현하기 전에 선언
glLoadIdentity()
좌표계를 초기화
glMatrixMode(GL_PROJECTION); // matrixmode? 모든 이벤트의 값을 컴퓨터는 행렬 스택으로 갖고 있음; 좌표계를 투영 표현 모드로 설정 glLoadIdentity(); // 행렬 초기화(단위 행렬로)
gluOrtho2D(0.0, 50.0, 0.0, 50.0); // 뷰 볼륨 설정(카메라에서 가장 먼 거리와 가장 가까운 거리 설정)
glMatrixMode(GL_MODELVIEW); // 좌표계를 사물, 시점 표현 모드로 설정 |
① glOrtho
정투상으로 시점을 기준으로 좌, 우, 상, 하, 전, 후 어디까지 보이게 하나 정합니다.
※ near : z 축으로 시점으로부터 가까운 거리
※ fat : z 축으로 시점으로부터 먼 거리
※ 즉, near 쪽에서 far 쪽으로 바라본다고 생각하면 됩니다.
※ far - near 값이 보이는 z 축 공간이라고 생각하면 된다.
OpenGL의 기본 투상은 glOrtho(-1, 1, -1, 1, -1, 1)입니다.
투상 좌표를 정의하기 위해서는 우선적으로 시점 좌표가 정해져야 합니다. (시점 기준으로 near, far과 쓰이기 때문에...)
그래서 glMatrixMode(GL_PROJECTION); 이걸 먼저 코딩하고
그다음 glMatrixMode(GL_MODELVIEW);를 코딩하는 것입니다.
'컴퓨터 그래픽스 > OpenGL' 카테고리의 다른 글
[컴퓨터그래픽스][OpenGL] glLogicOp, Rubberband 고무줄 기법 XOR (0) | 2019.04.19 |
---|---|
[컴퓨터그래픽스][OpenGl] viewport 뷰포트 (0) | 2019.04.18 |
[컴퓨터그래픽스][OpenGL] 상태머신 state machine (0) | 2019.04.18 |
[컴퓨터그래픽스][OpenGL] OpenGL 기초-GLUT (0) | 2019.04.08 |