如何使用/画“Kd Ka Ks”?
我对如何使用这些选项感兴趣。
Ks[3]
Kd[3]
Ka[3]
glcolor3f(..., ..., ...);
感谢。
答案 0 :(得分:2)
S,D和A应代表镜面反射,漫反射和环境光照。没有周围的代码虽然我不太确定矢量代表什么。我猜想这是要应用于曲面的镜面反射,环境光和漫反射光的颜色。您可以查看许多着色模型来实现照明,看看Phong:http://www.arcsynthesis.org/gltut/Illumination/Tut11%20Phong%20Model.html,http://en.wikipedia.org/wiki/Phong_shading
答案 1 :(得分:1)
这些是反射系数。 Ka用于环境分量,Kd用于漫反射分量,Ks用于镜面反射分量。
Ks,Kd和Ka是3个元素的数组(你也可以有第4个值,alpha分量)。元素代表RGB颜色。如果要修改光线从表面反射的方式,可以调整这些值(增加Ks以获得更多镜面光照并使曲面更光亮,Kd可获得更多漫反射,Ka可获得更多环境光,这将使一切更亮)
例如,您可以使用glMaterialfv
修改材料:
GLfloat mat_ambient[] = { 0.7, 0.7, 0.7, 1.0 };
GLfloat mat_diffuse[] = { 0.1, 0.5, 0.8, 1.0 };
GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat shinyness[] = { 5.0 };
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, shinyness);