1
我正在調試代碼,我想查看深度圖像的掃描,但是我的相機設置不讓我看到掃描。因此,我正在玩相機設置。我在(30,120,800)處創建了一個巨大的點,我可以使用gluLookAt來查看它。 glFrustum的相關設置是什麼(左,右,下,上,近,遠)?使用我的設置,點應該完全位於中心,但我看不到它。glFrustum()與gluLookAt相比的解釋
void onDisplay()
{
glEnable(GL_NORMALIZE);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDisable(GL_CULL_FACE);
glPushMatrix();
glPointSize(1111111116.0);
glColor3f(0.25f, 0.907, 0.731f);
glLoadIdentity();
// Set the camera
//gluLookAt( 30.f, 120.0f, 800.f, 30.f, 120.0f, 800.f, 0.0f, 1.f, 0.0f); //works
glFrustum(28, 32, 118, 122, 798, 802);
glBegin(GL_POINTS);
glVertex3f(30, 120, 800); //30,120,800
glEnd();
glPopMatrix();
//glFinish();
//glutSwapBuffers();
glutSwapBuffers();
glutPostRedisplay();
}
int main(int argc, char **argv)
{
// initialize GLUT
glutInitWindowSize(800, 800);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
glutInit(&argc, argv);
glutCreateWindow("HeadPoseDemo");
glutKeyboardFunc (processSpecialKeys);
glutDisplayFunc(onDisplay);
glutMainLoop();
return 0;
}
要使用相機類比'glFrustum'來描述相機上的鏡頭(廣角,遠距,景深),但不會說相機指向的位置。 'gluLookAt'爲你指點相機。 –
從opengl教程:默認情況下,相機位於原點,指向負Z軸,並具有(0,1,0)的向上向量。所以在http://www.glprogramming.com/red/chapter03.html。隨着gluLookAt你移動相機到一個點,你設置它的方向,你設置向上指向的地方。該frustrum定義您的相機可以看到延伸。 「它的位置有多遠和多遠」 –
謝謝@理查德,你能否給我一個解釋,爲什麼我用gluLookAt(30.f,120.0f,800.f,30.f, 120.0f,800.f,0.0f,1.f,0.0f);'但不與'gluLookAt(0.f,0.0f,0.f,30.f,120.0f,800.f,0.0f, 1.f,0.0f);'。我的問題是我想看到一個點雲,需要從更遠的地方看它 – TobSta