openGL中设置光照之前需要设置glMatrixMode(GL_MODELVIEW)吗?
时间: 2024-02-16 16:01:34 浏览: 67
OpenGL实现光照
需要。在OpenGL中,设置光照需要通过对模型视图矩阵进行操作来实现。而指定接下来要对模型视图矩阵进行操作,需要先调用`glMatrixMode(GL_MODELVIEW)`来设置当前矩阵模式为模型视图矩阵模式。因此,在设置光照之前需要先设置矩阵模式为模型视图矩阵模式。
一般来说,设置光照的步骤是:
1. 开启光照功能:`glEnable(GL_LIGHTING);`
2. 开启指定编号的光源:`glEnable(GL_LIGHT0);`
3. 设置光源的位置、颜色等属性:`glLightfv(GL_LIGHT0, GL_POSITION, position); glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); glLightfv(GL_LIGHT0, GL_SPECULAR, specular);`
4. 设置材质的反射属性:`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);`
需要注意的是,在设置光照之前,需要先设置好视口、投影矩阵和模型视图矩阵等参数,以保证光照的表现效果符合预期。
阅读全文