4

OpenGL: 単純な glut キューブのライトがありません

こんにちは、私は opengl と glut でライトを研究しようとしていますが、かなり早い段階で問題が発生します。カスタムカメラ設定でカスタム位置にライト付きキューブを作成するためのこのコードがあります:

void testApp::draw(){
    static float amb[] =  {0.4, 0.4, 0.4, 0.0};
    static float dif[] =  {1.0, 1.0, 1.0, 0.0};
    
    float light_diffuse[] = {1.0, 0.0, 1.0, 1.0}; 
    float light_position[] = {-1.0, 1.0, 1.0, 0.0}; // i tried a lot of positions here!
    
    // set camera
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(0, 200, 1200, 0,0,0, 0,1,0);

    // set lights
    glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHT1);
    glEnable(GL_LIGHTING);
    glMaterialfv(GL_FRONT, GL_AMBIENT, amb);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, dif);

    // draw scene
    ofScale(50, 50, 50);
    glPushMatrix();

    glutSolidCube(2);

    // close everything
    glPopMatrix();
    glDisable(GL_LIGHT0);
    glDisable(GL_LIGHT1);
    glDisable(GL_LIGHTING); }

黒い立方体しか見えず、光がありません。問題は光の位置だと思います。多くの位置を試しましたが、うまくいきません:黒い立方体。

4

1 に答える 1

5

あなたはキューブから本当に遠く離れています。小さくして近づけます。または、次のように照明を変更します。

float light_diffuse[] = {100.0, 0.0, 100.0, 100.0}; 
float light_position[] = {-100.0, 100.0, 1.0, 0.0};

立方体に光の効果はほとんど見られません。ティーポットの使用を検討してください。

于 2011-06-18T13:58:24.673 に答える