如何使用/绘制“Kd Ka Ks”?
我对如何使用这些选项很感兴趣。
Ks[3]
Kd[3]
Ka[3]
glcolor3f(..., ..., ...);
谢谢。
这些是反射系数。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);
S、D 和 A 应代表镜面反射、漫反射和环境照明。尽管我不太确定向量代表什么,但没有周围的代码。我猜想那是应用于表面的镜面反射光、环境光和漫射光的颜色。您可以查看许多着色模型来实现照明,看看 Phong:http ://www.arcsynthesis.org/gltut/Illumination/Tut11%20Phong%20Model.html,http : //en.wikipedia.org /wiki/Phong_shading