要使物体能够根据视点的不同而看出来有光线移动的效果,我们需要加上镜面反射:由于镜面反射光的计算项=max{0,S.N}shininess*specularlight*specularmaterial,所以我们可以看出需要设置镜面反射指数GL_SHININESS,光源的镜面反射光分量以及材质的镜面反射属性:
1.材质的镜面反射光的反射率和控制亮度区域的大小的亮度:
GLfloat mat_specular[] = {1.0,2.0,1.0,1.0};
GLfloat low_shininess [] = {5.0};
glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);
glMaterialfv(GL_FRONT,GL_SHININESS,low_shininess);
2.设置光源的镜面反射分量:
GLfloat light_specular[] ={1.0,1.0,1.0,1.0};
glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);