很简单的GL程序,不知道错哪里了。求助
问题说明和工程文件下载都写在下面的页面中,希望有空的达人帮忙看下。十分感激! 
http://bbs.gameres.com/showthread.asp?threadid=108906

解决方案 »

  1.   

    把void CGLDrawer::DrawGLScene()中的
    gluLookAt()
    函数删除,在void CGLDrawer::OnSize(UINT nType, int cx, int cy) 
    中,加入gluLookAt()函数调用:void CGLDrawer::OnSize(UINT nType, int cx, int cy) 
    {
    CWnd::OnSize(nType, cx, cy);

    // TODO: Add your message handler code here

    int w = cx,h = cy;
    glViewport(0,0,w,h); // 设置视口大小

    glMatrixMode(GL_PROJECTION);

    glLoadIdentity();               //注意参数值的改变
    gluLookAt(0.0f,0.0f,2.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f);

    // 采用90度视场角

    gluPerspective(90.0f,(float)w/(float)h,0.1f,100.0f);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    }
      

  2.   

    我想在每次绘制的时候使用gluLookAt根据相机位置参数改变绘制的内容,所以把gluLookAt放到了绘制函数里面~
    为什么要把它放到OnSize中处理呢?我按照你的方法做了,可是当EyePos改变的时候相应的绘制内容并没有变化....请教!
      

  3.   

    我主要的问题就是绘制的时候有部分立方体显示不出来,好像被裁掉了一样,而且gluLookAt的参数改一下就什么都看不到了,很纳闷,立方体中心是位于原点的啊,改变视点位置,但是注视位置不变,怎么会看不到呢...附图
      

  4.   

    你是不是把OPENGL坐标系当成D3D了gluLookAt(0.0f,-2.0f,0.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f);应该放在模型变换前面吧