opengl 一些基本原理的理解解决方案

opengl 一些基本原理的理解
我用opengl画人脸candide模型
在OnSize()里有如下代码:
 
C/C++ code

                 CRect r;
        GetClientRect(&r);

        double rate=r.Width()/r.Height();

    glViewport(0, 0, r.Width(), r.Height());//在窗口中定义一个视区
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();//指定一个4阶单位距阵为当前的操作距阵
[color=#FF0000]//        gluLookAt(0,0,1.0,0,0,-2,0,1,0); //设置视点[/color]        
        float fNear,fFar;
        fNear = 1.0;
        fFar = 1000.0;
        //glOrtho(-1.5*rate,1.5*rate,-1.5,1.5,fNear,fFar);//正投影
        gluPerspective(50.0f, (GLdouble)r.Width()/r.Height(), fNear, fFar); //透视投影
        glMatrixMode(GL_MODELVIEW);//模型视图矩阵



没有设置视点 gluLookAt(0,0,1.0,0,0,-2,0,1,0); 时候模型正常显示 模型的中心在(0,0,-2)
但是设置之后 模型前面凸出的部分看不到了 
所以就很不理解 视点远了 不是更应该看得见吗 ? 怎么会只看到一半了 ???

------解决方案--------------------
楼主你gluLookAt(0,0,1.0,0,0,-2,0,1,0); 函数应该放在glMatrixMOde(GL_MODELVIEW)后面,
不能放在glMatrixMode(GL_PROJECTION)后面属于模视变化