请教高手关于OpenGL中的透视投影问题
具体代码如下:(节选)
//设置透视投影
glMatrixMode(GL_PROJECTION);
glLoadIdntity();
gluPerspective(0.0f,width/height,0.1f,100f);//width和height分别代表屏幕宽和高度
//图形绘制
glTranslatef(0.0f,0.0f,-1.0f);//或者glTranslatef(0.0f,0.0f,-6.0f)
glBegin(GL_QUADS)
glVertex3f(-1.0f,-1.0f,0.0f);
glVertex3f(1.0f,-1.0f,0.0f);
glVertex3f(1.0f,1.0f,0.0f);
glVertex3f(-1.0f,1.0f,0.0f);
glEnd();
glFinish();
以上代码为在Visual C++下利用Win32 Application生成空项目,添加*.cpp文件,编译后可以运行。
主要问题是集中在glTranslatef那句话,后面的或者部分就是把视点的平移从向屏幕内平移一个单位改成了向屏幕内平移六个单位,但是前者图形可以显示,而后者则不显示,应该是投影区域不在屏幕范围内而被裁剪掉了。但是我认为从前后透视面而言(分别为0.1f和100.0f),视点只要不落在其中就可以在屏幕上显示图形的。我认为可能是对透视投影设置的理解不足,请高手赐教!