1

このプログラムは現在、.obj ファイルをロードし、小さな衝突システムを備えています。また、継ぎ目のない地面のテストも行いました。次に、ここに示す問題に進みます。

画像

「地面」には、私が上に持っている光を反射する場所が 1 つあります。これがライトの問題なのか、.obj ファイルを介してロードされたマテリアルの問題なのかはわかりません。ライトのコードは次のとおりです。

float col[]={1.0,1.0,1.0,1.0};
float col1[]={0.3,0.3,0.3,1.0};
float col2[]={0.8,0.8,0.8,1.0};
float pos[]={0.0,10.0,0.0, 1.0};
float spotDir[] ={0.0, -1.0, 0.0};

glLightfv(GL_LIGHT0,GL_DIFFUSE,col2);
glLightfv(GL_LIGHT0, GL_AMBIENT, col1);
glLightfv(GL_LIGHT0, GL_SPECULAR, col);
glLightfv(GL_LIGHT0, GL_POSITION, pos);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, spotDir);
glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 90.0);

1 つの照明スポットも、カメラを見る角度に応じて移動します。もう 1 つの問題は、照らされていない側の立方体の端が引き裂かれているように見えることですが、何が原因なのかわかりません。これも照明の問題だと思います。

これを取り除く方法についてのアイデアはありますか?

4

1 に答える 1

1

スペキュラ ハイライトのように見えます。鏡面反射色をゼロにするだけで完了です。

ところで、これが現実世界での光の仕組みです。

于 2013-07-02T14:01:06.027 に答える