OpenGL函数功能---->glMatrixMode()

简述  

glMatrixMode - 指定哪一个矩阵是当前矩阵

 

参数

  mode 指定哪一个矩阵堆栈是下一个矩阵操作的目标,可选值: GL_MODELVIEW、GL_PROJECTION、GL_TEXTURE.

 

  说明:

 

  glMatrixMode设置当前矩阵模式:

 

  GL_MODELVIEW,对模型视景矩阵堆栈应用随后的矩阵操作.

 

  GL_PROJECTION,对投影矩阵应用随后的矩阵操作.

 

  GL_TEXTURE,对纹理矩阵堆栈应用随后的矩阵操作.

 

  与glLoadIdentity()一同使用

 

  glLoadIdentity():该函数的功能是重置当前指定的矩阵为单位矩阵。

 

  在glLoadIdentity()之后我们为场景设置了透视图。glMatrixMode(GL_MODELVIEW)设置当前矩阵为模型视图矩阵,模型视图矩阵储存了有关物体的信息。

 

glMatrixMode与gluPerspective函数的使用

  GL_MODELVIEW 是模型矩阵 GL_PROJECTION 是投影矩阵。 gluPerspective的是创建一个投影矩阵并且与当前矩阵相乘,得到的矩阵设定为当前变换,但要先通过glMatrixMode设定成投影矩阵才会得到想要的投影矩阵变换。

 

  例如:

 

  gluPerspective(45.0f,(GLfloat)cx/(GLfloat)cy,0.1f,100.0f);

 

  glMatrixMode(GL_MODELVIEW);

 

  可以出来结果,反之,换位置后;

 

  glMatrixMode(GL_MODELVIEW);

 

  gluPerspective(45.0f,(GLfloat)cx/(GLfloat)cy,0.1f,100.0f);

 

  则,投影矩阵位置不正确.

posted @ 2012-07-26 14:20  拿枪的程序员  阅读(227)  评论(0编辑  收藏  举报