-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 に答える