OpenGl中的所有内容都是白色的,相同的代码在另一台机器上运行良好

时间:2013-08-16 19:33:40

标签: opengl visual-studio-2012 glut glew freeglut

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

截图:

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

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

代码:pastebin(dot)com / keVyt55q

1 个答案:

答案 0 :(得分: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场景可能显得暗淡的原因)。您的台式计算机不这样做。因此,明亮的白色场景。

P.S。强烈建议对函数和变量使用英文名称。好吧,至少如果你想在以后获得代码的帮助。