glMatrixMode
时间: 2024-05-17 18:19:50 浏览: 5
`glMatrixMode` 是一个OpenGL函数,它用于指定矩阵堆栈中当前操作的矩阵类型。在OpenGL中,矩阵堆栈用于保存各种变换矩阵,例如模型视图矩阵、投影矩阵、纹理矩阵等等。通过调用`glMatrixMode`函数,可以指定当前要操作的矩阵类型,从而可以对该矩阵进行压栈、出栈、加载、保存等操作。
`glMatrixMode`函数接受一个枚举值作为参数,用于指定要操作的矩阵类型,常用的枚举值有:
- `GL_MODELVIEW`:模型视图矩阵,用于描述物体在场景中的位置、旋转和缩放变换。
- `GL_PROJECTION`:投影矩阵,用于将场景中的物体投影到二维屏幕上。
- `GL_TEXTURE`:纹理矩阵,用于对纹理坐标进行变换,例如平移、旋转和缩放等。
例如,如果你想对模型视图矩阵进行变换,可以先调用`glMatrixMode(GL_MODELVIEW)`来指定当前要操作的矩阵类型,然后再调用`glPushMatrix`和`glPopMatrix`等函数进行矩阵的压栈和出栈操作,最后调用`glTranslatef`、`glRotatef`等函数对矩阵进行变换。
相关问题
glmatrixmode(gl_projection)
glMatrixMode(GL_PROJECTION)是OpenGL中的一个函数,用于设置当前矩阵模式为投影矩阵模式。在投影矩阵模式下,我们可以使用glFrustum()或glOrtho()等函数来设置投影矩阵,从而实现透视投影或正交投影。
openGL中材质需要设置glMatrixMode(GL_MODELVIEW)吗?
不需要。`glMatrixMode(GL_MODELVIEW)`是OpenGL中的矩阵模式,用于指定接下来要对模型视图矩阵进行操作。而材质的设置与矩阵模式无关,可以在任何矩阵模式下进行设置。一般来说,设置材质的步骤是:
1. 开启材质功能:`glEnable(GL_LIGHTING); glEnable(GL_COLOR_MATERIAL);`
2. 设置材质的反射属性:`glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular); glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, shininess);`
3. 设置材质对光照的响应方式(单面或双面):`glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);`
需要注意的是,在设置材质之前,需要先开启光照功能:`glEnable(GL_LIGHTING);`。