void glMaterialf (GLenum face, GLenum pname, GLfloat param);
//指定光照计算的当前材料的属性,face可以是GL_FRONT,GL_BACK,GL_FRONT_AND_BACK,
//pname表示设定特定的材料属性,param提供了具体的属性值
1.散射和环境反射
环境颜色影响物体的状整体颜色,当物体被直接照亮时,散射颜色占据主导地位,只有当物体并没有收到直接光照时,环境颜色才占据主导地位。
实例:
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, amb_Diff);
//表示材料正面和背面的散射和环境反射是amb_Diff颜色
2.镜面反射
镜面指数越大,亮点就更小更亮
GLfloat amb_Diff[4] = { 0.1, 0.5, 0.8, 1.0 };
GLfloat specular[4] = { 1, 1, 1, 1.0 };
GLfloat shin[] = { 10 };
glMaterialfv(GL_FRONT, GL_SPECULAR, specular); //颜色
glMaterialfv(GL_FRONT, GL_SHININESS, shin); //镜面指数
3.发射光颜色
使物体看上去好像发出这种颜色的光,如台灯
GLfloat emission[4] = { 0.3, 0.2, 0.2, 1.0 };
glMaterialfv(GL_FRONT, GL_EMISSION, emission); //颜色