관리 메뉴

Enjoy what you do!

opengl 정사영투시 reshape 해주기 본문

컴공 여러가지/OpenGL

opengl 정사영투시 reshape 해주기

쵸코맛 비비빅 2018. 3. 26. 23:27

1. 윈도우 크게에 따라 reshape 하기


void myReshape(GLsizei w, GLsizei h)   //w,h 는 윈도우 창의 넓이,높이 이다.

{

glViewport(0, 0, w, h);                   //그냥 윈도우 크기대로 뷰포트 해줌

glMatrixMode(GL_PROJECTION); 

glLoadIdentity();

if (w <= h)   //정사영 투시 벡터에 윈도우 비율을 곱해서 reshape

glOrtho(-2.0, 2.0, -2.0 * (GLfloat) h / (GLfloat) w, 2.0 * (GLfloat) h / (GLfloat) w, -1.0, 1.0);

else

glOrtho(-2.0 * (GLfloat) w / (GLfloat) h, 2.0 * (GLfloat) w / (GLfloat) h, -2.0, 2.0, -1.0, 1.0);


glMatrixMode(GL_MODELVIEW);  

glutPostRedisplay();    //플래그 설정했다가 이벤트 루프 마지막에 디스플레이해라.

}


// glortho는 정사영 투시 벡터이다. glortho2d는 마지막 매개변수 두개( near,far )가 -1,1로 디폴트되있는거다.




Comments