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颜色
镜面指数越大,亮点就更小更亮
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); //镜面指数
使物体看上去好像发出这种颜色的光,如台灯
GLfloat emission[4] = { 0.3, 0.2, 0.2, 1.0 };
glMaterialfv(GL_FRONT, GL_EMISSION, emission); //颜色《高效学习OpenGL》 之 定义材料属性 glMaterial()
原文:http://blog.csdn.net/biggbang/article/details/19546351