今天调试一段OpenGL的代码花了很长时间,原因是设置了很多材质参数,但是无论如何调试,显示出来的结果都表示我的材质设置不起作用。
后来才发现在初始化的时候,输入完以下代码之后,需要再加一句很重要的命令 - glDisable(GL_COLOR_MATERIAL);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
glShadeModel(GL_SMOOTH);
//[Important!!!]Disable color materials, so that glMaterial calls work
glDisable(GL_COLOR_MATERIAL);
只有加了 glDisable(GL_COLOR_MATERIAL);这句命令之后,在其后输入的
glMaterialfv 和
glMaterialf等命令才会生效。
顺便推荐一个很不错的OpenGL Tutorial的网站: