3

ライトを理解し、OpenGL Superbible の本を読んでいます。以下は、私が現在照明に使用しているものです。SetupRC 関数に配置されます。

照明は、位置などによってほとんど期待どおりに機能していますが、カメラを回すと、以前は暗かった場所が明るくなる理由がわかりません。カメラの位置は動かしていませんが、ライトはまだ動きます。

どうしてこれなの?ここでちょっと混乱。

    GLfloat ambient[] = { 0.7f, 0.7f, 0.7f, 0.5f };
    GLfloat diffuse[] = { 1.0, 1.0f, 1.0f, 1.0f };

    glEnable(GL_LIGHTING);

    glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);

    glEnable(GL_LIGHT0);


    GLfloat ambientLight[] = {1.0f, 0.0f, 1.0f, 0.5f};
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);

    glEnable(GL_COLOR_MATERIAL);

    glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); //GL_AMBIENT_AND_DIFFUSE
4

1 に答える 1

2

反射光には方向があり、サーフェスの法線によって設定されます。
ライト、サーフェス、およびカメラの位置は、カメラが認識する光の量に影響します。

または、カメラを回転させたときに OpenGL 照明の問題が発生する可能性があります

于 2010-01-19T05:52:35.183 に答える