|
|
发表于 2006-4-29 10:21:00
|
显示全部楼层
Re: 问:如何在在有材质的模型上面加颜色
可以为特殊的面片改变材质属性
glPushAttrib(GL_LIGHTING_BIT);
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
glMaterialfv(GL_FRONT, GL_SHININESS, shinness );
glMaterialfv(GL_FRONT, GL_EMISSION, emission);
draw_the_special_triangle();
glPopAttrib();
ambient....等是你需要的颜色分量数组。用glPushAttrib(GL_LIGHTING_BIT); glPopAttrib();为了保存当前的材质属性,画完特殊的面片后就会恢复原来的材质属性,对其他部分没有影响。
或者你可以只更改某一颜色分量,就可以达到更改面片颜色的目的,可以这样:
glColorMaterial(GL_FRONT, GL_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
glColor3f(0.2, 0.5, 0.8); //你要修改的分量就变成这个值
/* draw some objects here */
glColor3f(0.9, 0.0, 0.2); //你要修改的分量就变成这个值
/* draw other objects here */
glDisable(GL_COLOR_MATERIAL);
一般来说diffuse值的改变对物体颜色的影响最大 |
|