2016-07-06 15 views
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; 
} 
+3

カメラのアナロジー「glFrustum」は、カメラのレンズ(広角、望遠、被写界深度)を表しますが、カメラがどこを指しているかはわかりません。 'gluLookAt'はあなたのためにカメラを指します。 –

+1

openglチュートリアルから:デフォルトでは、カメラは原点にあり、負のz軸を指し、(0、1、0)のアップベクトルを持ちます。だからhttp://www.glprogramming.com/red/chapter03.html。 gluLookAtを使用すると、カメラをあるポイントに移動し、その向きを設定し、アップベクトルがどこにポイントするかを設定します。截頭は、あなたのカメラがどこまで伸びるかを定義します。 "それはその位置からどのくらい近くに見ることができるか" –

+0

@リチャード、ありがとう、私は '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

答えて

2

悪魔のは:ドキュメントに、彼らはnearVal、farVal

がに近くと遠く深さクリッピング平面を距離を指定しますと言うか注意してください。両方の距離は正でなければなりません。彼らは他のパラメータに使用する文言は異なるのです

左、右

左右の垂直クリッピング平面の座標を指定します。

あなたが知っていることは、あなたが負のz軸を見ていることです。だから私の推測では、それをglVertex3f(30.f, 120.f, -800.f);に変更したときのあなたのポイントを見極めるつもりです。

関連する問題