깊이 이미지 스캔을보고 싶지만 내 카메라 설정에서 스캔을 볼 수없는 코드를 디버깅하고 있습니다. 따라서 나는 카메라 설정으로 놀고있다. 나는 (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. gluLook을 사용하면 카메라를 한 지점으로 이동하고 방향을 설정하면 위로 벡터가 가리키는 위치를 설정할 수 있습니다. 절두체는 카메라가 어느 정도까지 연장되는지를 정의합니다. "그 위치에서 얼마나 가까이서 볼 수 있느냐" –
고마워요 @ 리차드, '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