0

「Kd Ka Ks」をどのように使用/描画しますか?

これらのオプションの使用方法に興味があります。

Ks[3]
Kd[3]
Ka[3]

glcolor3f(..., ..., ...);

ありがとう。

4

2 に答える 2

4

これらは反射係数です。Ka はアンビエント コンポーネント、Kd はディフューズ コンポーネント、Ks はスペキュラ コンポーネントです。

Ks、Kd、および Ka は、3 つの要素の配列です (4 番目の値であるアルファ コンポーネントを使用することもできます)。要素は 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);
于 2013-08-01T17:19:02.983 に答える
2

S、D、および A は、スペキュラー、ディフューズ、およびアンビエント ライティングを表す必要があります。周囲のコードがなければ、ベクトルが何を表しているのかよくわかりません。それは、サーフェスに適用されるスペキュラー、アンビエント、ディフューズ ライトの色だと思います。ライティングを実装するためにチェックアウトできるシェーディング モデルは多数あります。Phong を参照してください: http://www.arcsynthesis.org/gltut/Illumination/Tut11%20Phong%20Model.htmlhttp://en.wikipedia.org /wiki/Phong_shading

于 2013-08-01T17:17:36.277 に答える