, 할 수있는 가장 쉬운 방법은
glScalef를 호출하는 것입니다 (.63f, .63f, 1);
귀하의 프로젝션 매트릭스에.
그런 다음이 값에 따라 이동을 제한 할 수 있습니다.
세계 공간 좌표를 계산하려면 언제든지 gluUnProject를 사용해야합니다. 는 'X'를하고 'y'를 가정하면 세계 공간과 같이 좌표를 찾을 수 있습니다 (값이 당신이 gluPerspective을 통과) 각각 창문의 폭과 높이를 다음과 같습니다
double world_llx,world_lly,world_llz;
//world coordinates of lower left corner of window
gluUnProject(0, 0, 0, view_mat, proj_mat, viewport,&world_llx,&world_lly,&world_llz);
//world coordinate of upper right corner of window
double world_urx,world_ury,world_urz;
gluUnProject(x,y,0,view_mat,proj_mat,viewport,&world_urx,&world_ury,&world_urz);
view_mat이보기 행렬이다. proj_mat는 여러분의 투영 행렬입니다. GL_MODELVIEW_MATRIX 및 GL_PROJECTION_MATRIX와 함께 glGetDouble *을 사용하여이 두 가지를 모두 얻을 수 있습니다.
뷰포트 매개 변수의 크기는 윈도우 크기와 같을 수 있습니다. 어떤 경우 이건 glViewport로 설정 한 것입니다.
여기에 XZ 평면이 z == 0 인 것으로 가정합니다.
보기 절두체는 어떻게 생겼습니까? –
나는 45도 각도로 1에서 1000 사이 인 것으로 추측한다. (gluPerspective (45.0, (float) WIDTH/(float) HEIGHT, 1, 1000)) – user2296321
가능한 [OpenGL에서 창의 크기 설정] /stackoverflow.com/questions/16090612/setting-the-size-of-a-window-in-opengl) – datenwolf