0
点赞
收藏
分享

微信扫一扫

《高效学习OpenGL》 之 定义材料属性 glMaterial()

void glMaterialf (GLenum face, GLenum pname, GLfloat param);
//指定光照计算的当前材料的属性,face可以是GL_FRONT,GL_BACK,GL_FRONT_AND_BACK,
//pname表示设定特定的材料属性,param提供了具体的属性值


《高效学习OpenGL》 之 定义材料属性 glMaterial()_属性值

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); //颜色




举报

相关推荐

0 条评论