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を使用すると、カメラをあるポイントに移動し、その向きを設定し、アップベクトルがどこにポイントするかを設定します。截頭は、あなたのカメラがどこまで伸びるかを定義します。 "それはその位置からどのくらい近くに見ることができるか" –
@リチャード、ありがとう、私は 'gluLookAt(30.f、120.0f、800.f、30.f、 120.0f、800.f、0.0f、0.0f、0.0f); 'gluLookAt(0.f、0.0f、0.f、30.f、120.0f、800.f、0.0f、 1.f、0.0f); '。私の問題は、ポイントクラウドを見たいと思って、それを遠くから見る必要があるということです。 – TobSta