Как добиться более яркого блеска с помощью GL_LIGHT1? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть это изображение

enter image description here

Есть ли способ добиться более яркого вида света, не редактируя зеркальную материальную часть кода? Это мой текущий код:

void drawTeapot() {
    GLfloat mat_diffuse[] = {0.2, 1.0, 0.8, 1.0};
    GLfloat mat_specular[] = {1.0, 1.0, 1.0, 1.0};
    GLfloat mat_shininess[] = {128.0};

    GLfloat lmodel_ambient[] = {0.1, 0.1, 0.1, 1.0};
    GLfloat light_position[] = {1.1, 1.1, 1.0, 1.0};
    GLfloat light_specular[] = {1.0, 1.0, 1.0, 1.0};

    glLightfv(GL_LIGHT1, GL_POSITION, light_position);
    glLightfv(GL_LIGHT1, GL_SPECULAR, mat_specular);
    glLightfv(GL_LIGHT1, GL_SHININESS, mat_shininess);
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);

    glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
    glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);

    glutSolidTeapot(0.5);
    }

Я должен использовать GL_LIGHT1, потому что есть еще одна функция, которая реагирует на щелчки мыши и включает и выключает этот свет. Следовательно, я не могу получить зеркальное отражение на объекте до включения света. Он должен оставаться вроде как матовым. Как видите, блеск на максимуме, зеркальность тоже, но я не собираюсь этого делать. Я в основном хочу, чтобы он был чуть больше, чем сейчас, более рассредоточенным.

...