私は黄色と茶色のキューブをレンダリングするために、Cでいくつかのソフトウェアを書いています。しかし、いったんライトをプログラムすると、すべての色がライトブルーに変わります。誰かが色が変わった理由を私に説明できますか?そして私はそのような極端な変化をどうやって防ぐことができますか?openGL - 稲妻による色の変化の理解
これは私が光のために使用されるコードです:あなたは即時モードを使用しているという事実に基づいて
GLfloat color1 = {0.633, 0.237, 0.170}; \\ changed to blue
void initLight()
{
GLfloat red[] = {1.0,0.0,0.0,1.0};
GLfloat white[] = {1.0,1.0,1.0,1.0};
GLfloat blueGreen[] = {0.0,0.4,1.0,1.0};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, white);
glLightfv(GL_LIGHT0,GL_AMBIENT,white);
glLightfv(GL_LIGHT0,GL_DIFFUSE,blueGreen);
glMaterialf(GL_FRONT,GL_SHININESS,127.0);
glEnable(GL_LIGHT0);
}
はい私はglVertex()とglColorを使用します。 私は非常に古いスタイルのOpenGLを使用しています。エラー: 'GL_MATERIAL_COLOR'は宣言されていません。 回避策はありますか? –
@ J.Doeコードスニペットに誤字がありました。それは 'GL_MATERIAL_COLOR'ではなく、' GL_COLOR_MATERIAL'とされています。実際問題を解決したのは – Xirema
です。しかし、私はもはや光の影響は見ません。私は私の出発点に戻っています、私は何の光も使わなかったようです... –