본문 바로가기

만들기 / Programming/그래픽,영상처리 OpenGL /OpenCV

GL_MODELVIEW, GL_PROJECTION 뷰 관련 정리

glMatrixMode(GLenum mode)

 

GL_MODELVIEW, GL_PROJECTION ,GL_TEXTURE 의 세가지 모드가 있음

 

GL_MODELVIEW

특정 좌표 (0,0,0)에 도형을 그린다면 GL_MODELVIEW  매트릭스를 곱해서 실제적인 위치 지정.

GL_MODELVIEW 의 매트릭스가 변경이 되어 있다면은 전혀 다른 죄표에 그려지게 되어 있음.

glTranslatef, glScalef, glRotatef 등을 통해 물체의 위치를 변환 또는 제어함 이를 모델링 변환(modeling transformation) 라고 함

모델뷰 행렬이란 좌표계 변환을 통해 물체의 위치와 방향을 결정하기 위한 4x4 행렬각 버텍스들은 하나의 열로 구성된 행렬로 만들어 져서 모델뷰 행렬과 곱해짐 

 

GL_PROJECTION

위의 GL_MODELVIEW  에서 그려진 도형에 대한 실제 위치라고 하면

GL_PROJECTION  에 있는 매트릭스를 곱해서 최종적으로 어떻게 화면에 뿌릴 것인가를 계산하는

부분임.

 

직교 투영 : (orthographic transformation)평면 투영으로 원근감이 전혀 없는 상태

              glOrthof(x최소,x최대,y최소,y최대, near,far) 등을 통해서 설정함

원근 투영 :

        gluPerspectivef(시야각 , 종횡비(뷰포트 또는 창의 너비/높이), 앞면의 z ,뒷면의 z)

 

주의

1. 아래는 각각 프로젝션 행렬을 단위 행렬로 그리고 모델뷰 행렬을 단위 행렬로 초기화 하는 것으로

   서로 영향을 끼치지 않음

 

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

 

 

참고:

http://cafe.naver.com/multism.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=3145

OpenGL super bible 3판