glColorMaterial 和 glMaterial 的区别

直接代码说明吧。

1、在使用(固定管线的)光照后,这2个函数才生效

glEnable( GL_LIGHTING );
/// 设置光源属性
///...

2、使用glMaterial指定3D模型的材质,以环境光颜色为例

glm::vec4 ambientColor(1.0f,0.0f,0.0f,1.0f);
glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, &ambientColor.x );

3、与2等价的效果: 使用glColorMaterial指定3D模型的材质

glEnable(GL_COLOR_MATERIAL); 
glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT );

/// 指定顶点的颜色属性
/// 如使用glBegin指定图元时,glColor设置的颜色,
/// 如果和上面glMaterial效果一样:需要把所有color设置为(1.0f,0.0f,0.0f,1.0f)

 

你可能感兴趣的:(c++,opengl)