1

该程序当前加载 .obj 文件并具有小型碰撞系统。我还开始测试一些无缝的地面。现在到这里描述的问题。

图像

“地面”上有一个点正好反射了我在它上面的光。我不知道这是否是灯光或通过 .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);

一个点亮的点也会随着相机移动,具体取决于您从哪个角度看它。另一个问题是立方体的边缘在不亮边显示看起来像撕裂,但我不知道是什么原因造成的,我再次认为这是一个照明问题。

关于如何摆脱这个的任何想法?

4

1 回答 1

1

这看起来像一个镜面高光。只需将您的高光颜色归零即可。

顺便说一句,这就是光在现实世界中的工作方式。

于 2013-07-02T14:01:06.027 回答