gluLookAt功能不起作用

时间:2014-10-17 16:05:14

标签: c++ c opengl graphics

我正在尝试更改场景中相机的位置/可视角度,但无论我输入什么,它只显示我的重塑功能中设置的默认视图(下图)

    void myReshape(int w, int h){
        glViewport(0,0,w,h);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();

        gluPerspective(40,w/h,.5, 1000);
        glMatrixMode(GL_MODELVIEW);glLoadIdentity();
}

此功能的每个其他问题通常是不正确的推 - 弹矩阵或在调用之前或之后进行翻译/旋转的结果。我不认为我有任何这些问题。这是我的显示功能。

    void myDisplay(){

  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
  gluLookAt(0.0, 0.0, 0.0, 5.0, 5.0, 5.0, 0, 1, 0);
  printf("Error: %x", glGetError());
  glPushMatrix(); //save current matrix
  glLoadIdentity(); //initialize new temp matrix to Identity
  glTranslatef(0.0,0.0,-20); //move object back to origin
  glScalef(g_vLandScale[1],g_vLandScale[1],g_vLandScale[1]);  //perform transformations
  glRotatef(g_vLandRotate[1]/float(10), 0.0,1.0,0);
  glRotatef(g_vLandRotate[0]/float(10), 1.0,0,0);
  glRotatef(g_vLandRotate[2]/float(10),0,0,1);
  glTranslatef(g_vLandTranslate[0], 0.0,0.0);
  glTranslatef(0.0,g_vLandTranslate[1],0.0);
  glTranslatef(0.0,0.0,20); //move back to original position

    renderSplines();
  renderCrossBeams();
  renderGround();
  renderSky();

    glPopMatrix();
    glutSwapBuffers();
}

关于为什么这不起作用的任何想法?它完全跳过了线,并没有改变场景。我尝试过之前,之后,使用变量,使用硬编码,使用整数,浮点数,双精度,Glfloats,Gldoubles,把它放在推/弹块中,似乎没什么用。

0 个答案:

没有答案