-2

我正在使用 glut 使用 OpenGL 构建一个学校项目,我在笔记本电脑(不在家时)和桌面上工作。两者都很好,但是突然之间,当我在桌面上编译代码时,一切都是白色的,而相同的代码在我的笔记本上运行良好!我需要它在我的桌面上工作,因为当我在家时使用它更容易。

截图:

笔记本:http: //imageshack.us/a/img580/9522/f9yx.jpg

桌面:http: //imageshack.us/a/img821/8189/r51l.jpg

代码:pastebin(dot)com/keVyt55q

4

1 回答 1

3

那么问题来了:

 GLfloat especularidade[COORDHOMO] = {10.0, 10.0, 10.0, 1.0};//<------here
 GLint especMaterial = 6000;

 glMaterialfv(GL_FRONT, GL_SPECULAR, especularidade);
 /* Define a concentração do brilho sobre os objetos */
 glMateriali(GL_FRONT, GL_SHININESS, especMaterial);

镜面反射颜色与其他所有颜色相同。0.0..1.0如果您使用浮动,则每个组件都应该在范围内。也有可能光泽度也太高了,它应该在0..128.0范围内,我肯定会在那里使用浮动glMaterialf(GL_FRONT, GL_SHININESS, 25.0)或其他东西。

您的笔记本电脑或台式计算机具有不兼容的 OpenGL 驱动程序。固定功能 OPenGL 应该将光照计算的结果限制在 0.0..1.0 范围内(这就是固定功能纹理 opengl 场景可能显得暗淡的原因)。您的台式计算机不这样做。因此,明亮的白色场景。

PS 也强烈建议对函数和变量使用英文名称。好吧,至少如果您以后想获得有关代码的帮助。

于 2013-08-16T20:40:19.477 回答