2
我不明白glLookAt()函数是干什么的。gluLookAt()不看它应该在什么地方
我在位置x,y,z有一个对象。当物体移动时,我想将相机放置在位置x + 20,y + 20,z + 20处,以使其看起来像静止。但是,情况并非如此:当我执行下面的代码时,我看到一个十字会慢慢向右移动,甚至从窗口中移出!
while (keystate[SDLK_ESCAPE] == false) {
SDL_PollEvent(&event);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
n+=0.1;
float x = 10;
float y = 10+n*n;
float z = 10;
// drawing an object at x,y,z (here a cross)
glBegin(GL_LINES);
glColor3ub(200,0,0);
glVertex3f(x-2,y,z);
glVertex3f(x+2,y,z);
glVertex3f(x,y-2,z);
glVertex3f(x,y+2,z);
glEnd();
// looking at the object
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(x+20,y+20,z+20,x,y,z,0,0,1);
glFlush();
SDL_GL_SwapBuffers();
}
如果相机正确地看着x,y,z,十字应该总是出现在中心?
如果我把y = 10 + n,对象看起来是静止的。当y = 10 + n * n时,物体以恒定速度移动,并且在y = 10 + n * n * n的情况下,物体移动并加速。
我也没有
gluPerspective(70,(double)640/480,1,1000);
在我的代码的开始。
预先感谢您! :S